
UnonaPay
Supports in this guide: Payments
Provider website: unonapay.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from UnonaPay)
- Connect in Dashboard
- Send an API request
Choose account type
UnonaPay can be connected in different ways (depending on your needs):
- If you do card payments -> choose H2H Merchant account
If you are not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from UnonaPay
Get the following values for your UnonaPay project/account:
- Shop ID -> Corefy field
shop_id-> example:shop_9f2c1a3b-> where to find: UnonaPay backoffice / issued by UnonaPay manager - Public Key -> Corefy field
public_key-> example:pk_live_7d3f8b2a9c1e4560-> where to find: UnonaPay backoffice / issued by UnonaPay manager - Secret Key -> Corefy field
secret_key-> example:sk_live_4a6e2d9f1b3c8720-> where to find: UnonaPay backoffice / issued by UnonaPay manager
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open UnonaPay in the provider directory and press Connect at UnonaPay Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Shop ID
- Public Key
- Secret Key
- Three DS Mode -> (Simple or Advanced — defaults to Advanced if not set)
- Provider URL -> (preset to UnonaPay's gateway, not user-selectable)
- Test Mode -> (enable if you are using sandbox credentials)
Choose Currency and Features. You can set these parameters according to available currencies and features for your UnonaPay account, but it is necessary to check details of the connection with your Corefy account manager.
Success
You have connected UnonaPay H2H Merchant account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 100,
"customer": {
"reference_id": "55041b5b-adfd-4073-a92b-fd8b495a4cc1",
"email": "johnsmith@gmail.com"
},
"reference_id": "86e68af6-6b95-4cc0-be16-e4df8044604c"
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 100,
"customer": {
"reference_id": "bc75bc54-5023-4f98-8c0d-ec5ed7e8f380",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "US",
"region": "CA",
"city": "Los Angeles",
"post_code": "90001",
"full_address": "1st Street 1"
}
},
"reference_id": "08f5e97c-1170-4bda-9625-3bde3c6dcd20"
}
}
}
send_customer_data option: whenever customer.name, customer.address, or customer.metadata is present in the request, Corefy forwards the available billing details (name, phone, country, city, state, zip, address) to UnonaPay automatically — there is no toggle to suppress this. UnonaPay also supports RUB and EUR (use payment_card_rub_hpp/payment_card_eur_hpp as the service code). 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
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)
LANG is the exception to this rule — see below.
Currently available constants (constant -> Corefy API field)
DESCRIPTION->descriptionREASON->description(used for refunds specifically, instead ofDESCRIPTION)EMAIL->customer.emailCOUNTRY->customer.address.country/customer.metadata.countryCITY->customer.address.city/customer.metadata.citySTATE->customer.address.region/customer.metadata.stateZIP->customer.address.post_code/customer.metadata.zipADDRESS->customer.address.full_address/customer.metadata.addressLANG-> always used as sent — there is no request-side field to override it, set this constant to control the language UnonaPay uses
Note
These constants only back the fields UnonaPay reads through its shared fallback logic. UnonaPay's own billing-address block (see above) is populated directly from the request when present and does not fall back to these constants.
Additional info
- Callback routing is handled automatically (Corefy generates the callback URL per transaction) — signature validation is applied.
- UnonaPay always receives available billing details (name, phone, address) when present in the request — unlike other connectors on this integration, this isn't gated by a
send_customer_dataoption.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify credentials for the selected environment and account type
- Currency or service is not supported -> confirm allowed currencies/features in your UnonaPay account and in Corefy
- Missing customer data fields -> set constants (see "Constants") or provide fields in the API request
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your UnonaPay account? Please contact our support team!