Create Deposit Order (Thailand)
API for creating Thai Baht (THB) deposit orders.
Request Information
- Request URL:
/gateway/api/v2/payments - Method:
POST - Content-Type:
application/json;charset=utf-8
Request Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| platform_id | Yes | String(6) | Merchant ID |
| service_id | Yes | String(7) | Service ID |
| payment_cl_id | Yes | String(64) | Merchant Order ID |
| amount | Yes | Integer(10) | Amount (in cents) |
| notify_url | Yes | String(256) | Callback URL for transaction result |
| name | No | String(64) | Sender's name (required for real-name verification). Thai personal and corporate account names are frequently longer than 16 characters — do not truncate |
| bank_name | No | String(64) | Bank code, Bank List (required for real-name verification) |
| last_number | No | String(32) | Sender's account number (required for real-name verification) |
| user_id | No | String(32) | Merchant-side user/member identifier. Stored for merchant reconciliation only; not returned in query or callback |
| request_time | Yes | Integer(10) | Request time (seconds) |
| sign_type | No | String(16) | Signature type, fixed value HMAC-SHA256 |
| sign | Yes | String(32|64) | Order Signature |
Service ID
SVC0044TrueMoneySVC0045Bank GatewaySVC0046Bank QR CodeSVC0065PROMPT PAY
The list above shows the services supported by the system. Services actually enabled for your account are confirmed by your business contact.
Response Example
Successful Response
{
"error_code": "0000",
"data": {
"link": "https://pay.example.com/cashier/PM00000102",
"payment_id": "PM00000102",
"payment_cl_id": "order_20260112001",
"amount": 10000
}
}
Remarks
- Transaction amount is in Thai Baht (cents), please multiply by 100 before sending
- Request time uses Unix timestamp in seconds
payment_idfollows the format{environment prefix}PM{8 digits}. The prefix is assigned by the system and its length varies. Store the value as a complete string — do not hard-code its length or prefix- If the transaction requires payer identity data and the request omits
name/bank_name/last_number, the order is first redirected to our data-completion page for the payer to fill in. The query API then returnsstatus = -1(awaiting payer data); the order is still valid — keep polling and do not treat it as failed - Transaction results will be sent to
notify_url, see Deposit Notification for parameter specifications