Error Codes Reference
reference.errorCodesPageDesc
บางรหัสยืนยันจริงจาก testnet แล้ว
รหัสที่ติด VERIFIED ทดสอบกับ API จริงเรียบร้อย — รหัสที่เหลือเป็น example ที่ต้อง verify กับทีม backend ก่อน publish
แสดง 9 / 9 รายการ
| Code | HTTP | Error | ความหมาย & การแก้ไข |
|---|---|---|---|
| — | 401 | UNAUTHORIZEDVerified ไม่ได้รับอนุญาต (no headers) | ไม่ได้ส่ง x-api-key หรือ x-signature/x-timestamp มาเลย — error field เป็น string ไม่ใช่ object ตรวจสอบให้ครบ 3 headers: x-api-key, x-signature, x-timestamp |
2005 | 400 | SIGNATURE_MISSING_OR_INVALIDVerified ไม่พบลายเซ็น / ลายเซ็นไม่ถูกต้อง | x-signature ไม่ตรงกับที่ server คำนวณได้ หรือ timestamp ไม่ valid ตรวจ signature format: timestamp|method|fullUrl|JSON.stringify(body || "") |
| — | 422 | VALIDATION_ERRORVerified Field validation failed | API ตอบ error เป็น string format "field: rule" เช่น "amount: Required" หรือ "order_id: Required" parse string เพื่อหา field ที่ผิด แล้วแก้ payload |
| — | 404 | NOT_FOUNDVerified Endpoint ไม่มีอยู่ | เรียก URL ที่ไม่มี — error เป็น string "ไม่พบข้อมูล" ตรวจ path ของ endpoint ให้ถูกต้อง |
9002 | 400 | PAYMENT_NOT_FOUNDVerified ไม่พบการชำระเงิน | ID ที่ระบุไม่มีในระบบ (สำหรับ /v1/payment/info, /v1/payment/cancel) ตรวจ payment id ว่าถูกต้องและอยู่ใน environment เดียวกัน |
10000 | 400 | WITHDRAWAL_NOT_FOUNDVerified ไม่พบการถอนเงิน | id หรือ order_id ของ withdrawal ไม่มีในระบบ เช็ค id/order_id หรือเรียก /v1/withdrawal/list เพื่อหา |
| — | 500 | INTERNAL_SERVER_ERROR Server error ที่ไม่ระบุ | เกิดข้อผิดพลาดที่ฝั่ง server ลองใหม่ภายหลัง — ถ้าเกิดบ่อยแจ้ง support พร้อม timestamp ของ request |
| — | 502 | UPSTREAM_ERROR Upstream service ไม่ตอบกลับ | Bank/blockchain provider ติดขัด รอ retry — ถ้าเกี่ยวกับ payment ระบบจะ retry อัตโนมัติ |
| — | 503 | SERVICE_UNAVAILABLE Service กำลังปรับปรุง | อยู่ในช่วง maintenance หรือ deploy รอตามเวลาที่ประกาศ |
รูปแบบ Error Response
API ตอบ error เป็น 2 รูปแบบ ขึ้นอยู่กับ HTTP status — code consumer ต้อง handle ทั้งสองแบบ
Format A — Plain string (401 / 404 / 422 validation)
{
"success": false,
"error": "ไม่พบข้อมูล" // string — human-readable message ภาษาไทย
}Format B — Structured object (400 business errors)
{
"success": false,
"error": {
"code": 9002, // numeric error code (ดูตารางด้านบน)
"message": "ไม่พบการชำระเงิน" // human-readable ภาษาไทย
}
}วิธี handle ใน TypeScript
type ApiError = string | { code: number; message: string };
const message = typeof err === 'string' ? err : err.message;
const code = typeof err === 'string' ? null : err.code;