Skip to content

รหัส Error

รายการรหัส Error ทั้งหมดใน EasySlip API

รูปแบบ Error Response

json
{
  "status": 400,
  "message": "error_code",
  "data": {
    // ข้อมูลเพิ่มเติม (ถ้ามี)
  }
}

รหัส HTTP Status

Statusความหมาย
200สำเร็จ
400Request ไม่ถูกต้อง
401ไม่ได้รับอนุญาต
403ไม่มีสิทธิ์เข้าถึง
404ไม่พบข้อมูล
429เรียกใช้ API มากเกินไป (ดู Rate Limit)
500Server Error

Error สำหรับ Bank Account API v2

ข้อความของ VALIDATION_ERROR

สำหรับ VALIDATION_ERROR ค่า message จะบอกว่าฟิลด์ไหนไม่ผ่านและเพราะอะไร เช่น "bankNumber: Too small: expected string to have >=1 characters" หากมีหลายฟิลด์ที่ไม่ผ่าน ข้อความจะคั่นด้วย ; โดย code ยังคงเป็น VALIDATION_ERROR เสมอ

รหัสคำอธิบายวิธีแก้ไข
VALIDATION_ERRORRequest ไม่ผ่าน validationตรวจสอบชื่อฟิลด์และสาเหตุใน message
INVALID_BANK_CODEไม่รองรับ bankCode ที่ส่งมาใช้รหัสธนาคารจาก GET /banks
INVALID_EXTRA_VERIFYextraVerify ไม่ตรงกับตัวเลือกของธนาคาร หรือไม่ได้ส่งค่าที่ธนาคารบังคับใช้ค่า extraVerify จาก GET /banks
BANK_ACCOUNT_NOT_FOUNDไม่พบบัญชี หรือบัญชีไม่ได้เชื่อมโยงกับ Branch ของคุณตรวจสอบ ID บัญชีและการเชื่อมโยง Branch
BANK_ACCOUNT_DUPLICATEมีบัญชี bankCode + bankNumber เดียวกันอยู่แล้วใน Serviceใช้บัญชีเดิมหรือเปลี่ยนข้อมูลบัญชี

Error สำหรับ Authentication

รหัสคำอธิบายวิธีแก้ไข
unauthorizedAPI Key ไม่ถูกต้องหรือหมดอายุตรวจสอบ API Key
forbiddenไม่มีสิทธิ์เข้าถึง Endpoint นี้ติดต่อฝ่ายสนับสนุน

Error สำหรับการตรวจสอบสลิป

รหัสคำอธิบายวิธีแก้ไข
invalid_payloadPayload ไม่ถูกต้องตรวจสอบรูปแบบ Payload
invalid_imageรูปภาพไม่ถูกต้องใช้รูปภาพที่รองรับ (JPEG, PNG, GIF, WebP)
invalid_urlURL ไม่ถูกต้องตรวจสอบรูปแบบ URL
image_size_too_largeรูปภาพใหญ่เกินไปลดขนาดรูปภาพให้ไม่เกิน 4 MB
qrcode_not_foundไม่พบ QR Code ในรูปใช้รูปที่มี QR Code ชัดเจน
slip_not_foundไม่พบข้อมูลสลิปสลิปอาจหมดอายุหรือถูกลบ
slip_pendingสลิปธนาคารกรุงเทพรอดำเนินการรอสักครู่แล้วลองใหม่ (ภายใน 5 นาที)
slip_expiredสลิปหมดอายุใช้สลิปที่ยังไม่หมดอายุ
duplicate_slipสลิปถูกใช้แล้วสลิปนี้เคยตรวจสอบมาก่อน

Error สำหรับ QR Code

