Skip to main content

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

ParameterRequiredTypeDescription
platform_idYesString(6)Merchant ID
service_idYesString(7)Service ID
payment_cl_idYesString(64)Merchant Order ID
amountYesInteger(10)Amount (in cents)
notify_urlYesString(256)Callback URL for transaction result
nameNoString(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_nameNoString(64)Bank code, Bank List (required for real-name verification)
last_numberNoString(32)Sender's account number (required for real-name verification)
user_idNoString(32)Merchant-side user/member identifier. Stored for merchant reconciliation only; not returned in query or callback
request_timeYesInteger(10)Request time (seconds)
sign_typeNoString(16)Signature type, fixed value HMAC-SHA256
signYesString(32|64)Order Signature

Service ID

  • SVC0044 TrueMoney
  • SVC0045 Bank Gateway
  • SVC0046 Bank QR Code
  • SVC0065 PROMPT 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_id follows 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 returns status = -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