
PMSolutions
Supports in this guide: Payments, Payouts
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from PMSolutions)
- Connect in Dashboard
- Send an API request
Choose account type
PMSolutions can be connected in different ways (depending on your needs):
- If you do direct card payments (H2H, no redirect) -> choose H2H Merchant account
- If you do redirect/hosted page card payments, or need Payouts -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from PMSolutions
Contact your PMSolutions account manager to get your account verified and receive the following credentials.
- Commerce account / Commerce ID -> Corefy field
com_acc(H2H Merchant account) orcommerce_id(Provider account). - API key -> Corefy field
api_key. - Callback key -> Corefy field
key_for_callback(H2H Merchant account) orsecret_key_callback(Provider account) - used to verify the signature of callbacks sent by PMSolutions. - API URL -> Corefy field
api_url- optional on both account types; leave blank to use the default PMSolutions endpoint, or set it if PMSolutions issued you a dedicated one.
Currencies: UAH, RUB, EUR, USD.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open PMSolutions in the provider directory and press Connect at PMSolutions Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Commerce account
- API key
- Callback key
- API URL -> (optional)
- Currency / Features -> choose values available for your account (UAH, RUB, EUR, USD)
- Send metadata -> (optional)
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected PMSolutions H2H Merchant account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice; card data itself is collected and submitted separately by Corefy's checkout/SDK layer, not as part of this request.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6be05631-8710-4b14-a369-1928a2b70eda",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "199be985-c243-478a-86a8-4b8c902e5bb6",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Doe",
"email": "name@example.com"
}
}
}
}
Important
If generate_random_customer_data is enabled and a customer field is still missing, PMSolutions receives a realistic randomly generated value instead - this is opt-in, not a silent always-on default.
Extended request (MAX)
Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow
Options
ignore_callback-> optional, boolean - for cascading to work correctly, ignores PMSolutions's asynchronous callback and relies only on an active status request to finalize the payment.save_provider_instant_token-> optional, boolean - saves a provider-side token for Recurring.generate_random_customer_data-> optional, boolean - generates a realistic random customer identity when customer fields are missing from the request.transliterate_customer_data-> optional, boolean - transliterates customer name fields before sending them to PMSolutions.set_description-> optional, boolean - sends a transaction description to PMSolutions.transliterate_card_holder-> optional, boolean - transliterates the cardholder name.duplicate_original_resolution-> optional, boolean - duplicates the original transaction's resolution code on related operations.
Recurring
To charge a previously used card again without re-collecting card data:
- On the initial payment, request tokenization (
tokenize: truein the request'soptions, and/or enable thesave_provider_instant_tokenconnection option to additionally capture the token PMSolutions returns). - Corefy stores a token for that card.
- Submit a
recurrenttransaction referencing the saved token to charge the card again, without resubmitting card data.
Refunds
Important
PMSolutions does not actually dispatch refunds, even though partial refunds appear allowed in the connection settings. The underlying gateway code only sends a refund request to PMSolutions when a separate internal flag is explicitly turned on for a connector, and this flag is not turned on for PMSolutions - so any refund attempt will fail rather than reaching PMSolutions.
Payments and Payouts processing (connect Provider account, create payment-invoice / payout-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open PMSolutions in the provider directory and press Connect at PMSolutions Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- Commerce ID
- API key
- Callback key
- API URL -> (optional)
- Send metadata -> (optional)
- Test Mode -> (enable if you are using sandbox credentials; cannot be changed after connecting)
Success
You have connected PMSolutions Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice (card or redirect/hosted-page flow, depending on your configured route), or a payout-invoice for a card payout.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "209a2d42-8bad-4b50-bf27-c8da59b3878e",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 100
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6bb1e2a0-21d1-4f0a-9f6e-6a1e1a2e8e3b",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 100,
"customer": {
"reference_id": "cus_123",
"name": "John Doe",
"email": "name@example.com"
}
}
}
}
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "efbf0a2b-5590-42b7-b10b-94d49452147d",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 150,
"customer": {
"reference_id": "cus_123"
}
}
}
}
Extended request (MAX)
Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow
Refunds
PMSolutions does not support refunds on Payouts. On Payments, the same dispatch limitation described above for the H2H Merchant account applies here too - no refund actually reaches PMSolutions.
Additional info
- Active reconciliation is available on all flows (H2H Merchant account Payments, Provider account Payments, and Payouts) - both the asynchronous callback and an active status request can finalize an operation.
- Recurring is only available on the H2H Merchant account flow - the Provider account flow (Payments or Payouts) does not support saving/charging a token through Corefy.
- Refunds are not currently dispatched to PMSolutions on either account type, even though partial (and, on the Provider account, multiple) refunds appear allowed in the connection settings.
- The
api_urlfield is optional on both account types - leave it blank to use the default PMSolutions endpoint for your environment.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify the keys match the selected environment (
test_mode) and the account type (H2H Merchant vs Provider) - Refund rejected or has no effect -> PMSolutions does not currently support refunds through Corefy on either account type
- Looking to charge a saved card again -> this is only available via the H2H Merchant account flow; request tokenization (
tokenize/save_provider_instant_token) on the first payment, then submit arecurrenttransaction - Callback not received -> verify the callback key (
key_for_callback/secret_key_callback) matches, and rely on Corefy's active reconciliation as a fallback
Question
Still looking for help connecting your PMSolutions account? Please contact our support team!