Skip to main content
BenchKey

The internet goes down. The register doesn’t.

Router rebooting, ISP outage, dead spot in the mall, with offline mode, cash, check, and other manual tenders keep recording at the counter and sync back automatically when the connection returns. Exactly once, by construction.

app.benchkey.com RECORDED

Recorded from the real app with the connection down: Saul's $255.90 invoice paid in cash, recorded locally with an offline receipt, queued to sync the moment the network returns.

Keep ringing up the line

When the connection drops, Checkout tells you plainly: cash, check, and manual tenders will be recorded locally and synced later. You take the money, the sale is stored on the register device with a running "waiting to sync" count, and the customer walks out with their device. No paper IOUs, no memory, no lost sales at the worst moment of the day.

Exactly-once sync, not "probably once"

Every offline sale gets a unique key the moment it’s recorded, and the server honors that key on replay: if the same sale ever arrives twice, a crash mid-sync, two tabs racing, a flaky reconnect, the server returns the original result instead of posting a second payment. Our end-to-end test literally runs the replay twice and asserts exactly one payment row. Double-charging is designed out, not hoped away.

Honest about being offline

Browsers lie about connectivity, captive portals and sleeping Wi-Fi look "online" while nothing gets through. BenchKey doesn’t trust the browser flag alone: it probes the real server before deciding, so the offline banner appears when you’re actually offline and clears when you’re actually back. Card payments are blocked while offline with a clear message, because a card can’t be authorized without a connection, and pretending otherwise is how shops eat chargebacks.

Syncs itself, survives a refresh

Queued sales replay on reconnect, when the tab regains focus, and on a background timer, cross-tab safe, so two registers never double-send. The checkout screen itself survives a hard refresh mid-outage thanks to an app-shell cache (your data is never cached, only the screen), and if a register crashes before syncing, the queue persists on the device and resumes when it reopens.

FAQ

Offline POS mode questions

What can I sell while the internet is down?

Anything paid by cash, check, or another manual tender. Card-present, card-on-file, and financing payments need a live connection to authorize, so BenchKey blocks them offline with a clear message instead of faking an approval.

Can a queued sale double-charge when it syncs back?

No. Each offline sale carries a unique idempotency key from the moment it’s recorded, and the server keeps a claim for it: a replay that already succeeded returns the original result instead of posting again. The end-to-end test runs the replay twice on purpose and asserts exactly one payment row lands.

What if the register crashes before it syncs?

The queue lives in the browser’s local database, not in memory. Reopen the register and replay resumes, on reconnect, on focus, or on the background timer. Sales interrupted mid-sync are reclaimed and retried safely rather than lost.

Does the whole app work offline?

No, and we won’t pretend it does. Offline mode is about the moment that actually hurts: taking money at the counter. Checkout keeps recording manual-tender sales and survives a refresh; the rest of the app needs a connection.

How do I turn it on?

Offline mode is in beta and enabled per shop, ask support and it’s switched on for your account. It works on every plan.

Works with

Put your shop on BenchKey

Set up in an afternoon. Import your customers and tickets, build your check-in flow, and send your first live status link the same day.

Beta launches in ~3 weeks · Beta invites go out in small groups

Founders pricing: the first 50 shops lock Pro at $59/mo for life · see pricing