Error Codes Reference

reference.errorCodesPageDesc

บางรหัสยืนยันจริงจาก testnet แล้ว

รหัสที่ติด VERIFIED ทดสอบกับ API จริงเรียบร้อย — รหัสที่เหลือเป็น example ที่ต้อง verify กับทีม backend ก่อน publish

แสดง 9 / 9 รายการ

CodeHTTPErrorความหมาย & การแก้ไข
401
UNAUTHORIZEDVerified
ไม่ได้รับอนุญาต (no headers)

ไม่ได้ส่ง x-api-key หรือ x-signature/x-timestamp มาเลย — error field เป็น string ไม่ใช่ object

ตรวจสอบให้ครบ 3 headers: x-api-key, x-signature, x-timestamp

2005400
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 ให้ถูกต้อง

9002400
PAYMENT_NOT_FOUNDVerified
ไม่พบการชำระเงิน

ID ที่ระบุไม่มีในระบบ (สำหรับ /v1/payment/info, /v1/payment/cancel)

ตรวจ payment id ว่าถูกต้องและอยู่ใน environment เดียวกัน

10000400
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;