POS offline mode
How the POS works when internet is down — local sales, sync queue and DIAN resubmission.
Updated: April 5, 2026
contable.io’s POS is a PWA (Progressive Web App) designed to keep working even when internet is lost. Sales are stored locally in the browser and sync automatically when the network returns.
This is critical for businesses in areas with unstable connectivity or during ISP outages: you never stop selling.
What works offline
When the POS detects it’s offline, it shows an indicator at the top and lets you:
- ✅ Search products from the catalog (cached locally).
- ✅ Add to cart and edit quantities.
- ✅ Assign customers known to the device.
- ✅ Charge in any payment method.
- ✅ Print the receipt on the thermal printer.
- ✅ Close the sale and serve the next customer.
What doesn’t work offline
- ❌ Creating new customers (queued until back online).
- ❌ Validating stock against other warehouses or branches.
- ❌ Applying price lists updated in the last few hours.
- ❌ Sending the equivalent document to DIAN in real time.
How sales sync
Every offline sale is stored in IndexedDB, the browser’s local database. The queue is persistent: even if you close the POS or restart the computer, sales remain.
When the POS regains connection:
- It auto-detects the network is back.
- Sends pending sales to the backend, one by one and in order.
- Each sale gets its equivalent document number and is reported to DIAN.
- The indicator turns green and shows how many sales synced.
While the queue drains, you can keep selling. New sales are added to the end.
Numbering during offline mode
Offline sales receive a temporary local number (e.g. LOCAL-20260406-001) printed on the customer receipt. When they sync, the system assigns the definitive number from the DIAN resolution and reissues the equivalent document.
If the customer needs the receipt with the final number, they can look it up days later in Sales → POS receipts by date or amount.
Warnings and limits
- Don’t close shift offline. Closing needs to validate against the server the declared cash vs expected. Wait for connection.
- Offline catalog has the latest synced version. New products added during the outage won’t appear until you’re back online.
- Offline stock is estimated. If two registers sell the same product offline and exceed real stock, the system will allow it and go negative on sync. Review the inventory report after recovery.
- Price changes are not reflected. If you updated prices during the outage, offline sales use the old prices.
Best practices
- Keep the POS open in the browser all day, even between customers. This ensures the PWA stays current and the sync queue runs in background.
- Set up multiple backup connections: main WiFi + phone hotspot. The PWA switches networks without intervention.
- Check the queue at end of day from the register menu. If there are unsynced sales, don’t close shift until you have connection.