Two counters, no duplicate receipt numbers
Published , updated
Most billing systems number receipts by asking the server for the next number. That works perfectly until the server is unreachable, which is exactly when a busy shop needs the till most.
The usual workaround is for each till to carry on from the last number it saw. With one counter that is fine. With two it is a collision waiting to happen: both tills saw number 412 before the line dropped, both carry on to 413, and now two different customers hold a receipt numbered 413.
Why that is worse than it sounds
A duplicate receipt number is not a cosmetic problem. It is the identifier you use to find a sale later. When two sales share one:
- Your day’s report has to guess which 413 it is counting.
- A customer returning with a receipt cannot be matched to one sale.
- The upload queue cannot tell a retry from a genuinely different sale, so the protection against double charging stops working.
That last one is the real danger. The whole offline design rests on one record per receipt number, and duplicates pull the floor out from under it.
The fix is in the numbering, not the syncing
Each terminal issues numbers from its own series, with its own identifier built in. Counter one and counter two are not drawing from a shared pool, so there is nothing to collide over. Neither needs to know the other exists.
This matters because it works without coordination. Any scheme where the tills have to agree with each other needs them to be able to talk, and during an outage they cannot. A number that is unique by construction needs no conversation.
What you see on the floor
Receipts run in order within each counter rather than across the shop. Counter one’s numbers are a clean sequence; counter two’s are a clean sequence. There is no single shop wide run of numbers.
That is the right trade. When you reconcile a till at the end of a shift you are reconciling it against the cash in its own drawer, so a per counter sequence is the one you actually want.
The limits
- This is about receipt numbers, not stock. Two tills selling the last item at once will both sell it. There is no inventory tracking in the system, so nothing is counting down.
- It does not merge the counters into one report line. The sales report covers the shop, but the receipt numbering stays per terminal.
Questions
Can two tills run offline at the same time?
Two tills can sell offline at the same time without coordinating. Each terminal issues receipt numbers from its own series, so neither needs to know what the other is doing while both are cut off from the server.
What stops two counters issuing the same receipt number?
Each terminal has its own identifier built into the numbers it issues, so two counters draw from separate series rather than the same one. Two tills can run an entire outage side by side and never produce the same number.
Do receipt numbers stay in order across the shop?
Receipt numbers run in order within each terminal rather than across the whole shop. A day's sales sort cleanly per counter, which is what matters when you are reconciling a till against the cash in its drawer.
Ask about your own shop
Every shop is set up by hand, so the first step is a conversation. If this will not fit what you do, we will tell you.