Back to updates
NewMay 25, 2026

PromptPay fiat withdrawals

Fiat withdrawals can now target a PromptPay proxy ID with the new promptpay_id_type field.

Examples

Before — withdraw to a bank account
{
"withdrawal_mode": "FIAT",
"order_id": "ORDER-DEMO-001",
"amount": 1000,
"currency": "THB",
"receiver_bank": "SCB",
"receiver_name": "MR. John Snow",
"withdrawal_address": "9999999999"
}
+Now — withdraw to PromptPay (NATID)
{
"withdrawal_mode": "FIAT",
"order_id": "WD-PP-NATID-001",
"amount": 1000,
"currency": "THB",
+ "receiver_bank": "PromptPay",
+ "promptpay_id_type": "NATID",
"receiver_name": "SOMCHAI JAIDEE",
+ "withdrawal_address": "1234567890123"
}

Overview

Before this update, the fiat withdrawal endpoint could only send money to a bank account number. This update adds PromptPay as a destination on the same endpoint — you do not need a new endpoint or a different request flow.

You opt in to PromptPay simply by setting receiver_bank to "PromptPay". Everything else about how you call the API stays the same.

Supported proxy types (promptpay_id_type)

stringDescription
MSISDNThai mobile phone, 10 digits (starts with 06, 08, or 09)
NATIDThai citizen national ID, 13 digits (mod-11 checksum)
TAXIDThai juristic tax ID, 13 digits (mod-11 checksum)
EWALLETIDBOT-issued e-wallet ID, 15 digits (digits only)

What changed

  • AddedNew field promptpay_id_type to declare the PromptPay proxy type (MSISDN / NATID / TAXID / EWALLETID).
  • Addedreceiver_bank now accepts the value "PromptPay" (case-insensitive) to route the request through PromptPay.
  • Changedwithdrawal_address can now be a PromptPay proxy ID. Non-digit characters are stripped and the value is checked for length, format, and checksum before the request is accepted.
  • AddedThe response now includes promptpay_id_type for PromptPay withdrawals.