Introduction
The v2 partner API pays fiat out to bank accounts and merchant QR codes, settled against the crypto fund you hold with AliX. It is frozen but live — see the overview for how it differs from v3, which is where new integrations should start.
This section is the contract: what to send, what comes back, and what every error code means. Unlike the v3 reference — which hands the per-endpoint contract to the API Explorer — these pages carry the field tables themselves, because v2 has no explorer and never will.
Base URLs
| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox.alixpay.com |
| Production | https://api.alixpay.com |
Call over HTTPS. Every path is rooted at /api/v2 — for example
https://sandbox.alixpay.com/api/v2/orders/create-sell-order. Build and test against the sandbox
first.
Integration flow
- Get your credentials. A
partnerCode, asecretKey, and AliX's public key — issued at onboarding. You generate an RSA key pair and give AliX the public half. Your calling IPs are allowlisted. See Authentication. - Sign every request. There is no login and no token. Each request carries a
signaturefield computed over a canonical string that is specific to that endpoint. This is the part integrations get wrong. - Onboard the user. Submit their KYC and wait for
VERIFIED— transaction endpoints reject an unverified user. See KYC. - Quote, then create. Preview the crypto cost, then create the order with your own
externalOrderId— which is also the idempotency key. - Track it to completion. Orders settle asynchronously. Register a webhook and poll
orders/details; the callback is delivered once and never retried. See Webhooks.
Quick start walks all five, end to end, with real code.
Two things that surprise people
The HTTP status tells you nothing: a business error comes back as HTTP 201. Branch on
success and semanticCode, never on the status. See
Response format.
The signed string is not the request body. It is a fixed, ordered, pipe-joined subset of specific
fields, different for every endpoint, with your secretKey glued on the end. Every endpoint page
prints its exact string.
Endpoints
Account — Authentication
POST /api/v2/account/verify | Check that your partner code, key, and IP are all working. |
Fund — Fund
POST /api/v2/wallet/balance | The balance of your crypto funding account. |
KYC — KYC
POST /api/v2/user/submit-kyc | Submit an end user's identity documents. |
POST /api/v2/user/submit-kyc-supplement | Backfill missing fields on a verified user's profile. |
POST /api/v2/user/get-kyc-information | Read back a user's KYC profile and status. |
POST /api/v2/user/check-access-service | Ask whether a user may use a service in a currency. |
Scan-to-Pay — Scan-to-Pay
GET /api/v2/public/get-qr-code-info | Decode a merchant QR code. No signature needed. |
POST /api/v2/public/generate-philippines-qrcode | Generate a test QR code (Philippines). No signature needed. |
POST /api/v2/orders/prices | Current crypto prices, and the sell limits. |
POST /api/v2/bank/get-supported-banks | The banks available for a fiat currency. |
POST /api/v2/bank/account/verify | Resolve a bank account to its holder's name. |
POST /api/v2/orders/review-sell-order | Quote an order before creating it. |
POST /api/v2/orders/create-sell-order | Create the order and pay the merchant. |
POST /api/v2/orders/details | Read an order back. The source of truth. |
Cashout — Cashout
POST /api/v2/orders/review-cashout | Quote a cashout before creating it. |
POST /api/v2/orders/create-cashout | Create the cashout and pay the recipient. |
Webhooks — Webhooks
AliX POSTs to your endpoint when an order settles. There is no endpoint of ours to call; you implement the receiver.