Quick start, first shift
- 01Enter the store's license key on the activation screen (once per till).
- 02Log in with your cashier username and password.
- 03On the Checkout screen, scan items or search and add them.
- 04Press Charge to take payment.
- 05Hand over the receipt (or pending ticket) and start the next sale.
Getting started
Activating a till, signing in, and what happens if the network drops.
Activating this till
The first time the app opens on a new machine, it asks for a license key
(looks like BCST-XXXXXX-XXXX). This key is issued once when the store is set
up and ties this till to that store's inventory, cashiers, and sales history. Enter it and
press Activate — the app checks the key against the server before
saving anything, so a mistyped key is caught immediately rather than causing problems later.
Activation only needs to happen once per till. After that, the app opens straight to the login screen.
Signing in
Each cashier signs in with their own username and password on the login screen, then presses Start shift. The signed-in cashier's name is shown in the top bar and recorded against every sale, refund, and stock change they make.
To hand the till to another cashier, press Switch in the top-right corner. This signs the current cashier out and returns to the login screen — it does not close the app or affect any sale in progress on screen.
Cashier sign-in is not remembered between app restarts, by design — closing and reopening the app always asks for login again.
If the network drops
The till talks to a checkout server over the local network. If that connection is lost, a banner appears at the top of the screen. Any action started while offline (adding an item, taking payment) will fail with an error rather than being silently lost — wait for the banner to clear, then retry. The app checks the connection automatically in the background, so the banner clears itself as soon as the server is reachable again.
The till screen
Where every sale starts: scan or search, build the cart, and adjust it before charging.
The Checkout screen opens with an empty cart, ready to scan. A cart stays open until it's charged or cancelled — leaving this screen and coming back keeps whatever was already scanned.
Adding items
- Scan a barcode with the handheld scanner at any time while this screen is open — the item is added automatically.
- Search by typing a name or SKU in the search box, then press Add next to the result.
Scanning an item already in the cart just increases its quantity by one. A result showing a low stock (n) badge means it's at or below its reorder point — it can still be sold, but it's worth flagging for a restock.
Adjusting the cart
Each line in the cart has − / + steppers to change the quantity, and a Void button to remove the line entirely. Voiding or reducing a quantity returns that stock immediately — it isn't held or reserved.
Cancelling a whole sale
Cancel sale clears the entire cart and returns every scanned item to stock. It asks for confirmation first, since it can't be undone — use it for a customer who walks away, not for removing a single wrong item (use Void for that).
If a barcode doesn't scan to anything, or an item is out of stock, an error appears right above the search box rather than a full-screen alert — fix it and keep scanning without losing your place.
Completing a sale
The till supports two ways to take payment. Which one runs depends on a setting the store manager chooses once — cashiers just press Charge either way.
Turn single-stage checkout on or off from Settings → Checkout. It's a per-till setting, so it can be on for a fast till that only ever takes exact cash or card, and off for one that hands tickets to a separate payment desk.
Single-stage checkout does not ask how much cash was handed over, and does not calculate change — it always charges the exact total shown. Only enable it where the customer pays that exact amount (card, or exact cash), not where change needs to be given at the till.
| Question | Two-stage (default) | Single-stage |
|---|---|---|
| What the button says | Charge | Complete sale |
| What prints | A pending ticket (not yet paid) | A paid receipt |
| Cash / change entry | Yes, on the Pending screen | None — exact total only |
| Shows up on the Pending screen | Yes, until paid | Never |
| Best for | A separate payment counter or pay-later tickets | A quick, single-counter till |
Pending payments
Where a two-stage sale is finished off: scan the ticket, take the cash, print the receipt.
The Pending screen lists every sale that's been charged but not yet paid. Open one either by scanning its ticket barcode, or by tapping it in the Awaiting payment list.
Taking payment
- Use the quick-cash buttons or the keypad to enter what the customer handed over.
- Exact fills in the exact total in one press, for card payments.
- Change due updates live as you type.
- Press Complete payment to finish — this prints the paid receipt automatically.
After paying, Print receipt reprints the same receipt, and Look up another clears the screen for the next ticket.
A sale only appears here between being charged and being paid — with single-stage checkout turned on, sales never pass through this screen at all.
Receipts & refunds
Look up any past sale by date, reprint it, or refund individual items from it.
Finding a sale
Set a From / To date and press Search — leave both blank to see recent transactions. Select one from the results to open its full receipt on the right.
Refunding an item
On an open receipt, press Refund next to the line being returned. Set the quantity, the refund amount, and optionally a reason, then Confirm refund. Refunded stock is returned to inventory automatically. Each line can be refunded independently — a refund doesn't cancel or reprint the rest of the receipt.
Reprint reproduces the original paid receipt exactly, useful for a customer who's lost theirs.
Inventory
The catalogue every scan and search on the till screen draws from.
Finding and sorting items
Search by name, SKU, or barcode, and check Low stock only to see just what's at or below its reorder point. Click any column heading to sort by it — click again to reverse the order.
Adding or editing an item
+ Add item opens a blank form: SKU, name, price, an optional barcode, starting stock, and a reorder level (the low-stock threshold). Edit on an existing row opens the same form pre-filled — stock itself isn't editable here, since it's meant to move only through sales or a logged adjustment.
Adjusting stock
Adjust stock records a stock change outside of a sale — a restock
delivery, damaged goods, or a recount. Enter the change as a positive number to add stock or
a negative number for a loss, pick a reason (restock, damage,
recount, or other with details), and save. Every adjustment is
kept as a record of who made it and why.
Removing an item
Remove deactivates an item rather than deleting its history — it stops showing up in search or scanning, but past sales that included it are unaffected.
Settings
Store details, the receipt printer, currency, and how this till takes payment. Changes apply immediately — no restart needed.
Store
The store name here is what prints at the top of every receipt and ticket, shared across every till activated with the same store.
License
Shows this till's own license key for reference. Change license key deactivates the till and sends it back to the activation screen — only use it to move this till to a different store.
This is a reset: the till will need a valid license key entered again before it can be used.
Printer
Set the receipt printer's serial port (pick one from Detected ports
if it shows up, or type it in — e.g. /dev/ttyUSB0 on Linux, COM3
on Windows), its baud rate, and characters per line for the paper width in use.
Save & send test print saves the settings and immediately prints
a test ticket so misconfiguration is caught right away.
No printer configured isn't an error — the app quietly skips printing rather than blocking the sale, so a till can be used without one.
Checkout
The Single-stage checkout toggle switches between the two payment flows described in Completing a sale. It affects every sale rung up on this till from the moment it's saved.
Currency
Choose the shop's currency from the list — it controls how amounts are formatted on screen and on printed tickets everywhere in the app.
Barcodes & troubleshooting
What the different printed barcodes mean, and what to do about common messages.
Three kinds of barcode
| Barcode | Printed on | Scanned where |
|---|---|---|
| Product barcode | The item's own packaging | Checkout screen, to add it to a cart |
PND<number> | A pending ticket (two-stage checkout) | Pending screen, to pull up that sale for payment |
| Transaction number | A paid receipt | Reference only — kept as a record, not currently scanned back into the app |
Common messages
- "No item found for barcode…" — nothing in inventory matches that code. Check it's the right item, or add it in Inventory.
- "Insufficient stock" — the item's recorded stock can't cover the quantity being added. Adjust stock first if a delivery just came in.
- "Checkout not open" — a leftover sale from before was stuck between steps; the till screen replaces it with a fresh cart on its own and shows what happened to the old one.
- Offline banner won't clear — the checkout server isn't reachable over the network. Confirm it's running and the till's network connection is up; the banner clears itself once it reconnects.
Quick reference
Status colours used across the app, and where each screen lives.
Sale status
Screens
| Screen | Use it to |
|---|---|
| Checkout | Scan or search items and build the current sale |
| Pending | Take cash on a two-stage sale that's already been charged |
| Receipts | Look up, reprint, or refund a past sale |
| Inventory | Manage items, prices, and stock levels |
| Settings | Store name, license, printer, currency, checkout mode |
Every screen is also reachable from the app's top menu bar under Till, in addition to the buttons across the top of the window.