Developers
An API your team can ship in a sprint.
Plain HTTPS, signed requests, predictable responses. No SDK lock-in.
The basics
- Protocol
- HTTPS POST, UTF-8
- Authentication
- Per-request signature with your app secret + IP allow-list
- Responses
- JSON with a uniform code / msg / data envelope
- Callbacks
- Signed HTTP POST to your notify URL, retried automatically until acknowledged
- Environments
- Full sandbox with its own credentials and dashboard
Create a deposit order
deposit.http
POST /api/pay/create
Content-Type: application/json
{
"mchNo": "M1700000000",
"appId": "your_app_id",
"mchOrderNo": "DEP20260101000001",
"amount": 2000000,
"currency": "vnd",
"wayCode": "QRCODE247",
"notifyUrl": "https://your-domain.com/callback/deposit",
"buyerCode": "player_88231",
"version": "3.0",
"signType": "MD5",
"reqTime": 1767225600,
"sign": "9A0F…C41E"
}
→ 200 OK
{
"code": 0,
"msg": "SUCCESS",
"data": { "payOrderId": "…", "payData": "https://…/cashier/…" }
}Illustrative request. Full field reference, signing rules and error codes are provided with your sandbox account.
Core endpoints
Create deposit
Create a pay-in order and receive a cashier link or raw payment data.
Create payout
Send funds to a bank account, e-wallet or on-chain address.
Query order
Look up the current state of any deposit or payout.
Verify account name
Check a beneficiary's bank account name before paying out.
Query balance
Read available and frozen balances for each currency.
Quote & convert
Get a conversion quote between VND or PHP and USDT, then confirm it.
Want the full documentation?
API docs and sandbox credentials are shared during onboarding. Message us on Telegram and we will set you up.
@LeoVXP