รหัสคำอธิบายวิธีแก้ไข
invalid_requestRequest ไม่ถูกต้องตรวจสอบพารามิเตอร์ที่ส่ง
invalid_typeประเภท QR ไม่ถูกต้องใช้ PROMPTPAY, KSHOP, MAE_MANEE หรือ TUNGNGERN
invalid_msisdnเบอร์โทรศัพท์ไม่ถูกต้องใช้รูปแบบ 0xxxxxxxxx
invalid_natIdเลขบัตรประชาชนไม่ถูกต้องใช้เลข 13 หลัก
invalid_ref1Reference 1 ไม่ถูกต้องใช้ตัวอักษรพิมพ์ใหญ่ 1-20 ตัว

Error สำหรับโควต้า

รหัสคำอธิบายวิธีแก้ไข
quota_exceededโควต้าหมดเติมโควต้าหรือรอรีเซ็ต

Error สำหรับ Rate Limit

รหัสคำอธิบายวิธีแก้ไข
rate_limit_exceeded (v1)
RATE_LIMIT_EXCEEDED (v2)
เรียก API เกิน TPS ที่ใช้ได้รอตาม header Retry-After แล้วลองใหม่

มาพร้อม HTTP status 429 และ header Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset รายละเอียดเพิ่มเติมดูที่ Rate Limit

Error สำหรับ Account Matching (v2)

รหัสคำอธิบายวิธีแก้ไข
account_not_matchบัญชีไม่ตรงกันตรวจสอบหมายเลขบัญชีที่ส่ง
amount_not_matchจำนวนเงินไม่ตรงกันตรวจสอบจำนวนเงินที่ส่ง

Error Response พร้อมข้อมูล

สลิปซ้ำ

json
{
  "status": 400,
  "message": "duplicate_slip",
  "data": {
    "transRef": "2024011512345678",
    "date": "2024-01-15T10:30:00+07:00",
    "amount": {
      "amount": 1000.00
    },
    "verifiedAt": "2024-01-15T10:35:00+07:00"
  }
}

Validation Error

json
{
  "status": 400,
  "message": "invalid_request",
  "data": {
    "errors": [
      { "field": "ref1", "message": "Required" },
      { "field": "amount", "message": "Must be positive number" }
    ]
  }
}

การจัดการ Error

JavaScript

javascript
try {
  const slip = await verifySlip(payload);
  // สำเร็จ
} catch (error) {
  switch (error.message) {
    case 'invalid_payload':
      console.error('Payload ไม่ถูกต้อง');
      break;
    case 'slip_not_found':
      console.error('ไม่พบสลิป');
      break;
    case 'quota_exceeded':
      console.error('โควต้าหมด กรุณาเติมเงิน');
      break;
    case 'duplicate_slip':
      console.error('สลิปนี้ถูกใช้แล้ว');
      console.log('ข้อมูลเดิม:', error.data);
      break;
    default:
      console.error('เกิดข้อผิดพลาด:', error.message);
  }
}

PHP

php
try {
    $slip = verifySlip($payload);
    // สำเร็จ
} catch (EasySlipException $e) {
    switch ($e->getMessage()) {
        case 'invalid_payload':
            echo 'Payload ไม่ถูกต้อง';
            break;
        case 'slip_not_found':
            echo 'ไม่พบสลิป';
            break;
        case 'quota_exceeded':
            echo 'โควต้าหมด กรุณาเติมเงิน';
            break;
        case 'duplicate_slip':
            echo 'สลิปนี้ถูกใช้แล้ว';
            print_r($e->data);
            break;
        default:
            echo 'เกิดข้อผิดพลาด: ' . $e->getMessage();
    }
}

Python

python
try:
    slip = verify_slip(payload)
    # สำเร็จ
except EasySlipException as e:
    if e.message == 'invalid_payload':
        print('Payload ไม่ถูกต้อง')
    elif e.message == 'slip_not_found':
        print('ไม่พบสลิป')
    elif e.message == 'quota_exceeded':
        print('โควต้าหมด กรุณาเติมเงิน')
    elif e.message == 'duplicate_slip':
        print('สลิปนี้ถูกใช้แล้ว')
        print('ข้อมูลเดิม:', e.data)
    else:
        print(f'เกิดข้อผิดพลาด: {e.message}')

ที่เกี่ยวข้อง

Bank Slip Verification API for Thai Banking