Skip to content

รหัส Error

รายการรหัส Error ทั้งหมดที่ Thunder Solution API ส่งกลับมา

รหัส Error ของ API v2

Error การยืนยันตัวตน (401)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
MISSING_API_KEYAuthorization header is requiredไม่มี Authorization headerเพิ่ม header Authorization: Bearer YOUR_API_KEY
INVALID_API_KEYThe provided API key is invalidAPI Key ไม่มีอยู่หรือรูปแบบผิดตรวจสอบ API Key ให้ถูกต้อง

Error สิทธิ์การเข้าถึง (403)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
BRANCH_INACTIVEThis API branch has been deactivatedBranch ถูกปิดใช้งานเปิดใช้งานใหม่ใน Developer Portal
SERVICE_BANNEDService has been bannedละเมิดเงื่อนไขการใช้งานติดต่อฝ่ายสนับสนุน
SERVICE_DELETEDService has been deletedService ถูกลบสร้างแอปพลิเคชันใหม่
IP_NOT_ALLOWEDYour IP address is not in the allowed listIP ไม่อยู่ใน Whitelistเพิ่ม IP เข้า Whitelist
QUOTA_EXCEEDEDYour API quota has been exceededใช้โควต้ารายเดือนหมดอัปเกรดแพ็กเกจหรือรอรีเซ็ต
USER_BANNEDUser has been bannedบัญชีผู้ใช้ละเมิดเงื่อนไขติดต่อฝ่ายสนับสนุน

Error การตรวจสอบข้อมูล (400)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
VALIDATION_ERRORValidation failedRequest Body ไม่ถูกต้องตรวจสอบรูปแบบ Request
URL_PROTOCOL_NOT_ALLOWEDOnly HTTP/HTTPS allowedURL ไม่ใช่ HTTPใช้ URL แบบ HTTP หรือ HTTPS
URL_INVALID_IP_RANGEURL points to restricted IPIP ภายใน/ส่วนตัวใช้ URL สาธารณะ
IMAGE_URL_UNREACHABLEUnable to access URLเข้าถึง URL ไม่ได้ตรวจสอบว่า URL เข้าถึงได้จากภายนอก
IMAGE_SIZE_TOO_LARGEImage exceeds 4MB limitไฟล์ใหญ่เกินไปลดขนาดรูปภาพ
INVALID_IMAGE_TYPEURL is not a valid imageContent type ผิดใช้ URL รูปภาพที่ถูกต้อง
INVALID_IMAGE_FORMATFile is not a valid imageไฟล์เสียหรือรูปแบบผิดใช้ JPEG, PNG, GIF, WebP
INVALID_BANK_CODEThe provided bankCode is not supportedbankCode ไม่อยู่ในรายชื่อธนาคารใช้รหัสจาก GET /banks
INVALID_EXTRA_VERIFYextraVerify is not valid for this bankค่าที่ส่งมาไม่อยู่ในรายการตัวเลือกของธนาคารใช้ค่า extraVerify ของธนาคารจาก GET /banks
INVALID_EXTRA_VERIFYextraVerify is required for this bankธนาคารต้องการตัวเลือกแต่ไม่ได้ส่งมา (เช่น ตอนเปลี่ยน bankCode)ส่งค่า extraVerify ที่ถูกต้องจาก GET /banks

Error ไม่พบข้อมูล (404)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
SLIP_NOT_FOUNDSlip not found or invalidสลิปไม่ถูกต้องหรือไม่มี QRตรวจสอบความถูกต้องของสลิป
SLIP_PENDINGBangkok Bank slip is pendingสลิปโอนภายใน 5 นาทีรอสักครู่แล้วลองใหม่
BANK_ACCOUNT_NOT_FOUNDBank account not foundไม่พบบัญชี หรือบัญชีไม่ได้เชื่อมโยงกับ Branch ของคุณตรวจสอบ id บัญชีและการเชื่อมโยง Branch
NOT_FOUNDResource not foundEndpoint ผิดตรวจสอบ URL ของ Endpoint

Error ข้อมูลซ้ำ (409)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
BANK_ACCOUNT_DUPLICATEAn active account with the same bank code and number already existsbankCode + bankNumber ซ้ำใน Service ของคุณใช้บัญชีเดิมหรือใช้ข้อมูลอื่น

Error ของเซิร์ฟเวอร์ (500)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
API_SERVER_ERRORExternal API errorปัญหาที่ Backend serviceลองใหม่ภายหลัง
INTERNAL_SERVER_ERRORInternal server errorข้อผิดพลาดที่ไม่คาดคิดติดต่อฝ่ายสนับสนุน

