Skip to content

Async Verify — Bank ​

ตรวจสอบสลิปโอนเงินธนาคารไทยแบบ อะซิงโครนัส (asynchronous) แทนที่จะรอผลลัพธ์ใน HTTP Response คุณจะส่งสลิปเข้าคิวหนึ่งหรือหลายรายการ แล้วรับผลลัพธ์ผ่าน Webhook Callback (พร้อมทางเลือกแบบ Polling สำรอง)

ระบบนี้ทำงาน คู่ขนาน กับ POST /verify/bank แบบซิงโครนัส — Endpoint แบบ sync ไม่มีการเปลี่ยนแปลง ใช้แบบ async เมื่อคุณต้องการ:

  • ตรวจสอบ จำนวนมาก (bulk) (ส่งได้สูงสุด 100 สลิปในครั้งเดียว)
  • รองรับ อัตราการเรียกที่สูง โดยไม่ชน Rate Limit — คำขอจะเข้าคิวและทยอยประมวลผลแทนการถูกปฏิเสธ
  • ตรวจสอบสลิปที่ข้อมูล มาช้า (เช่น ธนาคารกรุงเทพ) โดย Job จะ retry เบื้องหลังจนกว่าข้อมูลจะพร้อม

Base URL ​

https://api.easyslip.com/v2

การยืนยันตัวตน ​

จำเป็น ใช้ API Key ของ Branch เดียวกัน กับ Endpoint การตรวจสอบสลิปแบบซิงโครนัส ดูคู่มือการยืนยันตัวตน

http
Authorization: Bearer YOUR_API_KEY

Endpoints ​

EndpointMethodคำอธิบาย
/verify/bank/asyncPOSTส่ง 1 สลิปเข้าคิว → 202 พร้อม jobId
/verify/bank/batchPOSTส่ง หลาย สลิป (สูงสุด 100) → 202 พร้อม batchId + jobs
/verify/bank/jobs/:jobIdGETดึงสถานะ/ผลลัพธ์ของ Job (ทางสำรองหากพลาด Webhook)

แต่ละสลิปที่เข้าคิวจะสร้าง Webhook Callback 1 ครั้ง — รวมถึงแต่ละสลิปใน Batch ด้วย (1 callback ต่อ 1 สลิป ไม่ใช่ 1 ต่อ batch)

หลักการทำงาน ​

  1. ส่งเข้าคิว ด้วย POST /verify/bank/async (หรือหลายรายการด้วย /batch) คุณจะได้ jobId กลับมาทันที (202 Accepted) — สลิปยัง ไม่ ถูกตรวจสอบ
  2. เมื่อทุกธนาคารคืน not_found หรือ BBL pending จะ retry สูงสุด 4 ครั้ง เว้น 30/60/120/240 วินาที (ตรวจรวม 5 ครั้ง) เวลารอตามตารางรวม 7 นาที 30 วินาที ยังไม่รวมประมวลผล/รอคิว พบสลิปแล้วจบทันที
  3. EasySlip เข้าคิวส่ง Webhook เป็น success, not_found หรือ failed เมื่อสำเร็จ data เหมือน sync เมื่อ failed จะมี data: null และ error.code/message ที่ปลอดภัย กรณี billing จะส่งล้มเหลวหลังใช้ retry ของ billing ครบแล้ว
  4. หากคุณพลาด Webhook ให้เรียก GET /verify/bank/jobs/:jobId เพื่อดึงข้อมูล Job (เก็บไว้ ~7 วัน)

การระบุ Callback URL ​

แต่ละคำขอสามารถระบุ callbackUrl ได้ หากไม่ระบุ จะใช้ Default Webhook URL ที่ตั้งค่าไว้ของ Branch

กฎพฤติกรรม
ระบุ callbackUrlWebhook ผลลัพธ์จะถูก POST ไปที่นั่น (แทนที่ default ของ branch)
ไม่ระบุ callbackUrlใช้ Default Webhook URL ที่ตั้งค่าไว้ของ Branch
ไม่ได้ตั้งทั้งคู่400 VALIDATION_ERROR
ไม่ใช่ https400 INVALID_CALLBACK_URL
ชี้ไปยัง address ภายใน/private400 INVALID_CALLBACK_URL

HTTPS เท่านั้น

callbackUrl ต้อง เป็น URL แบบ https:// สาธารณะ URL ที่ไม่ใช่ HTTPS และ URL ที่ชี้ไปยัง private/internal IP range จะถูกปฏิเสธเพื่อความปลอดภัย

Default Webhook URL และ Secret สำหรับเซ็นลายเซ็นตั้งค่าได้ในการตั้งค่า Webhook ของ Branch ดูวิธีตรวจสอบลายเซ็นที่หน้า Webhook Callback

Quota และรายการซ้ำ ​

การตรวจสอบแบบ async คิดค่าใช้จ่ายเหมือนแบบ sync:

  • Quota — เฉพาะการตรวจสอบที่ สำเร็จ เท่านั้นที่หัก quota รายการที่ล้มเหลวหรือซ้ำจะไม่หัก
  • รายการซ้ำ — สลิปที่เคยตรวจสอบแล้ว (ไม่ว่าจะผ่าน sync หรือ async) จะถูกระบุว่าเป็นรายการซ้ำ

รหัส Error ​

รหัสHTTP Statusคำอธิบาย
VALIDATION_ERROR400Body ไม่ถูกต้อง, สลิปว่าง, Batch เกิน 100 สลิป หรือไม่มี callbackUrl และไม่มี default ของ branch
INVALID_CALLBACK_URL400callbackUrl ไม่ใช่ https หรือชี้ไปยัง address ภายใน/private
JOB_NOT_FOUND404ไม่พบ Job / Job หมดอายุ หรือ Job ไม่ได้เป็นของ Branch คุณ

ข้อผิดพลาดการยืนยันตัวตนมาตรฐาน (MISSING_API_KEY, INVALID_API_KEY, SERVICE_EXPIRED, QUOTA_EXCEEDED ฯลฯ) มีผลด้วยเช่นกัน ดูอ้างอิงรหัส Error

Bank Slip Verification API for Thai Banking