Thailand Payout
Create payout
POST /api/v1/merchant/payout/create
| Field | Required | Notes |
|---|---|---|
merchantOrderNo | yes | Unique |
amount | yes | THB beneficiary amount, up to 2 decimals |
bankCode | yes | Payout bank code; see Thailand overview |
payee_realname | yes | Beneficiary name |
payee_account | yes | Beneficiary bank account |
payee_mobile | recommended | Beneficiary mobile |
payee_email | recommended | Beneficiary email |
payee_id_no | no | Beneficiary ID number |
notifyUrl | no | Falls back to merchant callbackUrl |
remark | no | Order remark |
extJson | no | Use {} when empty |
The legacy bankName field is still accepted for compatibility, but it is ignored for routing, fee matching, and upstream requests. New integrations should send bankCode only.
bankCode enum
When creating a Thailand payout order, send "bankCode": "{code below}" in the request body. Use only the bankCode column value; BankId and bank name are not request fields.
| BankId | bankCode | Bank name |
|---|---|---|
1001 | BAAC | BANK FOR AGRICULTURE AND AGRICULTURAL COOPERATIVES |
1002 | BAY | BANK OF AYUDHYA PUBLIC COMPANY LIMITED |
1003 | BBL | BANGKOK BANK PUBLIC COMPANY LTD. |
1004 | CITI | CITIBANK, N.A. |
1005 | GHB | THE GOVERNMENT HOUSING BANK |
1006 | GSB | THE GOVERNMENT SAVINGS BANK |
1007 | KBANK | KASIKORNBANK PUBLIC COMPANY LTD. |
1008 | KTB | KRUNG THAI BANK PUBLIC COMPANY LTD. |
1009 | LHBANK | LAND AND HOUSES BANK PUBLIC COMPANY LIMITED |
1010 | SCB | SIAM COMMERCIAL BANK PUBLIC COMPANY LTD |
1012 | TISCO | TISCO BANK PUBLIC COMPANY LIMITED |
1014 | TTB | TMBTHANACHART BANK PUBLIC COMPANY LIMITED |
1015 | CIMB | CIMB THAI BANK PUBLIC COMPANY LTD. |
1023 | UOBT | UNITED OVERSEAS BANK (THAI) PUBLIC COMPANY LIMITED |
1018 | KKP | KIATNAKIN BANK PUBLIC COMPANY LIMITED |
Freezes netAmount = amount + fee from merchant wallet. Returns status=processing and payoutMethod=BANK_TRANSFER.
Query payout
GET /api/v1/merchant/payout/query?orderNo= or ?merchantOrderNo=
Webhook (completed)
Full checklist: Webhook guide.
Same header signing as payin. Body includes "orderType": "payout", "status": "completed".
Respond 200 + OK. Terminal statuses completed, failed, and timeout are sent by webhook.
Statuses: created, market_available, processing, completed, failed, timeout, cancelled.
