FEATURES
Scan to Pay
Point a phone at any Tab payment QR and the checkout opens. Used in person at a POS, on-screen for events, or to share a @handle quickly without typing.
What it reads
- A full Tab pay link like
https://thetab.bar/pay/ord_…→ opens the hosted checkout for that order. - A handle link like
https://thetab.bar/pay/handle/alice→ opens the open-amount checkout for that handle. - A bare
@alice→ also opens the handle checkout. - Anything else is shown but not auto-navigated, so a wrong QR can't hijack you.
How it's built
The scanner at /dashboard/scan uses the browser- native BarcodeDetector API where available (Chrome / Edge on desktop and Android, Safari on iOS 17+). On unsupported browsers we fall back to a paste-the-URL textarea so the workflow still works.
We never upload the video stream anywhere — it's read by getUserMedia, decoded in the browser, and the only thing that leaves the device is the resulting navigation.
QR generation
Tab's POS, order pages, and handle pages all embed a QR rendered via api.qrserver.com. The QR payload is always a plain URL — no proprietary format — so any QR scanner on earth can read it, not just ours.