Skip to main content

Introduction

The partner API pays fiat out to bank accounts and merchant QR codes, settled against the crypto fund you hold with us.

This section is the contract: what to send, what comes back, and what every error code means. Each endpoint page carries its full field tables and its exact signing string.

Base URLs​

EnvironmentBase URL
Sandboxhttps://sandbox.alixpay.com
Productionhttps://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​

  1. Get your credentials. A partnerCode, a secretKey, and our public key — issued at onboarding. You generate an RSA key pair and give us the public half. Your calling IPs are allowlisted. See Authentication.
  2. Sign every request. Each request carries a signature field computed over a canonical string that is specific to that endpoint. Every later step builds on it.
  3. Onboard the user. Submit their KYC and wait for VERIFIED — transaction endpoints reject an unverified user. See KYC.
  4. Quote, then create. Preview the crypto cost, then create the order with your own externalOrderId — which is also the idempotency key.
  5. Track it to completion. Orders settle asynchronously. Register a webhook, and confirm with orders/details — each callback is delivered once. See Webhooks.

Quick start walks all five, end to end, with real code.

Two conventions to know first​

A business error comes back as HTTP 201. Branch on success and semanticCode. See Response format.

The signed string joins a fixed, ordered set of fields with pipes and appends your secretKey. The fields differ by endpoint, and every endpoint page prints its exact string.

Endpoints​

Account — Authentication

POST /api/v2/account/verifyCheck that your partner code, key, and IP are all working.

Fund — Fund

POST /api/v2/wallet/balanceThe balance of your crypto funding account.

KYC — KYC

POST /api/v2/user/submit-kycSubmit an end user's identity documents.
POST /api/v2/user/submit-kyc-supplementBackfill missing fields on a verified user's profile.
POST /api/v2/user/get-kyc-informationRead back a user's KYC profile and status.
POST /api/v2/user/check-access-serviceAsk whether a user may use a service in a currency.

Scan-to-Pay — Scan-to-Pay

GET /api/v2/public/get-qr-code-infoDecode a merchant QR code. No signature needed.
POST /api/v2/public/generate-philippines-qrcodeGenerate a test QR code (Philippines). No signature needed.
POST /api/v2/orders/pricesCurrent crypto prices, and the sell limits.
POST /api/v2/bank/get-supported-banksThe banks available for a fiat currency.
POST /api/v2/bank/account/verifyResolve a bank account to its holder's name.
POST /api/v2/orders/review-sell-orderQuote an order before creating it.
POST /api/v2/orders/create-sell-orderCreate the order and pay the merchant.
POST /api/v2/orders/detailsRead an order back. The source of truth.

Cashout — Cashout

POST /api/v2/orders/review-cashoutQuote a cashout before creating it.
POST /api/v2/orders/create-cashoutCreate the cashout and pay the recipient.

Webhooks — Webhooks

We POST to your endpoint when an order settles; you implement the receiver.