POST /v1/slips/verify

ตรวจสลิปโอนเงิน
จาก server ของร้านคุณ

ส่งรูปสลิปมาพร้อมเลขออเดอร์ ระบบจะเช็กรายการกับช่องทางของสถาบันการเงิน ดูว่ายอดและบัญชีผู้รับตรงกับร้าน แล้วล็อกเลขอ้างอิงไว้ สลิปใบเดิมจึงเอาไปใช้กับออเดอร์อื่นไม่ได้

01

ระบบตรวจอะไรบ้าง

ทุกคำขอผ่านการตรวจตามลำดับนี้ ข้อไหนไม่ผ่าน ระบบจะหยุดตรงนั้นแล้วตอบรหัสของข้อนั้นกลับไป

  1. 01

    อ่าน QR บนสลิป

    หารหัสธนาคารต้นทางและเลขอ้างอิงจาก QR ถ้ารูปเบลอหรือไม่มี QR จะได้ HTTP 422

    HTTP 422
  2. 02

    สลิปยังไม่เคยถูกใช้

    เลขอ้างอิงที่ล็อกไปแล้ว ไม่ว่าจากออเดอร์ไหน จะถูกปฏิเสธตั้งแต่ขั้นนี้

    DUPLICATE_REF
  3. 03

    แพ็กเกจยังใช้ได้

    บัญชียังไม่หมดอายุและยังมีโควตาสลิปเหลือ ถ้าหมดแล้วระบบหยุดก่อนไปถามช่องทางยืนยัน

    HTTP 402
  4. 04

    รายการมีอยู่จริง

    ยืนยันเลขอ้างอิงและยอดกับช่องทางตรวจสอบของสถาบันการเงิน

    SLIP_NOT_FOUND
  5. 05

    ยอดเงินตรง

    เทียบกับ amount ที่ส่งมา ถ้าไม่ได้ส่ง ระบบอ่านยอดจากรูปแล้วรับเฉพาะยอดที่ยืนยันได้

    AMOUNT_MISMATCH
  6. 06

    ผู้รับเป็นบัญชีของร้าน

    ชื่อ เลขบัญชี และธนาคารผู้รับต้องตรงกับที่ร้านตั้งค่าไว้

    RECEIVER_MISMATCH
  7. 07

    เวลาโอนอยู่ในช่วงที่รับ

    สลิปที่เก่ากว่าเวลาที่ร้านกำหนด (ค่าเริ่มต้น 15 นาที สูงสุด 60 นาที) จะไม่ผ่าน

    SLIP_EXPIRED
  8. 08

    ล็อกเลขอ้างอิง

    ผ่านทุกข้อแล้วระบบล็อกสลิปใบนี้ทันที และนับ 1 ในโควตาของแพ็กเกจ

    VERIFIED
02

เชื่อมกับระบบของคุณ

ใช้ endpoint เดียวกับทุกออเดอร์ ผลการตรวจทุกแบบตอบเป็น HTTP 200 ให้ตัดสินจากฟิลด์ success และ code

  1. 1

    สมัครสมาชิก สร้างร้าน แล้วสร้าง API Key ใน Dashboard เก็บ Key ไว้ฝั่ง server เช่นใน .env อย่าใส่ไว้ในโค้ดหน้าเว็บหรือแอป

  2. 2

    ตั้งชื่อ เลขบัญชี และธนาคารของบัญชีรับเงิน สลิปที่โอนเข้าบัญชีอื่นจะถูกปฏิเสธ

  3. 3

    ส่งรูปสลิปพร้อมเลขออเดอร์ แล้วส่งของเมื่อได้ code เป็น VERIFIED

Shell

curl -X POST "https://slip.nxy.wtf/v1/slips/verify" \
  -H "X-API-Key: $SLIP_API_KEY" \
  -F "image=@slip.jpg" \
  -F "amount=499.00" \
  -F "customer_id=order-2026-0001"

HTTP 200 · VERIFIED

{
  "success": true,
  "code": "VERIFIED",
  "code_id": 0,
  "message": "Slip verified successfully",
  "data": {
    "ref_id": "ABC123",
    "bank_code": "004",
    "bank_name": "KBANK",
    "amount": 499.0,
    "receiver_name": "บริษัท ตัวอย่าง จำกัด",
    "txn_at": "2026-10-09T10:30:00+07:00",
    "consumed": true,
    "idempotent_replay": false
  }
}
03

รายละเอียดที่ควรรู้ก่อนเปิดใช้

