Skip to content

PMSolutions

PMSolutions

Supports in this guide: Payments, Payouts


What you need to do for start processing transactions (brief summary)

  1. Choose account type
  2. Get your credentials (from PMSolutions)
  3. Connect in Dashboard
  4. 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) or commerce_id (Provider account).
  • API key -> Corefy field api_key.
  • Callback key -> Corefy field key_for_callback (H2H Merchant account) or secret_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:

  1. On the initial payment, request tokenization (tokenize: true in the request's options, and/or enable the save_provider_instant_token connection option to additionally capture the token PMSolutions returns).
  2. Corefy stores a token for that card.
  3. Submit a recurrent transaction 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

  1. 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.
  2. 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.
  3. 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.
  4. The api_url field 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 a recurrent transaction
  • 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!