เอกสารอ้างอิง API
หน้านี้สร้างอัตโนมัติจากไฟล์ OpenAPI ของ API เวอร์ชันปัจจุบัน คำอธิบายฟิลด์มาจากไฟล์ spec จึงเป็นภาษาอังกฤษ
- Base URL:
https://api.example.com(ทุก path ขึ้นต้นด้วย/v1) - ดาวน์โหลด spec:
/openapi.json(OpenAPI 3.0) ใช้กับ Postman, Insomnia หรือเครื่องมือสร้าง client ได้ - ทุก request ต้องเซ็นตามการยืนยันตัวตนและการเซ็น request และทุก response ใช้รูปแบบในภาพรวม
- ความหมายของ
error.codeดูที่รหัสข้อผิดพลาด
List payins
หัวข้อที่มีชื่อว่า “List payins”GET /v1/payinsNewest first.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
limit | query | number | - | Default 20. Range 1-100. |
cursor | query | string | - | Opaque cursor from pagination.nextCursor of the previous page. |
status | query | pending, processing, in_review, succeeded, expired, canceled, rejected, failed[] | - | Comma-separated statuses. |
reference | query | string | - | Exact match on your reference. |
payerId | query | string | - | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
createdFrom | query | string | - | ISO-8601, inclusive. e.g. 2026-01-01T00:00:00Z |
createdTo | query | string | - | ISO-8601, inclusive. e.g. 2026-01-31T23:59:59Z |
Response 200 - data คือ รายการของ PayinObject พร้อม pagination
{ "data": [ { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "pagination": { "limit": 20, "hasMore": true, "nextCursor": "eyJvIjoyMH0" }}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Create a payin
หัวข้อที่มีชื่อว่า “Create a payin”POST /v1/payinsIdentify the payer with exactly one of payerId or an inline payer (bank account; an existing payer with the same bank code and account number is reused, otherwise one is created). Returns the payin with payTo (incl. qrPayload) and checkoutUrl; add ?include=paymentImage for the PNG image. The response may contain warnings (e.g. payer_name_differs).
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
include | query | string | - | Comma-separated extra fields. paymentImage: add the PNG data URI of the QR code / transfer card. Unknown values are ignored. e.g. paymentImage |
Idempotency-Key | header | string | - | Optional, recommended. A unique key (8-255 characters of A-Z a-z 0-9 _ - : .) per create request, e.g. a UUID. Retrying with the same key and the same request within 24 hours returns the original response (header Idempotent-Replayed: true) instead of creating a second one. |
Request body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
payerId | string | - | An existing payer. Send exactly one of payerId and payer. e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
payer | InlinePayerDto | - | The payer’s bank account, instead of payerId. Send exactly one of payerId and payer. If you already have a payer with the same bankCode and accountNumber it is reused (its stored name is kept; a payer_name_differs warning is returned if the name differs), otherwise a new active payer is created as with POST /v1/payers. The response contains its payerId. |
amount | string | ใช่ | Decimal string. Unique decimals may be added; see amount in the response. e.g. 150.00 |
currency | THB, USD, USDT, LAK | ใช่ | e.g. THB |
method | auto, promptpay_qr, bank_transfer, crypto, lao_qr | - | Default auto. |
reference | string | - | Your order id. Max 128 chars. e.g. order-10001 |
webhookUrl | string | ใช่ | e.g. https://partner.example.com/webhooks/payments |
returnUrl | string | - | Where the checkout page sends the payer afterwards. e.g. https://partner.example.com/orders/10001 |
{ "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee" }, "amount": "150.00", "currency": "THB", "method": "auto", "reference": "order-10001", "webhookUrl": "https://partner.example.com/webhooks/payments", "returnUrl": "https://partner.example.com/orders/10001"}Response 201 - data คือ PayinObject
{ "data": { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "warnings": [ { "code": "payer_name_differs", "message": "An existing payer with this bank account was used. Its stored account name differs from the one sent and was kept; it is used for payment matching.", "param": "payer.accountName" } ]}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 422, 500
Retrieve a payin
หัวข้อที่มีชื่อว่า “Retrieve a payin”GET /v1/payins/{id}Includes payTo (incl. qrPayload); add ?include=paymentImage for the PNG image.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d |
include | query | string | - | Comma-separated extra fields. paymentImage: add the PNG data URI of the QR code / transfer card. Unknown values are ignored. e.g. paymentImage |
Response 200 - data คือ PayinObject
{ "data": { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 500
Cancel a pending or expired payin
หัวข้อที่มีชื่อว่า “Cancel a pending or expired payin”POST /v1/payins/{id}/cancelพารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d |
Response 200 - data คือ PayinObject
{ "data": { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 500
Upload a payment slip for a payin
หัวข้อที่มีชื่อว่า “Upload a payment slip for a payin”POST /v1/payins/{id}/slipmultipart/form-data with a single file part. The signature body hash is the SHA-256 of the file bytes.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d |
Request body (multipart/form-data)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
file | file | ใช่ |
สำหรับ multipart ให้ส่งเพียง part file และใช้ SHA-256 ของไบต์ไฟล์ในการเซ็น
Response 200 - data คือ SlipUploadResult
{ "data": { "object": "slip_upload", "matched": true, "slipStatus": "matched", "payin": { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } } }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 422, 500
Payouts
หัวข้อที่มีชื่อว่า “Payouts”List payouts
หัวข้อที่มีชื่อว่า “List payouts”GET /v1/payoutsNewest first.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
limit | query | number | - | Default 20. Range 1-100. |
cursor | query | string | - | Opaque cursor from pagination.nextCursor of the previous page. |
status | query | pending, processing, in_review, succeeded, expired, canceled, rejected, failed[] | - | Comma-separated statuses. |
reference | query | string | - | Exact match on your reference. |
payerId | query | string | - | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
createdFrom | query | string | - | ISO-8601, inclusive. e.g. 2026-01-01T00:00:00Z |
createdTo | query | string | - | ISO-8601, inclusive. e.g. 2026-01-31T23:59:59Z |
Response 200 - data คือ รายการของ PayoutObject พร้อม pagination
{ "data": [ { "object": "payout", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z" } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "pagination": { "limit": 20, "hasMore": true, "nextCursor": "eyJvIjoyMH0" }}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Create a payout
หัวข้อที่มีชื่อว่า “Create a payout”POST /v1/payoutsIdentify the payer (the destination account) with exactly one of payerId or an inline payer; an existing payer with the same bank code and account number is reused, otherwise one is created. The response may contain warnings (e.g. payer_name_differs).
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
Idempotency-Key | header | string | - | Optional, recommended. A unique key (8-255 characters of A-Z a-z 0-9 _ - : .) per create request, e.g. a UUID. Retrying with the same key and the same request within 24 hours returns the original response (header Idempotent-Replayed: true) instead of creating a second one. |
Request body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
payerId | string | - | An existing payer. Send exactly one of payerId and payer. e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
payer | InlinePayerDto | - | The payer’s bank account, instead of payerId. Send exactly one of payerId and payer. If you already have a payer with the same bankCode and accountNumber it is reused (its stored name is kept; a payer_name_differs warning is returned if the name differs), otherwise a new active payer is created as with POST /v1/payers. The response contains its payerId. |
amount | string | ใช่ | e.g. 500.00 |
currency | THB, USD, USDT, LAK | ใช่ | e.g. THB |
method | auto, bank_transfer, crypto, lao_qr | - | Default auto. |
reference | string | - | Max 128 chars. e.g. withdraw-20001 |
webhookUrl | string | - | e.g. https://partner.example.com/webhooks/payments |
walletAddress | string | - | Crypto payouts: destination wallet. |
network | string | - | Crypto payouts: network, e.g. BSC. |
{ "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee" }, "amount": "500.00", "currency": "THB", "method": "auto", "reference": "withdraw-20001", "webhookUrl": "https://partner.example.com/webhooks/payments", "walletAddress": "string", "network": "string"}Response 201 - data คือ PayoutObject
{ "data": { "object": "payout", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "warnings": [ { "code": "payer_name_differs", "message": "An existing payer with this bank account was used. Its stored account name differs from the one sent and was kept; it is used for payment matching.", "param": "payer.accountName" } ]}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 422, 500
Retrieve a payout
หัวข้อที่มีชื่อว่า “Retrieve a payout”GET /v1/payouts/{id}พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. pout_0f1e2d3c4b5a69788796a5b4c3d2e1f0 |
Response 200 - data คือ PayoutObject
{ "data": { "object": "payout", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 500
Cancel a payout
หัวข้อที่มีชื่อว่า “Cancel a payout”POST /v1/payouts/{id}/cancelPossible while pending, failed, queued, or submitted for more than 30 minutes.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. pout_0f1e2d3c4b5a69788796a5b4c3d2e1f0 |
Response 200 - data คือ PayoutObject
{ "data": { "object": "payout", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 500
List payers
หัวข้อที่มีชื่อว่า “List payers”GET /v1/payersNewest first.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
limit | query | number | - | Default 20. Range 1-100. |
cursor | query | string | - | Opaque cursor from pagination.nextCursor of the previous page. |
accountNumber | query | string | - | Contains match. |
accountName | query | string | - | Case-insensitive contains match. |
bankCode | query | string | - | e.g. SCB |
Response 200 - data คือ รายการของ PayerObject พร้อม pagination
{ "data": [ { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "pagination": { "limit": 20, "hasMore": true, "nextCursor": "eyJvIjoyMH0" }}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Create a payer
หัวข้อที่มีชื่อว่า “Create a payer”POST /v1/payersRequest body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
bankCode | string | ใช่ | Bank code from GET /v1/banks. e.g. SCB |
accountNumber | string | ใช่ | Digits only. e.g. 1234567890 |
accountName | string | ใช่ | e.g. สมชาย สบายดี |
accountNameEn | string | - | e.g. Somchai Sabuydee |
status | active, inactive | - | Default active. |
referralCode | string | - | Referral code, if any. |
{ "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": "string"}Response 201 - data คือ PayerObject
{ "data": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 422, 500
Retrieve a payer
หัวข้อที่มีชื่อว่า “Retrieve a payer”GET /v1/payers/{id}พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
Response 200 - data คือ PayerObject
{ "data": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 500
Update a payer
หัวข้อที่มีชื่อว่า “Update a payer”PATCH /v1/payers/{id}Omitted fields keep their value.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
Request body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
bankCode | string | - | Bank code from GET /v1/banks. e.g. SCB |
accountNumber | string | - | Digits only. e.g. 1234567890 |
accountName | string | - | e.g. สมชาย สบายดี |
accountNameEn | string | - | e.g. Somchai Sabuydee |
status | active, inactive | - | Default active. |
referralCode | string | - | Referral code, if any. |
{ "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": "string"}Response 200 - data คือ PayerObject
{ "data": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 422, 500
Delete a payer
หัวข้อที่มีชื่อว่า “Delete a payer”DELETE /v1/payers/{id}Only payers without payments can be deleted.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
Response 200 - data คือ DeletedObject
{ "data": { "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "deleted": true }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 409, 500
List a payer’s payins and payouts
หัวข้อที่มีชื่อว่า “List a payer’s payins and payouts”GET /v1/payers/{id}/paymentsItems are payin or payout objects (see object). Newest first.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
id | path | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
limit | query | number | - | Default 20. Range 1-100. |
cursor | query | string | - | Opaque cursor from pagination.nextCursor of the previous page. |
status | query | pending, processing, in_review, succeeded, expired, canceled, rejected, failed[] | - | Comma-separated statuses. |
reference | query | string | - | Exact match on your reference. |
payerId | query | string | - | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
createdFrom | query | string | - | ISO-8601, inclusive. e.g. 2026-01-01T00:00:00Z |
createdTo | query | string | - | ISO-8601, inclusive. e.g. 2026-01-31T23:59:59Z |
Response 200 - data คือ รายการของ PayinObject พร้อม pagination
{ "data": [ { "object": "payin", "id": "pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d", "reference": "order-10001", "payerId": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "payer": { "object": "payer", "id": "payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d", "bankCode": "SCB", "bankName": "Siam Commercial Bank", "accountNumber": "1234567890", "accountName": "สมชาย สบายดี", "accountNameEn": "Somchai Sabuydee", "status": "active", "referralCode": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestedAmount": "150.00", "amount": "150.37", "fee": "2.25", "currency": "THB", "method": "promptpay_qr", "status": "pending", "failureReason": null, "webhookUrl": "https://partner.example.com/webhooks", "payerAccount": { "bankCode": "SCB", "accountNumber": "1234567890", "accountName": "Somchai Sabuydee" }, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z", "returnUrl": "https://partner.example.com/return", "checkoutUrl": "https://pay.example.com/3f2b1c0d-...", "paymentImage": "data:image/png;base64,iVBORw0KGgo...", "payTo": { "bankCode": "KBANK", "bankName": "Kasikorn Bank", "accountNumber": "0987654321", "accountName": "Example Co., Ltd.", "promptpayId": "0812345678", "walletAddress": "0xabc...", "network": "BSC", "qrPayload": "00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572" } } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e", "pagination": { "limit": 20, "hasMore": true, "nextCursor": "eyJvIjoyMH0" }}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 404, 500
List supported banks
หัวข้อที่มีชื่อว่า “List supported banks”GET /v1/banksResponse 200 - data คือ array ของ BankObject
{ "data": [ { "object": "bank", "code": "SCB", "name": "Siam Commercial Bank", "localName": "ธนาคารไทยพาณิชย์" } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Account
หัวข้อที่มีชื่อว่า “Account”Retrieve your account, limits and balance
หัวข้อที่มีชื่อว่า “Retrieve your account, limits and balance”GET /v1/accountResponse 200 - data คือ AccountObject
{ "data": { "object": "account", "name": "Example Partner", "status": "active", "payinsEnabled": true, "payoutsEnabled": true, "ipAllowListEnabled": true, "limits": { "payinMinimum": "100.00", "payinMaximum": "50000.00", "payoutMinimum": "100.00", "payoutMaximum": "50000.00", "dailyWithdrawalLimit": "0.00" }, "balance": { "currency": "THB", "total": "125000.00", "available": "120000.00" }, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
End-of-day balance history
หัวข้อที่มีชื่อว่า “End-of-day balance history”GET /v1/account/balance-historyfrom/to inclusive (YYYY-MM-DD, UTC+7), at most 31 days per request; longer ranges return 400 date_range_too_large. Entries are in date order.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
from | query | string | - | YYYY-MM-DD (UTC+7), inclusive. Default: 6 days before to (a 7-day range). The range may span at most 31 days. e.g. 2026-01-01 |
to | query | string | - | YYYY-MM-DD (UTC+7), inclusive. Default: today. e.g. 2026-01-31 |
Response 200 - data คือ array ของ BalanceHistoryEntry
{ "data": [ { "date": "2026-01-01", "balance": "120000.00" } ], "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Reports
หัวข้อที่มีชื่อว่า “Reports”Totals of succeeded payments for a date range
หัวข้อที่มีชื่อว่า “Totals of succeeded payments for a date range”GET /v1/reports/daily-summaryfrom/to inclusive (YYYY-MM-DD, UTC+7), at most 31 days per request; longer ranges return 400 date_range_too_large.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
from | query | string | - | YYYY-MM-DD (UTC+7), inclusive. Default: 6 days before to (a 7-day range). The range may span at most 31 days. e.g. 2026-01-01 |
to | query | string | - | YYYY-MM-DD (UTC+7), inclusive. Default: today. e.g. 2026-01-31 |
Response 200 - data คือ DailySummaryObject
{ "data": { "object": "daily_summary", "from": "2026-01-01", "to": "2026-01-07", "currency": "THB", "payinsSucceeded": "100000.00", "payoutsSucceeded": "40000.00", "withdrawalsSucceeded": "20000.00", "topupsSucceeded": "0.00", "fees": "1500.00" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 500
Withdrawals
หัวข้อที่มีชื่อว่า “Withdrawals”Request a withdrawal of your balance
หัวข้อที่มีชื่อว่า “Request a withdrawal of your balance”POST /v1/withdrawalsOnly the documented fields are accepted; anything else is rejected.
พารามิเตอร์
| ชื่อ | ตำแหน่ง | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
Idempotency-Key | header | string | - | Optional, recommended. A unique key (8-255 characters of A-Z a-z 0-9 _ - : .) per create request, e.g. a UUID. Retrying with the same key and the same request within 24 hours returns the original response (header Idempotent-Replayed: true) instead of creating a second one. |
Request body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
amount | string | ใช่ | Amount to withdraw from your balance (THB) e.g. 10000.00 |
currency | THB, USD, USDT | - | Currency to be paid out in. Default THB. |
channel | bank_transfer, crypto | ใช่ | |
bankName | string | - | bank_transfer: bank name. e.g. SCB |
bankAccountName | string | - | bank_transfer: account name. |
bankAccountNumber | string | - | bank_transfer: account number. |
walletAddress | string | - | crypto: wallet address. |
network | string | - | crypto: network, e.g. TRC20. |
note | string | - | Max 500 chars. |
{ "amount": "10000.00", "currency": "THB", "channel": "bank_transfer", "bankName": "SCB", "bankAccountName": "string", "bankAccountNumber": "string", "walletAddress": "string", "network": "string", "note": null}Response 201 - data คือ WithdrawalObject
{ "data": { "object": "withdrawal", "id": "wd_0a1b2c3d4e5f60718293a4b5c6d7e8f9", "status": "pending", "channel": "bank_transfer", "requestedAmount": "10000.00", "fee": "50.00", "netAmount": "9950.00", "currency": "THB", "payoutAmount": "9950.00", "exchangeRate": "1.000000", "bankAccount": { "bankName": null, "accountName": null, "accountNumber": null }, "wallet": { "address": null, "network": null }, "note": null, "createdAt": "2026-01-01T00:00:00.000Z" }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 409, 422, 500
Verify a payment slip
หัวข้อที่มีชื่อว่า “Verify a payment slip”POST /v1/slips/verifySend either JSON { "payload": "<QR payload>" } or multipart/form-data with a single file part (JPG/PNG, max 5 MB). For multipart the signature body hash is the SHA-256 of the file bytes.
Request body (application/json)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
payload | string | - | QR payload read from the slip (JSON requests) |
checkDuplicate | boolean | - | Ask the provider to flag duplicate slips. |
{ "payload": "0041000600000101030040220...", "checkDuplicate": true}Request body (multipart/form-data)
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
file | file | ใช่ | JPG or PNG, max 5 MB. |
สำหรับ multipart ให้ส่งเพียง part file และใช้ SHA-256 ของไบต์ไฟล์ในการเซ็น
Response 200 - data คือ SlipVerificationObject
{ "data": { "object": "slip_verification", "verified": true, "failureCode": null, "payload": "0041000600000101030040220...", "bankReference": "202601011234567890", "transferredAt": "2026-01-01T00:04:12.000Z", "amount": "100.00", "currency": "THB", "sender": { "bankCode": null, "bankName": null, "accountNumber": null, "accountName": null, "accountNameEn": null }, "receiver": { "bankCode": null, "bankName": null, "accountNumber": null, "accountName": null, "accountNameEn": null } }, "requestId": "req_8f2k3j4h5g6f7d8s9a0q1w2e"}HTTP status ของข้อผิดพลาดที่อาจได้รับ: 400, 401, 403, 422, 429, 500
Objects
หัวข้อที่มีชื่อว่า “Objects”โครงสร้างของ object ที่อยู่ใน data ของ response
PartnerErrorDetail
หัวข้อที่มีชื่อว่า “PartnerErrorDetail”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
type | invalid_request_error, authentication_error, permission_error, rate_limit_error, api_error | ใช่ | |
code | string | ใช่ | e.g. payer_not_found |
message | string | ใช่ | e.g. No such payer. |
param | string | - | e.g. payerId |
PartnerErrorBody
หัวข้อที่มีชื่อว่า “PartnerErrorBody”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
error | PartnerErrorDetail | ใช่ | |
requestId | string | ใช่ | e.g. req_8f2k3j4h5g6f7d8s9a0q |
Pagination
หัวข้อที่มีชื่อว่า “Pagination”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
limit | number | ใช่ | e.g. 20 |
hasMore | boolean | ใช่ | e.g. true |
nextCursor | string | null | ใช่ | Pass as cursor to fetch the next page. e.g. eyJvIjoyMH0 |
PayerObject
หัวข้อที่มีชื่อว่า “PayerObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. payer |
id | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
bankCode | string | null | ใช่ | e.g. SCB |
bankName | string | null | ใช่ | e.g. Siam Commercial Bank |
accountNumber | string | ใช่ | e.g. 1234567890 |
accountName | string | ใช่ | e.g. สมชาย สบายดี |
accountNameEn | string | null | ใช่ | e.g. Somchai Sabuydee |
status | active, inactive | ใช่ | e.g. active |
referralCode | string | null | ใช่ | |
createdAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
BankAccountRef
หัวข้อที่มีชื่อว่า “BankAccountRef”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
bankCode | string | null | ใช่ | e.g. SCB |
accountNumber | string | null | ใช่ | e.g. 1234567890 |
accountName | string | null | ใช่ | e.g. Somchai Sabuydee |
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
bankCode | string | null | - | e.g. KBANK |
bankName | string | null | - | e.g. Kasikorn Bank |
accountNumber | string | null | - | e.g. 0987654321 |
accountName | string | null | - | e.g. Example Co., Ltd. |
promptpayId | string | null | - | e.g. 0812345678 |
walletAddress | string | null | - | Crypto payins only. e.g. 0xabc... |
network | string | null | - | Crypto payins only. e.g. BSC |
qrPayload | string | null | ใช่ | The QR text the payer must scan, so you can render your own QR code: the EMVCo/PromptPay payload (incl. the amount) for promptpay_qr, the Lao QR payload for lao_qr. null for bank_transfer and crypto. e.g. 00020101021229370016A000000677010111011300668123456785802TH53037645406150.3763046572 |
PayinObject
หัวข้อที่มีชื่อว่า “PayinObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. payin |
id | string | ใช่ | e.g. pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d |
reference | string | null | ใช่ | Your own reference (order id) e.g. order-10001 |
payerId | string | null | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
payer | PayerObject | null | - | |
requestedAmount | string | ใช่ | Amount requested. e.g. 150.00 |
amount | string | ใช่ | Amount to be transferred. For payins this includes the unique decimals the payer must send. e.g. 150.37 |
fee | string | ใช่ | e.g. 2.25 |
currency | string | ใช่ | e.g. THB |
method | promptpay_qr, bank_transfer, crypto, lao_qr, auto | null | ใช่ | |
status | pending, processing, in_review, succeeded, expired, canceled, rejected, failed | ใช่ | |
failureReason | string | null | ใช่ | |
webhookUrl | string | null | ใช่ | e.g. https://partner.example.com/webhooks |
payerAccount | BankAccountRef | null | ใช่ | |
createdAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
updatedAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
returnUrl | string | null | ใช่ | e.g. https://partner.example.com/return |
checkoutUrl | string | null | ใช่ | e.g. https://pay.example.com/3f2b1c0d-... |
paymentImage | string | null | - | PNG data URI (QR code or transfer card). Only present on create and retrieve when requested with ?include=paymentImage. |
payTo | PayTo | null | - | Where the payer must send money. Returned on create and retrieve only. |
PartnerWarningObject
หัวข้อที่มีชื่อว่า “PartnerWarningObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
code | payer_name_differs | ใช่ | e.g. payer_name_differs |
message | string | ใช่ | e.g. An existing payer with this bank account was used. Its stored account name differs from the one sent and was kept; it is used for payment matching. |
param | string | - | e.g. payer.accountName |
SlipUploadResult
หัวข้อที่มีชื่อว่า “SlipUploadResult”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. slip_upload |
matched | boolean | ใช่ | True if the slip matched and the payin succeeded. |
slipStatus | string | null | ใช่ | e.g. matched |
payin | PayinObject | ใช่ |
PayoutObject
หัวข้อที่มีชื่อว่า “PayoutObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. payout |
id | string | ใช่ | e.g. pin_3f2b1c0d9e8f4a7b8c6d5e4f3a2b1c0d |
reference | string | null | ใช่ | Your own reference (order id) e.g. order-10001 |
payerId | string | null | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
payer | PayerObject | null | - | |
requestedAmount | string | ใช่ | Amount requested. e.g. 150.00 |
amount | string | ใช่ | Amount to be transferred. For payins this includes the unique decimals the payer must send. e.g. 150.37 |
fee | string | ใช่ | e.g. 2.25 |
currency | string | ใช่ | e.g. THB |
method | promptpay_qr, bank_transfer, crypto, lao_qr, auto | null | ใช่ | |
status | pending, processing, in_review, succeeded, expired, canceled, rejected, failed | ใช่ | |
failureReason | string | null | ใช่ | |
webhookUrl | string | null | ใช่ | e.g. https://partner.example.com/webhooks |
payerAccount | BankAccountRef | null | ใช่ | |
createdAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
updatedAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
DeletedObject
หัวข้อที่มีชื่อว่า “DeletedObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
id | string | ใช่ | e.g. payer_7c0a4b8e2f3d4a1b9c8d7e6f5a4b3c2d |
deleted | boolean | ใช่ | e.g. true |
BankObject
หัวข้อที่มีชื่อว่า “BankObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. bank |
code | string | ใช่ | e.g. SCB |
name | string | ใช่ | e.g. Siam Commercial Bank |
localName | string | null | ใช่ | e.g. ธนาคารไทยพาณิชย์ |
AccountLimits
หัวข้อที่มีชื่อว่า “AccountLimits”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
payinMinimum | string | null | ใช่ | e.g. 100.00 |
payinMaximum | string | null | ใช่ | e.g. 50000.00 |
payoutMinimum | string | null | ใช่ | e.g. 100.00 |
payoutMaximum | string | null | ใช่ | e.g. 50000.00 |
dailyWithdrawalLimit | string | null | ใช่ | Daily withdrawal limit, 0 means unlimited. e.g. 0.00 |
AccountBalance
หัวข้อที่มีชื่อว่า “AccountBalance”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
currency | string | ใช่ | e.g. THB |
total | string | ใช่ | e.g. 125000.00 |
available | string | ใช่ | e.g. 120000.00 |
AccountObject
หัวข้อที่มีชื่อว่า “AccountObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. account |
name | string | ใช่ | e.g. Example Partner |
status | string | ใช่ | e.g. active |
payinsEnabled | boolean | ใช่ | |
payoutsEnabled | boolean | ใช่ | |
ipAllowListEnabled | boolean | ใช่ | |
limits | AccountLimits | ใช่ | |
balance | AccountBalance | ใช่ | |
createdAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
BalanceHistoryEntry
หัวข้อที่มีชื่อว่า “BalanceHistoryEntry”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
date | string | ใช่ | Day (UTC+7) e.g. 2026-01-01 |
balance | string | ใช่ | Balance at end of day (THB) e.g. 120000.00 |
DailySummaryObject
หัวข้อที่มีชื่อว่า “DailySummaryObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. daily_summary |
from | string | ใช่ | e.g. 2026-01-01 |
to | string | ใช่ | e.g. 2026-01-07 |
currency | string | ใช่ | e.g. THB |
payinsSucceeded | string | ใช่ | e.g. 100000.00 |
payoutsSucceeded | string | ใช่ | e.g. 40000.00 |
withdrawalsSucceeded | string | ใช่ | e.g. 20000.00 |
topupsSucceeded | string | ใช่ | e.g. 0.00 |
fees | string | ใช่ | e.g. 1500.00 |
WithdrawalObject
หัวข้อที่มีชื่อว่า “WithdrawalObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. withdrawal |
id | string | ใช่ | e.g. wd_0a1b2c3d4e5f60718293a4b5c6d7e8f9 |
status | pending, processing, succeeded, rejected | ใช่ | |
channel | bank_transfer, crypto | ใช่ | |
requestedAmount | string | ใช่ | Requested amount (THB) e.g. 10000.00 |
fee | string | ใช่ | Fee (THB) e.g. 50.00 |
netAmount | string | ใช่ | Requested amount minus fee (THB) e.g. 9950.00 |
currency | string | ใช่ | Currency paid out. e.g. THB |
payoutAmount | string | ใช่ | Amount paid out in currency. e.g. 9950.00 |
exchangeRate | string | null | ใช่ | e.g. 1.000000 |
bankAccount | object | null | ใช่ | Destination bank account (bank_transfer) |
bankAccount.bankName | string | null | - | |
bankAccount.accountName | string | null | - | |
bankAccount.accountNumber | string | null | - | |
wallet | object | null | ใช่ | Destination wallet (crypto) |
wallet.address | string | null | - | |
wallet.network | string | null | - | |
note | string | null | ใช่ | |
createdAt | string | ใช่ | e.g. 2026-01-01T00:00:00.000Z |
SlipParty
หัวข้อที่มีชื่อว่า “SlipParty”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
bankCode | string | null | ใช่ | |
bankName | string | null | ใช่ | |
accountNumber | string | null | ใช่ | |
accountName | string | null | ใช่ | |
accountNameEn | string | null | ใช่ |
SlipVerificationObject
หัวข้อที่มีชื่อว่า “SlipVerificationObject”| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
object | string | ใช่ | e.g. slip_verification |
verified | boolean | ใช่ | |
failureCode | slip_not_found, duplicate_slip, amount_mismatch, receiver_mismatch, invalid_image, invalid_payload, verification_unavailable | null | ใช่ | |
payload | string | null | ใช่ | |
bankReference | string | null | ใช่ | Bank transaction reference. |
transferredAt | string | null | ใช่ | |
amount | string | null | ใช่ | e.g. 100.00 |
currency | string | null | ใช่ | e.g. THB |
sender | SlipParty | null | ใช่ | |
receiver | SlipParty | null | ใช่ |