Slip Verification API
บริการตรวจสอบสลิปโอนเงินธนาคาร ดึงยอดเงิน และเช็คข้อมูลผู้รับเงินแบบอัตโนมัติ
POST
/slipVerify/v2
⭐ แนะนำที่สุดตรวจสอบสลิปแบบอัตโนมัติเต็มรูปแบบ เพียงแนบรูปภาพสลิป ระบบจะอ่าน QR Code และ OCR ยอดเงินให้อัตโนมัติ พร้อมทั้งสามารถระบุข้อมูลผู้รับเงินเพื่อตรวจสอบความถูกต้องได้ในคำสั่งเดียว
พารามิเตอร์ (Form-Data)
| Field | Type | Description |
|---|---|---|
slip จำเป็น |
File | ไฟล์รูปภาพสลิปโอนเงิน (JPEG, PNG, WEBP) |
expected_receiver_name ไม่บังคับ |
String | ชื่อผู้รับเงินที่คาดหวัง เช่น "สมชาย ใจดี" หรือ "สมชาย" |
expected_bank_code ไม่บังคับ |
String | รหัสธนาคาร 3 หลัก ("004", "014") หรือตัวย่อ ("KBANK", "SCB") |
expected_account_no ไม่บังคับ |
String | เลขบัญชีผู้รับเงินแบบเต็ม เช่น "067-8-999346" หรือเลขท้าย 4 ตัว เช่น "346" |
จำเป็นต้องมีสิทธิ์
v2 ใน API Key
curl -X POST https://api.nearbyshop.xyz/slipVerify/v2 \
-H 'X-API-Key: nb_live_your_api_key_here' \
-F 'slip=@slip.jpg' \
-F 'expected_receiver_name=สมชาย ใจดี' \
-F 'expected_bank_code=KBANK' \
-F 'expected_account_no=346'
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('slip', fs.createReadStream('slip.jpg'));
form.append('expected_receiver_name', 'สมชาย ใจดี');
form.append('expected_bank_code', 'KBANK');
form.append('expected_account_no', '346');
const res = await axios.post('https://api.nearbyshop.xyz/slipVerify/v2', form, {
headers: {
'X-API-Key': 'nb_live_your_api_key_here',
...form.getHeaders()
}
});
console.log(res.data);
import requests
url = 'https://api.nearbyshop.xyz/slipVerify/v2'
headers = {'X-API-Key': 'nb_live_your_api_key_here'}
data = {
'expected_receiver_name': 'สมชาย ใจดี',
'expected_bank_code': 'KBANK',
'expected_account_no': '346'
}
files = {'slip': open('slip.jpg', 'rb')}
res = requests.post(url, headers=headers, data=data, files=files)
print(res.json())
<?php
$ch = curl_init('https://api.nearbyshop.xyz/slipVerify/v2');
$postData = [
'slip' => new CURLFile('slip.jpg'),
'expected_receiver_name' => 'สมชาย ใจดี',
'expected_bank_code' => 'KBANK',
'expected_account_no' => '346'
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: nb_live_your_api_key_here']);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
ตัวอย่างผลลัพธ์ (Response 200 OK)
{
"status": "success",
"data": {
"trans_id": "202609031200183310899",
"type": "BANK_TRANSFER",
"amount": 100,
"date_time": "2026-09-03T12:00:00.000Z",
"sender": {
"name": "นาย สมศักดิ์ สุขใจ",
"bank": "ธนาคารไทยพาณิชย์ จำกัด (มหาชน)",
"bank_code": "014",
"bank_abbr": "SCB",
"account_no": "xxx-x-x1234-x"
},
"receiver": {
"name": "นาย สมชาย ใจดี",
"bank": "ธนาคารกสิกรไทย จำกัด (มหาชน)",
"bank_code": "004",
"bank_abbr": "KBANK",
"details": {
"account_no": "067-8-xxx346"
}
}
},
"extracted_amount": 100
}
POST
/slipVerify/v1
ตรวจสอบสลิปโดยการอัปโหลดไฟล์ภาพ และระบุจำนวนเงินที่ต้องการตรวจสอบด้วยตัวเอง
พารามิเตอร์ (Form-Data)
| Field | Type | Description |
|---|---|---|
qr_img จำเป็น |
File | ไฟล์รูปภาพสลิปโอนเงิน |
amount จำเป็น |
String | จำนวนเงินที่ต้องการตรวจสอบ เช่น "100.00" |
expected_receiver_name ไม่บังคับ |
String | ชื่อผู้รับเงินที่คาดหวัง เช่น "สมชาย ใจดี" |
expected_bank_code ไม่บังคับ |
String | รหัสธนาคาร เช่น "004" หรือ "KBANK" |
expected_account_no ไม่บังคับ |
String | เลขบัญชีผู้รับเงินแบบเต็ม หรือเลขท้าย 4 ตัว |
จำเป็นต้องมีสิทธิ์
v1 ใน API Key
curl -X POST https://api.nearbyshop.xyz/slipVerify/v1 \
-H 'X-API-Key: nb_live_your_api_key_here' \
-F 'qr_img=@slip.jpg' \
-F 'amount=100.00' \
-F 'expected_bank_code=KBANK'
POST
/slipVerify/noSlip
⚡ เร็วที่สุดตรวจสอบสลิปผ่าน QR Payload และจำนวนเงิน โดยไม่ต้องอัปโหลดไฟล์รูปภาพ เหมาะสำหรับระบบที่ถอดรหัส QR Code มาจากฝั่ง Client แล้ว
พารามิเตอร์ (Form-Data หรือ JSON)
| Field | Type | Description |
|---|---|---|
qr_payload จำเป็น |
String | ข้อความ Raw Payload จาก QR Code (เช่น "00460006000001...") |
amount จำเป็น |
String | จำนวนเงินที่ต้องการตรวจสอบ |
expected_receiver_name ไม่บังคับ |
String | ชื่อผู้รับเงินที่คาดหวัง |
expected_bank_code ไม่บังคับ |
String | รหัสธนาคาร (เช่น "004" หรือ "KBANK") |
expected_account_no ไม่บังคับ |
String | เลขที่บัญชีผู้รับเงิน |
จำเป็นต้องมีสิทธิ์
noSlip ใน API Key
curl -X POST https://api.nearbyshop.xyz/slipVerify/noSlip \
-H 'X-API-Key: nb_live_your_api_key_here' \
-F 'qr_payload=0046000600000101030040225202609031200000462385o94634ugqprde5102TH910404C7' \
-F 'amount=100.00' \
-F 'expected_account_no=346'
🛡️ ระบบตรวจสอบข้อมูลผู้รับเงิน (Receiver Validation)
ระบบตรวจผู้รับเงินถูกออกแบบมาเพื่อป้องกันกรณีลูกค้าส่งสลิปโอนผิดบัญชี หรือส่งสลิปโอนเงินให้ผู้อื่นมาแอบอ้าง โดยระบบรองรับความยืดหยุ่นสูง ดังนี้:
1. ชื่อ-นามสกุล ผู้รับเงิน
- ส่งชื่อ-นามสกุลเต็มได้ เช่น
"สมชาย ใจดี" - มี/ไม่มีคำนำหน้าได้ (นาย/นาง/นางสาว/MR)
- สลิปธนาคารที่ย่อนามสกุล (เช่น
"สมชาย จ.") ระบบจะจับคู่และผ่านให้อัตโนมัติ
2. รหัสธนาคาร (Bank Code)
- ส่ง Bank Code 3 หลักได้ เช่น
"004","014","002" - ส่งตัวย่อได้ เช่น
"KBANK","SCB","BBL","KTB" - ไม่จำกัดตัวพิมพ์เล็ก/ใหญ่ (
"kbank"หรือ"KBANK"ได้หมด)
3. เลขที่บัญชี (Account No)
- ส่งเลขบัญชีเต็มได้ทั้งแบบมีขีด (
"067-8-999346") หรือไม่มีขีด - ส่งเฉพาะเลขท้าย 4 ตัวได้ เช่น
"0346"หรือ"346" - ระบบจะเทียบทั้งส่วนหน้าและหลังกับเลข unmasked ในสลิปอย่างแม่นยำ
ตัวอย่างการตอบกลับเมื่อข้อมูลผู้รับเงินไม่ตรง (HTTP 400)
{
"status": "error",
"code": "RECEIVER_NAME_MISMATCH",
"message": "ชื่อผู้รับเงินในสลิป (นาย สมชาย ใจดี) ไม่ตรงกับที่ระบุ (นาย วิทยา ทรัพย์สมบูรณ์)",
"actual_receiver": {
"name": "นาย สมชาย ใจดี",
"bank_abbr": "KBANK",
"bank_code": "004",
"details": {
"account_no": "067-8-xxx346"
}
}
}
⚠️ รหัสข้อผิดพลาดของสลิป (Slip Error Codes)
รหัสข้อผิดพลาดเฉพาะที่อาจเกิดขึ้นระหว่างการสแกน OCR, การอ่าน QR Code หรือการตรวจสอบสลิปกับระบบธนาคาร:
| HTTP Status | Error Code | สาเหตุ / ความหมาย |
|---|---|---|
| 400 Bad Request | RECEIVER_NAME_MISMATCH |
ชื่อผู้รับเงินในสลิปไม่ตรงกับที่ระบุใน expected_receiver_name |
| 400 Bad Request | RECEIVER_BANK_MISMATCH |
ธนาคารผู้รับเงินในสลิปไม่ตรงกับที่ระบุใน expected_bank_code |
| 400 Bad Request | RECEIVER_ACCOUNT_MISMATCH |
เลขที่บัญชีผู้รับเงินในสลิปไม่ตรงกับที่ระบุใน expected_account_no |
| 400 Bad Request | AMOUNT_MISMATCH |
ยอดเงินที่ส่งไปตรวจสอบไม่ตรงกับยอดเงินจริงที่ทำรายการในสลิปธนาคาร |
| 400 Bad Request | QR_NOT_FOUND |
ไม่พบ QR Code ในรูปภาพ หรือภาพสลิปเบลอ/แตกเกินกว่าจะอ่านได้ |
| 400 Bad Request | SLIP_DATA_INCOMPLETE |
ข้อมูลสลิปไม่สมบูรณ์ หรือสลิปปลอมที่ไม่มี Transaction Reference จากธนาคาร |
| 400 Bad Request | DUPLICATE_SLIP |
สลิปนี้เคยถูกส่งมาตรวจสอบและยืนยันในระบบไปแล้ว (ป้องกันการใช้สลิปซ้ำ) |