Skip to content

Logo

AliKassa

Supports in this guide: Payments, Payouts

Provider website: alikassa.com


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

  1. Choose account type
  2. Get your credentials (from AliKassa)
  3. Connect in Dashboard
  4. 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 the password.txt file) -> where to find: AliKassa back-office, Settings -> Keys - protects your Private Key below.
  • Public Key -> Corefy field public_key (upload the public.pem file) -> 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 the private.pem file) -> 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 .pem file) -> 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 .pem file) -> 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 the public.pem file) -> verifies AliKassa's Payout callbacks.
  • Callback Public Key -> Corefy field callback_public_key (upload the public.pem file) -> 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 .pem file)
  • 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.ip
  • USER_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 .pem file)
  • 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.phone
  • EMAIL -> customer.email
  • COUNTRY -> customer.address.country
  • POST_CODE -> customer.address.post_code
  • REGION -> customer.address.region
  • CITY -> customer.address.city
  • FULL_ADDRESS -> customer.address.full_address

Additional info

H2H Merchant account:

  1. 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.
  2. Two-endpoint architecture. AliKassa splits its API across api-merchant.alikassa.io (invoice creation, status/reconciliation) and api-h2h.alikassa.io (card data submission, confirmation) - both are handled automatically by Corefy, nothing extra to configure for this.

Provider account:

  1. 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/callback endpoint for both directions - register your Notification Endpoint ID (Payment)/Notification Endpoint ID (Payout) in AliKassa's back-office if AliKassa requires one.
  2. 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_hpp THB
    TrueMoney truemoney_thb_hpp THB
    QRIS (bank transfer QR) bank_transfer_qr_idr_hpp IDR
    OVO ovo_idr_hpp IDR
    DANA dana_idr_hpp IDR
    LinkAja linkaja_idr_hpp IDR
    ShopeePay shopeepay_idr_hpp IDR
    Bank Central Asia (BCA) bank_central_asia_idr_hpp IDR
    Bank Negara Indonesia (BNI) bank_negara_indonesia_idr_hpp IDR
    Bank Neo Commerce (BNC) bank_neo_commerce_idr_hpp IDR
    Bank Rakyat Indonesia (BRI) bank_rakyat_indonesia_idr_hpp IDR
    Permata Bank permata_bank_idr_hpp IDR
    Mandiri Bank mandiri_bank_idr_hpp IDR
    CIMB Niaga cimb_niaga_idr_hpp IDR
    Online Banking online_banking_eur_hpp EUR
  3. Payout destinations available on the Payouts flow (actual availability depends on what's enabled for your account):

    Currency Service
    UAH payment_card_uah
    RUB payment_card_rub
    USD payment_card_usd
    EUR payment_card_eur
    KZT payment_card_kzt
    THB payment_card_thb
    IDR payment_card_idr
    GBP payment_card_gbp
    CAD payment_card_cad
    UZS payment_card_uzs
    CAD (Interac e-Transfer, fields.account_number) interac_cad

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify Account UUID/Merchant ID and 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!