AliKassa
Supports in this guide: Payments, Payouts
Provider website: alikassa.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from AliKassa)
- Connect in Dashboard
- Send an API request
Choose account type
AliKassa can be connected in different ways (depending on your needs):
- If you do H2H card payments (card data sent directly to AliKassa) -> choose H2H Merchant account
- If you do redirect payments via local Southeast Asia/EU payment methods (QR codes, e-wallets, bank transfers) -> choose Provider account
- If you do payouts -> choose Provider account (same connection also covers Payments above, if both are configured)
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from AliKassa
Sign up and complete verification at alikassa.com, then get the following from your AliKassa back-office.
For H2H Merchant account (cardgate-side credentials, separate from Provider account below):
- Merchant ID -> Corefy field
merchant_id-> where to find: AliKassa back-office, Projects -> Accounts. - Account UUID -> Corefy field
account_uuid-> where to find: AliKassa back-office, Projects -> Accounts. - Application UUID -> Corefy field
application_uuid-> where to find: ask your AliKassa account manager - this identifies which application/integration is calling AliKassa's H2H API. - Password -> Corefy field
password(upload thepassword.txtfile) -> where to find: AliKassa back-office, Settings -> Keys - protects your Private Key below. - Public Key -> Corefy field
public_key(upload thepublic.pemfile) -> where to find: AliKassa back-office, Settings -> Keys - used by Corefy to verify AliKassa's own signed responses/callbacks. - Private Key -> Corefy field
private_key(upload theprivate.pemfile) -> where to find: AliKassa back-office, Settings -> Keys - used to sign every outgoing request. - Notification Endpoint ID (optional) -> Corefy field
notification_endpoint_id-> where to find: AliKassa back-office, Settings -> Notifications - only needed if AliKassa requires one to be registered against the callback URL (see Additional info).
For Provider account (paycore-side credentials, covers both Payments and Payouts):
- Account UUID -> Corefy field
account_uuid-> where to find: AliKassa back-office, Projects -> Accounts. - Payment Private Key (optional, Payments only) -> Corefy field
payment_private_key(upload a.pemfile) -> a private key dedicated to signing Payment requests - ask your AliKassa account manager if your account uses a separate key pair per direction. - Payment Private Key Password (optional) -> Corefy field
payment_private_key_password. - Payout Private Key (optional, Payouts only) -> Corefy field
payout_private_key(upload a.pemfile) -> a private key dedicated to signing Payout requests. - Payout Private Key Password (optional) -> Corefy field
payout_private_key_password. - Notification Public Key -> Corefy field
notification_public_key(upload thepublic.pemfile) -> verifies AliKassa's Payout callbacks. - Callback Public Key -> Corefy field
callback_public_key(upload thepublic.pemfile) -> verifies AliKassa's Payment callbacks - AliKassa may issue the same key for both, or a separate one per direction; confirm with your account manager. - Notification Endpoint ID (Payment) (optional) -> Corefy field
notification_endpoint_id_payment. - Notification Endpoint ID (Payout) (optional) -> Corefy field
notification_endpoint_id_payout.
Important
Be sure to check with the manager if you require to provide a white list of IPs, and if so, specify IP addresses from the Corefy list.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open AliKassa in the provider directory and press Connect at AliKassa Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Merchant ID
- Account UUID
- Application UUID
- Password (upload
password.txt) - Public Key (upload
public.pem) - Private Key (upload
private.pem) - Notification Endpoint ID (optional)
Choose Currency and Features. You can set these parameters according to available currencies and features for your AliKassa account (UAH, RUB confirmed), but it is necessary to check details of the connection with your Corefy account manager.
Success
You have connected AliKassa 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": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 100
}
}
}
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": 100,
"customer": {
"reference_id": "cus_123",
"name": "John Smith"
}
}
}
}
This flow also supports RUB (payment_card_rub_hpp). customer isn't strictly required for routing, but keeping reference_id is still good practice for your own reconciliation.
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)
Currently available constants (constant -> Corefy API field)
PROVIDER_SERVICE-> overrides which internal service code AliKassa itself receives for this currency (not tied to a specific customer-facing API field - it's a backend routing override, set this only if your account manager asked you to).
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open AliKassa in the provider directory and press Connect at AliKassa Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and upload keys
- Account UUID
- Payment Private Key (optional, upload a
.pemfile) - Payment Private Key Password (optional)
- Callback Public Key (upload
public.pem) - Notification Endpoint ID (Payment) (optional)
Choose Currency and Features - which local methods are available depends on what's enabled on your AliKassa account (see the method table in Additional info) - check with your Corefy account manager.
Success
You have connected AliKassa Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice and returns a redirect link / QR code for the chosen local method.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
"service": "ovo_idr_hpp",
"currency": "IDR",
"amount": 50000
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
"service": "ovo_idr_hpp",
"currency": "IDR",
"amount": 50000,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"phone": "+6281234567890",
"email": "johnsmith@gmail.com",
"metadata": {
"ip": "203.0.113.10",
"client_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
}
}
}
}
customer fields are all optional and read on a best-effort basis (null-safe); if omitted, customer.metadata.ip/client_agent fall back to generic defaults instead of failing the request. Two method-specific exceptions: for Thai methods (promptpay_qr_thb_hpp, truemoney_thb_hpp) AliKassa also needs customer.address.city; for online_banking_eur_hpp, name is sent as customer.first_name/customer.surname instead of the single customer.name shown above. See Additional info for the full list of supported methods/services.
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
Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.
Currently available options (1)
allow_subunits- whether fractional (sub-unit/cents) amounts are allowed on this connection.
allow_subunits
What it does: when disabled (default), AliKassa rejects any amount that isn't a whole number (e.g. 100, not 100.50) with an "Amount must be without coins" error. When enabled, fractional amounts are allowed through.
When to use: enable it only if your AliKassa account/method genuinely supports sub-unit amounts; most of this connector's local methods expect whole-unit amounts.
Default: false
Allowed values: true / false
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)
USER_IP->customer.metadata.ipUSER_AGENT->customer.metadata.client_agent
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connection as Payments above - additionally fill in:
- Payout Private Key (upload a
.pemfile) - Payout Private Key Password (optional)
- Notification Public Key (upload
public.pem) - Notification Endpoint ID (Payout) (optional)
Success
You have connected AliKassa Provider account!
First request to Corefy API (MIN)
What it does: creates a payout-invoice and sends funds to a card or (for interac_cad) a Canadian Interac e-Transfer destination.
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": 100,
"customer": {
"reference_id": "cus_123"
},
"fields": {
"card_number": "4111111111111111"
}
}
}
}
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 100,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"phone": "+380501234567",
"email": "johnsmith@gmail.com",
"address": {
"country": "UA",
"region": "Kyiv",
"city": "Kyiv",
"post_code": "01001",
"full_address": "1 Main street"
}
},
"fields": {
"card_number": "4111111111111111",
"card_holder": "JOHN SMITH",
"card_exp_month": "12",
"card_exp_year": "27"
}
}
}
}
fields.card_number is required; cardholder name/expiry can come from fields.card_holder/card_exp_month/card_exp_year, or are derived from customer.name and card BIN lookup if omitted - unless the Generate Random Cardholder Data option below is enabled, in which case AliKassa-acceptable placeholder values are generated automatically. This connector also supports interac_cad (Canadian Interac e-Transfer, fields.account_number instead of card_number) and several other card currencies - see Additional info for the full list.
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
Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.
Currently available options (2)
generate_random_cardholder_data- auto-generates placeholder cardholder name/expiry instead of using the real customer's data.country_source_mode- which source determines the recipient's country sent to AliKassa.
generate_random_cardholder_data
What it does: when enabled, AliKassa receives an auto-generated, valid-looking cardholder name (and a synthetic future expiry date if the real one isn't valid/available) instead of your customer's real name.
When to use: enable it if your own flow doesn't reliably collect a real cardholder name matching the payout card, and AliKassa's validation is strict about name format.
Default: false
Allowed values: true / false
country_source_mode
What it does: selects which source AliKassa uses to determine the payout recipient's country: the customer's IP geolocation, the card's own BIN-derived country, or the customer.address.country field you send.
When to use: change it if your typical customer's declared address country doesn't match their card's issuing country, and you want AliKassa to use a different signal.
Default: customer's declared country (customer.address.country)
Allowed values: Country from ip / Country from card country / Country from customer country
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)
FIRST_NAME->customer.name(first part)LAST_NAME->customer.name(second part)PHONE->customer.phoneEMAIL->customer.emailCOUNTRY->customer.address.countryPOST_CODE->customer.address.post_codeREGION->customer.address.regionCITY->customer.address.cityFULL_ADDRESS->customer.address.full_address
Additional info
H2H Merchant account:
- Callback authentication and routing. AliKassa signs every callback with its own private key (RSA, verified by Corefy using the Public Key you uploaded above). The callback endpoint is
/alikassa/callback- register it (along with your Notification Endpoint ID, if AliKassa requires one) in AliKassa's back-office under Settings -> Notifications. - Two-endpoint architecture. AliKassa splits its API across
api-merchant.alikassa.io(invoice creation, status/reconciliation) andapi-h2h.alikassa.io(card data submission, confirmation) - both are handled automatically by Corefy, nothing extra to configure for this.
Provider account:
- Callback authentication and routing. Same RSA-signature scheme as H2H (verified using Callback Public Key for Payments, Notification Public Key for Payouts), on the same
/alikassa/callbackendpoint for both directions - register your Notification Endpoint ID (Payment)/Notification Endpoint ID (Payout) in AliKassa's back-office if AliKassa requires one. -
Local payment methods available on the Payments flow (actual availability depends on what's enabled for your account):
Method Service Currency PromptPay QR promptpay_qr_thb_hppTHB TrueMoney truemoney_thb_hppTHB QRIS (bank transfer QR) bank_transfer_qr_idr_hppIDR OVO ovo_idr_hppIDR DANA dana_idr_hppIDR LinkAja linkaja_idr_hppIDR ShopeePay shopeepay_idr_hppIDR Bank Central Asia (BCA) bank_central_asia_idr_hppIDR Bank Negara Indonesia (BNI) bank_negara_indonesia_idr_hppIDR Bank Neo Commerce (BNC) bank_neo_commerce_idr_hppIDR Bank Rakyat Indonesia (BRI) bank_rakyat_indonesia_idr_hppIDR Permata Bank permata_bank_idr_hppIDR Mandiri Bank mandiri_bank_idr_hppIDR CIMB Niaga cimb_niaga_idr_hppIDR Online Banking online_banking_eur_hppEUR -
Payout destinations available on the Payouts flow (actual availability depends on what's enabled for your account):
Currency Service UAH payment_card_uahRUB payment_card_rubUSD payment_card_usdEUR payment_card_eurKZT payment_card_kztTHB payment_card_thbIDR payment_card_idrGBP payment_card_gbpCAD payment_card_cadUZS payment_card_uzsCAD (Interac e-Transfer, fields.account_number)interac_cad
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify
Account UUID/Merchant IDand the uploaded key files match the environment (sandbox vs production) you're using - H2H: "Amount must be without coins" / Payments: invalid amount -> AliKassa rejects fractional amounts by default on the Payments flow - send a whole number or enable
allow_subunits - Callbacks are not received -> verify the Notification Endpoint ID in AliKassa's back-office matches the value configured in your Corefy connection, and that the correct public key (Callback Public Key for Payments, Notification Public Key for Payouts) was uploaded
- A local payment/payout method I expect isn't available -> confirm it's enabled on your AliKassa account and reflected in the Dashboard's Currency/Features selector for this connection
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your AliKassa account? Please contact our support team!