SlipBolt Features

Everything you need
to verify slips end to end

12 core features that help your shop take payments with confidence — from slip verification and duplicate protection to reports and a developer API.

01 Verify Engine

Reads slips in every format
from every bank, in a split second

SlipBolt reads the QR code + payload per the EMVCo / Bank of Thailand standard, covering PromptPay from 12+ Thai banks, then verifies against the bank central switch with automatic failover to a backup route.

  • Full PromptPay coverage across 12+ banks
  • Strategy pattern: verification routes are swappable, with no change on the shop side
  • Circuit breaker guards against provider outages
  • P95 latency < 800ms
1
Customer sends slip
via LINE OA / API
+0ms
2
Read QR / payload
ZXing + EMVCo decode
+85ms
3
Check with the bank network
central switch · idempotent
+520ms
Reply ✓ genuine
฿1,290 · KBank · 0192B5TQX2H7
+740ms
02 Idempotency Lock

The same slip works only once
blocked on every slip, with no day limit

Every successfully verified slip has its transaction reference stored in MariaDB plus a 24-hour Redis cache. No matter how many times the same slip is resubmitted, it gets the same answer, uses no extra quota, and recycled slips are caught instantly.

  • Idempotency key = transRef + shopId
  • 24h Redis cache · MariaDB unique constraint
  • No day limit — the same slip cannot be reused on the same shop while the record exists
  • A slip already used to pay for SlipBolt cannot be reused on another shop of the same owner
Somsak J.
฿1,290
REF · 0192B5TQX2H7
Real
Somsak J.
฿1,290
REF · 0192B5TQX2H7
Dup
● duplicate detected · matched in 12ms (redis hit)
$ slipbolt-cli verify slip.png
→ status: DUPLICATE · saved 1 quota
03 LINE Flex Messages

Replies as beautiful cards
not boring text

Verification results come back as an easy-to-read LINE Flex Message with your shop's logo and a "View in Dashboard" button that opens LIFF — customers see the summary right in chat without switching apps.

  • 5 ready-made templates (light/dark/branded)
  • Add your own logo + brand colors
  • Button linking to the LIFF dashboard
  • Custom JSON templates on Business
Genuine slip, verified
Checked in 0.74 seconds
฿1,290.00
SenderSomsak J.
BankKBank
Time14:32:08
REF · 0192B5TQX2H7 · idempotent
04 Web Dashboard

See every slip in one place
analyze from every angle

A dashboard redesigned with PrimeVue v4 + Tailwind v4 — fast, beautiful, easy to use. See today's/this month's KPIs, 7-day charts, and the full slip table with fine-grained filters. Every table exports to CSV — opens straight in Excel or Google Sheets.

  • KPI cards: passed · fake · quota · total
  • 7/30/90-day charts + per-bank trends
  • DataTable virtual scroll · sort · filter
  • CSV export on every table (opens in Excel)
app.slip-bolt.com/dashboard
Passed
2,841
Fake
12
Quota
68%
Today
฿28K
05 PDPA-first Security

Store only what's necessary
deleted within 60 seconds

Customer slip images are deleted within 60 seconds after verification. Only the essential text data is kept for the audit log. Every action leaves a trail, and PDPA export/delete requests are honored at any time.

  • Image files deleted ≤ 60 seconds (cron + TTL)
  • TLS 1.3 on every endpoint
  • Audit log covers every event
  • Data export / account deletion in 1 click
TLS 1.3 + HSTS
All traffic encrypted
JWT + Refresh httpOnly
No localStorage tokens
Auto-purge slip images
Cron · ttl 60s
PDPA Compliance
DPO + DPA available
06 Developer API

Connect your back office
REST API + Webhook

For shops that already run a POS / CRM / order management system: send slips for verification via the REST API, or receive a webhook whenever a new slip arrives from LINE — every response is JSON per the OpenAPI 3.1 standard.

  • REST API · OpenAPI 3.1 spec · Starter plan and up
  • Webhooks push events to your CRM
  • SDKs: Node.js · PHP · Python (coming soon)
  • Rate limit: 120 req/min per API key · plus a 240 req/min cap on /verify
verify.ts
// verify a slip image via SlipBolt API
const url = 'https://api.slip-bolt.com/api/v1/verify';

const res = await fetch(url, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_••••',
    'Content-Type': 'application/octet-stream',
  },
  body: image,
});

const { data } = await res.json();
// data.verified → true | false
Demo
Post the slip as raw bytes, get the verdict back in 480 ms.
07 Multi-channel

Come in from anywhere
answered in one place

SlipBolt accepts slips from multiple channels — several LINE OAs, the REST API, email forwarding, or webhooks from other systems. Every slip lands in the same dashboard.

  • LINE OAs by plan (Pro up to 10 · Business unlimited)
  • REST API + Webhook
  • Email parser (forward slips from your banking app)
  • All channels unified in 1 dashboard
REST API
POST /v1/verify from your backend
Webhook
Receive events from your CRM / POS / order system
Email Forward
Forward slips from your banking app to an inbox
Ready in 4 minutes

Ready to verify slips
today

7-day free trial — verify slips over LINE OA + Dashboard, no card required (REST API + Webhooks start on Starter).

Start free trial