รหัส Error ของ API v1

Error การยืนยันตัวตน (401)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
unauthorizedUnauthorizedAPI Key ไม่ถูกต้องหรือไม่มีตรวจสอบ Authorization header

Error สิทธิ์การเข้าถึง (403)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
access_deniedAccess deniedIP ไม่อยู่ใน Whitelistเพิ่ม IP เข้า Whitelist
account_not_verifiedAccount not verifiedยังไม่ได้ทำ KYCทำ KYC ให้เสร็จ
application_expiredApplication expiredสมาชิกหมดอายุต่ออายุสมาชิก
application_deactivatedApplication deactivatedแอปถูกปิดใช้งานเปิดใช้งานใหม่ใน Portal
quota_exceededQuota exceededใช้โควต้ารายเดือนหมดอัปเกรดแพ็กเกจ

Error การตรวจสอบข้อมูล (400)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
invalid_payloadInvalid payloadPayload QR ผิดรูปแบบตรวจสอบรูปแบบ Payload
invalid_check_duplicateInvalid checkDuplicateรูปแบบ boolean ผิดใช้ true หรือ false
invalid_urlInvalid URLURL ผิดรูปแบบหรือไม่ปลอดภัยตรวจสอบรูปแบบ URL
invalid_imageInvalid imageไม่ใช่รูปภาพที่ถูกต้องใช้รูปแบบที่รองรับ
image_size_too_largeImage too largeเกิน 4MBลดขนาดรูปภาพ
invalid_requestInvalid requestSchema ไม่ผ่านการตรวจสอบตรวจสอบ Request Body
duplicate_slipDuplicate slipตรวจสอบไปแล้วดูรายละเอียดใน data

Error ไม่พบข้อมูล (404)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
slip_not_foundSlip not foundสลิปไม่ถูกต้องหรือปลอมตรวจสอบความถูกต้องของสลิป
slip_pendingBangkok Bank slip is pendingสลิปโอนภายใน 5 นาทีรอสักครู่แล้วลองใหม่
qrcode_not_foundQR code not foundไม่มี QR ในรูปใช้รูปที่ชัดเจนขึ้น
not_foundNot foundEndpoint ผิดตรวจสอบ URL

Error ของเซิร์ฟเวอร์ (500)

รหัสคำอธิบายสาเหตุวิธีแก้ไข
server_errorServer errorข้อผิดพลาดภายในลองใหม่ภายหลัง
api_server_errorAPI server errorข้อผิดพลาดที่ Backendลองใหม่ภายหลัง

รูปแบบ Error Response

API v2

json
{
  "success": false,
  "error": {
    "code": "SLIP_NOT_FOUND",
    "message": "The slip could not be found or is invalid"
  }
}

API v1

json
{
  "status": 404,
  "message": "slip_not_found"
}

สลิปซ้ำ (v1)

ส่งข้อมูลสลิปกลับมาพร้อมกับ Error:

json
{
  "status": 400,
  "message": "duplicate_slip",
  "data": {
    "payload": "...",
    "transRef": "...",
    "amount": { ... }
  }
}

แนวทางการจัดการ Error ที่ดี

1. ตรวจสอบ Success/Status ก่อน

javascript
// v2
if (!result.success) {
  console.error(`Error [${result.error.code}]: ${result.error.message}`);
}

// v1
if (result.status !== 200) {
  console.error(`Error: ${result.message}`);
}

2. จัดการ Error เฉพาะกรณี

javascript
switch (result.error.code) {
  case 'QUOTA_EXCEEDED':
    // แจ้งเตือนผู้ใช้หรือหยุดการทำงานชั่วคราว
    break;
  case 'SLIP_NOT_FOUND':
    // ให้ผู้ใช้ลองใหม่
    break;
  case 'API_SERVER_ERROR':
    // ลองใหม่แบบ exponential backoff
    break;
}

3. ใส่ Retry Logic

javascript
async function verifyWithRetry(payload, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const result = await verify(payload);

    if (result.success) return result;

    if (result.error.code === 'API_SERVER_ERROR') {
      await sleep(1000 * (i + 1)); // Exponential backoff
      continue;
    }

    throw new Error(result.error.message);
  }
}

4. บันทึก Error เพื่อ Debug

javascript
if (!result.success) {
  console.error({
    timestamp: new Date().toISOString(),
    errorCode: result.error.code,
    errorMessage: result.error.message,
    payload: payload.substring(0, 20) + '...'
  });
}

Bank Slip Verification API for Thai Banking