เริ่มต้นใช้งาน
ตรวจสลิปแรกของคุณภายใน 5 นาที — ตั้งร้าน, ผูก LINE, เช็คโควตา, ยิง API (Starter ขึ้นไป)
ขั้นตอนทั้งหมดที่ต้องทำเพื่อให้ SlipBolt ตรวจสลิปใบแรกของคุณ
1. สร้างบัญชี + ร้านค้า
ไปที่ app.slip-bolt.com/auth/signup แล้วยืนยันอีเมล จากนั้นตั้งชื่อร้านใน onboarding — ร้านแรกเริ่มทดลอง 7 วันเสมอ (สิทธิ์แพ็ก Trial เท่านั้น ไม่ใช่ Pro/Business ฟรี)
ช่วงทดลองได้:
- 50 สลิป · 1 ที่นั่ง (เจ้าของ) · 1 กลุ่ม LINE · 1 LINE OA
- ตรวจสลิปผ่าน LINE OA + Dashboard
- ไม่มี REST API / Webhook — ออก API key ได้เมื่ออัปเกรดเป็น Starter ขึ้นไป
โควตาเหลือดูได้ทันทีที่ Dashboard (กระเบื้องโควตา) โดยไม่ต้องมี API key
2. เพิ่มบัญชีรับเงิน
Settings → Shop → บัญชีรับเงิน — ร้านที่ยังไม่มีบัญชีที่ลูกค้าโอนเข้า
ระบบจะปัดสลิปทุกใบ (NO_PAYEE_CONFIGURED) ก่อนยิงไปตรวจ
3. ผูก LINE OA
ที่ Settings → LINE Channels วาง Channel ID + Secret + Access Token จาก LINE OA Manager แล้วเชิญบอทเข้ากลุ่ม ลองส่งสลิปทดสอบ 1 ใบ
4. สร้าง API key (แพ็ก Starter ขึ้นไป)
ที่ Settings → API Keys กดสร้าง key ใหม่ — ระบบจะแสดง key เต็ม ครั้งเดียวเท่านั้น
ช่วง Trial ออกคีย์ไม่ได้ (403 PLAN_API_ACCESS_REQUIRED)
sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
Copy ทันที — เราเก็บแค่ argon2 hash บน server (ลืมแล้วต้องสร้างใหม่)
5. ยิงคำสั่งแรก
เก็บคีย์ไว้ใน environment variable ก่อน (อย่าใส่ในโค้ด) — ช่วงพัฒนาใช้คีย์ sk_test_ ได้เลย
ไม่กินโควตาของร้าน
export SLIPBOLT_API_KEY="sk_test_..."
จากนั้นส่ง รูปสลิปเป็น raw bytes ไปที่ POST /api/v1/verify
— เลือกภาษาที่คุณใช้ได้เลย ระบบจะจำไว้ให้ทุกหน้า
curl -X POST https://api.slip-bolt.com/api/v1/verify \
-H "Authorization: Bearer $SLIPBOLT_API_KEY" \
-H "Content-Type: application/octet-stream" \
--data-binary "@slip.jpg"
ตอบกลับ (ย่อ — ฟิลด์ครบอยู่ที่ API Reference):
{
"success": true,
"data": {
"status": "SUCCESS",
"verified": true,
"duplicate": false,
"amount": 50.0,
"transRef": "20260525123045123456",
"transDate": "2026-05-25T05:30:45.000Z",
"senderName": "นายสมชาย ใจดี",
"bankName": "ธนาคารกสิกรไทย",
"receiverName": "ร้านกาแฟพี่ตุ๊ก",
"environment": "test",
"quota": { "used": 1, "limit": 500, "remaining": 499 }
},
"meta": { "requestId": "3b1f0c9e-6a2d-4f5e-8b7c-1d2e3f4a5b6c", "timestamp": "2026-05-25T05:30:46.412Z" }
}
ปล่อยของได้เมื่อไร — 4 ข้อที่ต้องเช็ค
data.verified === true— สลิปจริง โอนเข้าบัญชีของร้านdata.duplicate === false— ไม่ใช่สลิปที่เคยใช้ไปแล้ว (ลูกค้าส่งสลิปเก่ามาซ้ำ)data.amountตรงกับยอดออเดอร์ของคุณ — API ไม่รู้ว่าออเดอร์นี้ต้องจ่ายเท่าไร ฝั่งคุณต้องเทียบเอง (ลูกค้าโอน 1 บาทแล้วส่งสลิปมา สลิปก็ยัง "จริง")data.transRefยังไม่เคยผูกกับออเดอร์อื่นในระบบคุณ — เก็บtransRefลงคอลัมน์ที่ติด UNIQUE (ส่งรูปเดิมซ้ำใน 24 ชม. ได้ผลเดิมกลับมาโดยduplicateยังเป็นfalse⇒ ข้อ 1–3 กันสลิปใบเดียวปิดสองออเดอร์ไม่ได้)
โค้ดครบวงจรที่เช็คทั้ง 4 ข้อ พร้อม retry และหน้าอัปโหลด อยู่ที่ ตัวอย่างพร้อมใช้
ไม่รับสลิปเก่า? สลิปจริงที่โอนไว้เกิน 24 ชม. ยังได้ verified: true แต่มี errorCode: "STALE_SLIP" กำกับ — ถ้าธุรกิจคุณต้องการปฏิเสธ ให้เช็คฟิลด์นี้เพิ่ม (ดู Stale slip)
https://api.slip-bolt.com/api/v1/openapi.json — เปิดใน Postman / Insomnia / Bruno เพื่อลองยิงทุก endpoint ได้ทันที หรือ generate client ภาษาอื่น (Go · Java · C# …) ด้วย openapi-generator
· path เต็มมี /api/v1/ นำหน้า — https://api.slip-bolt.com/openapi.json ที่รากโดเมน redirect มาที่เดียวกัน
Postman collection พร้อมใช้: https://api.slip-bolt.com/api/v1/postman.json — Import แล้วใส่ตัวแปร apiKey ก็กดส่งได้เลย · POST /verify แยกให้ครบ 5 แบบ (ไฟล์ดิบ · multipart · base64 · url · qr)
โค้ดก๊อปไปวางของ POST /verify ใน Node.js · Python · PHP · Go · Java · C# อยู่ที่ ตัวอย่างพร้อมใช้
ผลอยู่ใน data เสมอ — ทุก response ที่สำเร็จห่อด้วย { success, data, meta }
อ่าน response.verified ตรง ๆ จะได้ undefined (ข้อผิดพลาดที่เจอบ่อยที่สุดตอนต่อครั้งแรก)
การเรียก API ใช้ โควตาเดียวกับสลิป LINE ของร้าน · ยอดคงเหลือดูได้จาก quota ในผลลัพธ์หรือ header X-Slipbolt-Quota-Remaining · โควตาหมด → 402 (ดู API Reference) · ใช้ key sk_test_ ทดสอบได้โดยไม่กินโควตาของร้าน (เพดานแยก 200 ครั้ง/เดือน)
6. เช็คโควตาคงเหลือ (ไม่หักสลิป)
| ช่องทาง | ใช้เมื่อ | ได้ข้อมูลอะไร |
|---|---|---|
| Dashboard → กระเบื้องโควตา | ทุกแพ็ก รวม Trial | used / limit / เหลือกี่วันถึงรีเซ็ต |
GET /api/v1/quota | มี API key + scope read | โควตาร้านอย่างเดียว |
GET /api/v1/me | มี API key + scope read | ร้าน · คีย์ · แพ็ก · โควตา live+test · บัญชีรับเงิน (4 ตัวท้าย) |
curl https://api.slip-bolt.com/api/v1/me \
-H "Authorization: Bearer sk_live_..."
รายละเอียดฟิลด์อยู่ที่ API Reference — GET /me
7. รับ Webhook (optional)
หาก subscribe ที่ /settings/webhooks ระบบจะ POST event ทุกครั้งที่มีผลตรวจสลิปใหม่:
{
"event": "slip.verified",
"id": "evt_9f3c1a7b2d4e6f8a0b1c2d3e",
"created": 1781107927,
"data": {
"transactionId": "8f3c…",
"transRef": "20260525123045123456",
"amount": 50.0,
"status": "SUCCESS",
"sender": "นายสมชาย ใจดี",
"receiver": "ร้านกาแฟพี่ตุ๊ก",
"verifiedAt": "2026-05-25T05:30:46.412Z",
"latencyMs": 480
}
}
Verify signature ทุกครั้ง — header X-Slipbolt-Signature มาในรูป t=<unix>,v1=<hex>
โดย v1 = HMAC-SHA256(secret, ts + "." + raw_body) (ts = ตัวเลขหลัง t=) · สตริงที่เซ็นไม่มี t= นำหน้า
และต้องใช้ raw body — โค้ดตัวอย่างพร้อมใช้อยู่ที่ Webhooks
ขั้นถัดไป
โค้ดก๊อปวางได้เลย — ไคลเอนต์ที่ retry เอง · รับสลิปแล้วปิดออเดอร์ · ทดสอบ webhook ในเครื่อง
→endpoints + error codes ทั้งหมด
→Bearer vs API key
→retry policy + signature verify
→encryption + สิทธิ์เจ้าของข้อมูล
→GET /me + GET /quota — ไม่หักสลิป