สลิปหนึ่งใบล็อกได้ครั้งเดียว
เลขอ้างอิงของสลิปถูกล็อกแบบ unique ทั้งระบบ ถ้าสองคำขอส่งสลิปใบเดียวกันเข้ามาพร้อมกัน จะผ่านแค่คำขอเดียว
ส่งสลิปเดิมซ้ำได้ถ้าเน็ตหลุด
ส่งสลิปใบเดิมพร้อมเลขออเดอร์เดิมอีกครั้ง ถ้ารอบแรกผ่านไปแล้ว ระบบจะคืนผลเดิมกลับมาและไม่นับโควตาซ้ำ
นับโควตาเฉพาะสลิปที่ผ่าน
สลิปปลอม สลิปซ้ำ ยอดไม่ตรง หรือโอนผิดบัญชีไม่ถูกนับ ร้านทุกร้านในบัญชีเดียวกันใช้โควตาของแพ็กเกจร่วมกัน
ตั้งบัญชีรับเงินจากรายการธนาคาร
เลือกธนาคาร แล้วกรอกชื่อ นามสกุล และเลขบัญชี ระบบตัดคำนำหน้าอย่าง นาย หรือ นางสาว ออกก่อนเทียบชื่อ
ไม่ส่งยอดเงินมาก็ได้
ระบบอ่านยอดจากรูปแล้วรับเฉพาะยอดที่ยืนยันกลับมาได้ ใช้กับการเติมเงินแบบไม่กำหนดยอด ถ้าออเดอร์มีราคาแน่นอน ควรส่ง amount มาด้วย
กำหนดอายุสลิปเองได้
แต่ละร้านตั้งได้ว่าจะรับสลิปที่โอนมาแล้วไม่เกินกี่นาที สูงสุด 60 นาที ค่าเริ่มต้นคือ 15 นาที
ไม่เก็บรูปสลิป
ระบบเก็บแค่เลขอ้างอิงกับรายละเอียดของรายการที่ล็อกแล้ว และลบทิ้งอัตโนมัติเมื่อครบระยะเวลาเก็บข้อมูลที่ตั้งไว้
Key เก็บเป็นค่า hash
ตัว API Key แสดงให้เห็นครั้งเดียวตอนสร้าง ถ้าทำหายต้องสร้างใหม่ ส่วนการเรียกถี่เกินโควตาจะได้ HTTP 429
04

ธนาคารที่รองรับ

ระบบรู้จักรหัสธนาคาร 32 รายการจาก QR บนสลิป ผลการตรวจยังขึ้นกับว่าช่องทางยืนยันของสถาบันการเงินพร้อมให้บริการในตอนนั้นหรือไม่

  • กสิกรไทย
  • ไทยพาณิชย์
  • กรุงไทย
  • กรุงเทพ
  • ทีทีบี
  • กรุงศรีอยุธยา
  • ออมสิน
  • ธ.ก.ส.
  • อาคารสงเคราะห์
  • ยูโอบี
  • ซีไอเอ็มบี ไทย
  • เกียรตินาคินภัทร
  • ทิสโก้
  • แลนด์ แอนด์ เฮ้าส์
  • ไทยเครดิต
  • ไอซีบีซี (ไทย)
  • อิสลามแห่งประเทศไทย
  • สแตนดาร์ดชาร์เตอร์ด
  • และอื่น ๆ
05

คำถามที่พบบ่อย

ตรวจหนึ่งสลิปใช้เวลานานแค่ไหน?

ขึ้นกับว่าช่องทางยืนยันของสถาบันการเงินตอบเร็วแค่ไหนในตอนนั้น ถ้ารอเกิน 60 วินาที ระบบจะตอบ UPSTREAM_UNAVAILABLE ฝั่งคุณควรตั้ง timeout ไว้ราว 90 วินาที

สลิปแบบไหนถูกนับโควตา?

นับเฉพาะสลิปที่ตรวจผ่านและล็อกแล้ว (VERIFIED) สลิปปลอม สลิปซ้ำ ยอดไม่ตรง หรือโอนผิดบัญชีไม่ถูกนับ ส่งสลิปใบเดิมซ้ำด้วยเลขออเดอร์เดิมก็ไม่นับซ้ำ

แพ็กเกจเดียวใช้กับหลายร้านได้ไหม?

ได้ แต่ละร้านมี API Key และบัญชีรับเงินของตัวเอง แต่ใช้โควตาสลิปของแพ็กเกจร่วมกัน จำนวนร้านสูงสุดขึ้นกับแพ็กเกจที่ซื้อ

ลูกค้าส่งสลิปใบเดียวกันมาสองออเดอร์จะเป็นอย่างไร?

ออเดอร์ที่ล็อกได้ก่อนจะได้ VERIFIED ส่วนออเดอร์ที่สองจะได้ DUPLICATE_REF

เรียก API จากหน้าเว็บหรือแอปมือถือโดยตรงได้ไหม?

ไม่ควร เพราะใครก็เปิดดู API Key จากโค้ดฝั่งผู้ใช้ได้ ให้หน้าเว็บส่งรูปไปที่ server ของคุณก่อน แล้วให้ server เป็นคนเรียก API

รองรับสลิปจากแอป MAKE by KBank ไหม?

รองรับ สลิปจาก MAKE ใช้รหัสธนาคารเดียวกับกสิกรไทย ถ้าสลิปไม่มีเลขบัญชีผู้รับเต็ม ระบบจะเทียบชื่อและธนาคารผู้รับแบบตรงตัวแทน

เริ่มจากคู่มือ API

มีตัวอย่างโค้ดสี่ภาษาและความหมายของรหัสผลลัพธ์ทุกตัว

อ่านคู่มือ API