Skip to content

Logo

UAPay

National Payment Service

Supports in this guide: Payments, Payouts

Provider website: uapay.ua


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

  1. Choose account type
  2. Get your credentials (from UAPay)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

UAPay can be connected in different ways (depending on your needs):

  • If you do card payments (card data sent directly, H2H) -> choose H2H Merchant account
  • If you do hosted-page card payments, or payouts -> choose Provider account

Both account types additionally require an Account type setting (Acquiring, P2P, or - H2H only - C2A) that changes how the connection behaves - see the notes in each flow below. If you're not sure which combination fits your use case, confirm with your Corefy account manager.


Prerequisites: get from UAPay

Log in to your UAPay account (or contact UAPay support to get one set up) and submit the required documents to verify your account.

  • Client ID -> Corefy field client_id.
  • Secret Key -> go to My Shops -> open your shop -> Click here to see the secret key -> Corefy field secret_key.
  • Virtual ID (optional) -> Corefy field virtual_id -> a number you choose yourself; use a different one per connection if you need several Shops under the same Client ID.

Important

Ask your UAPay manager whether your account requires an IP white list; if so, provide Corefy's IP addresses.


Payments processing (connect H2H Merchant account, create payment-invoice)

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open UAPay in the provider directory and press Connect at UAPay Provider Overview page in the New connection section. Choose H2H Merchant account.

Step 2 - Fill in fields and select settings

  • Client ID
  • Secret Key
  • Test Mode -> (enable if you are using sandbox credentials)
  • Account type -> Acquiring, P2P, or C2A (see note below)

Choose Currency / Features. UAH and RUB are confirmed; check with your Corefy account manager which are enabled for your account.

Success

You have connected UAPay H2H Merchant account!

Account type differences

  • Acquiring - a regular e-commerce card sale; standard partial refunds are allowed.
  • P2P - a card-to-card transfer; standard partial refunds are allowed.
  • C2A (card-to-account) - a two-step transfer; refunds are only possible for the full original amount - a partial refund is rejected outright.

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. UAPay may return a 3D Secure redirect for the customer to complete, depending on the card.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com"
      }
    }
  }
}

Note

If customer.email isn't sent, UAPay's own placeholder email is used instead for the Acquiring account type (it's not delivered to the customer) - still, sending a real email is recommended. No Constants or Options exist for P2P/C2A.


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

No Options are configured for this connector.


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

No Constants are configured for this connector.


Payments processing (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open UAPay in the provider directory and press Connect at UAPay Provider Overview page in the New connection section. Choose Provider account.

Step 2 - Fill in fields and select settings

  • Client ID
  • Secret Key
  • Virtual ID (optional)
  • Test Mode -> (enable if you are using sandbox credentials)
  • Account type -> set to Acquiring for this flow (use P2P or A2C instead if you only need Payouts - see Payouts below)
  • Get Balances -> (optional) enable to have Corefy pull your UAPay balance

Success

You have connected UAPay Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice; Corefy redirects the customer to UAPay's own hosted payment page to complete the purchase.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com"
      }
    }
  }
}


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

Configured per service (payment_card_uah_hpp):

  • service_id -> optional, string - a specific service/profile ID on UAPay's side, for accounts set up with several services.
  • payment_with_funds_holding -> optional, boolean - holds the funds (auth-only) instead of capturing immediately; ask your UAPay account manager whether your account supports a separate capture step before enabling this.

Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • EMAIL -> customer.email

Refunds

UAPay supports partial refunds, but only one refund per payment (no multiple partial refunds against the same payment).


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Uses the same Provider account connection type as Payments above, but set Account type to A2C (Account-to-Card) for a standalone card payout - nothing else to fill in differently.

Note

P2P is also a valid Account type for payouts, but it only works for a payout linked to a matching earlier P2P payment on your account - not for an arbitrary card. If you need this mode, confirm the setup with your Corefy account manager; the example below covers the standalone A2C flow.


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds directly to a card.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "payment_card_uah",
      "currency": "UAH",
      "amount": 10,
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

Important

fields.card_number is required - this is the only payout destination field this connector uses.

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "3c6d2f8e-8a2a-4e7a-9b1a-2f6a7b9c0d1e",
      "service": "payment_card_uah",
      "currency": "UAH",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123"
      },
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

customer is optional and only used for reconciliation on Corefy's side - UAPay itself only needs the card number.


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

No Options or Constants are configured for this flow.


Additional info

  1. Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in UAPay's own back-office beyond the optional IP white-list from the Prerequisites.
  2. Account type is set per connection, not per request. Each H2H Merchant account or Provider account is permanently wired to one Account type (Acquiring/P2P/C2A/A2C) - connect a separate account if you need more than one mode.
  3. C2A refunds must match the full amount - see the important note under Payments (H2H) above.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify Client ID/Secret Key (and Virtual ID, if set) for the selected environment
  • Refund rejected on a C2A account -> C2A only supports refunding the full original amount, not a partial one
  • Payout rejected on a P2P account -> standalone card payouts need Account type set to A2C, not P2P - see the note under Payouts above
  • Currency or service is not supported -> confirm allowed currencies/features in your UAPay account and in Corefy

Question

Still looking for help connecting your UAPay account? Please contact our support team!