Skip to content

Built for a shop where somebody else handles the money

One open shift per cashier, expected cash computed from the drawer's own movements, and a count more than PKR 100 out that moves to review instead of closing.

The drawer belongs to a shift, not to the day

A database constraint allows one open shift per organisation, store and person, so two cashiers can never be counting the same drawer. A shift has 5 states — open, pending close, pending review, closed, reconciled.

Expected cash is arithmetic, not a guess
Expected cash is the opening float, plus every float adjustment made during the shift — each one attributed to the person who made it — plus cash in, minus cash out. A bill written by a cashier who has an open shift in that store writes a shift transaction, so the figure the cashier is counted against is fed by the sales that actually went through that drawer.
Closing records a denomination breakdown
The cashier enters the counted cash and the notes it is made of. The breakdown is stored with the close, so a short drawer can be re-counted against what was written down rather than argued about from memory.
Over PKR 100, the shift does not close
Variance is counted minus expected. The threshold defaults to PKR 100 and you can set it higher or lower. Past it, the shift does not close — it moves to pending review, and only an account holding the shift-review permission can clear it. The cashier cannot resolve their own short drawer.
Blind count, when you want it
Each close can be run as a blind count, which hides the expected figure from the cashier until the count is entered. It is an option on the close rather than the default, so you can use it on the terminals where it matters and leave the rest alone.

A shift that is PKR 350 short does not close

Expected cash is the drawer's own movements added up. The cashier counts, the count is a denomination breakdown, and anything past PKR 100 goes to review instead of closing.

Shift closeCounter 2 — evening
Closed12 Aug 2026
Opening floatSet when the shift openedPKR 15,000
Cash in — salesEvery cash bill on this open shiftPKR 184,600
Cash out — refund payout and expenseAttributed to the person who made itPKR 12,400
Expected in drawerPKR 187,200
Counted by cashierPKR 186,850
5,000 × 221,000 × 58500 × 30100 × 3450 × 620 × 710 × 1
Variance — counted minus expectedPKR 350Pending review

Past the PKR 100 threshold, so the shift moves to pending review. Only an account holding the shift-review permission can clear it.

Sample data · as of 12 Aug 2026

End of day reads dated figures, not live totals

One reconciliation per store per date, unique-constrained, so the day cannot be closed twice or closed by two people with different figures.

It refuses while a shift is still open
Submission is blocked if any shift for that day is still open. The day cannot be signed off around a drawer nobody has counted.
Every leg of expected cash is dated
Expected cash for the day is cash sales, minus cash refunds paid out, minus cash expenses paid that day. Cash sales come from dated ledger entries, cash refunds from the refund’s payout amount dated by when it completed, cash expenses from the expense’s paid-on date — all three fixed to a date rather than taken from bill totals that can still change. Editing a bill tomorrow does not quietly rewrite what last night was expected to hold.
An unreconciled refund blocks the day outright
If a completed refund has settlement amounts that do not reconcile, the day will not close until it does. The error surfaces the same evening, at the counter, instead of at month-end when nobody remembers the transaction.

No-receipt returns, capped four ways

The return with no bill attached is where cash leaves a shop quietly. Every cap here is a default you own and can change.

Four limits, all set by you
PKR 5,000 per return, PKR 10,000 from one customer in a day, PKR 50,000 across the shop in a day, and 5 distinct items. A return that breaches any of the four stops there.
A price override needs a written reason
With no bill to price the return from, any price the cashier sets away from the recorded one requires a typed reason that is stored on the return. The reason is part of the record, not a comment box.
Risk warnings computed from 6 months of history
The customer's purchase and return history over the last 6 months produces a risk level: under 2 refunds is low, 2 to 4 is medium, 5 or more is high. The high band raises a warning the cashier has to acknowledge before the return goes through, as does an item the customer never bought, or a quantity above what they bought.
A walk-in with no record gets cash, not credit
If there is no customer record to attach the return to, it must be paid out in cash and cannot be settled as store credit — there is no account for the credit to live on, and no way to check what that person has already returned this month.

Refunds settle down 3 routes

Cash payout, customer account, or store credit. The 3 amount buckets must sum to the refund total, so a settlement can never be part-recorded.

Cash payout is capped at what was actually paid
A cash payout cannot exceed the bill's paid amount minus everything already returned against it. A part-paid bill cannot refund more cash than it took, and a bill cannot be returned against twice for the same rupees.
Store credit clears the debt first
A store-credit settlement pays down the customer’s existing balance before anything else. Only the surplus becomes a store credit slip — serial-numbered, carrying an expiry, tracked, and voidable. You do not hand credit to somebody who owes you money.
Refund lines are prorated from the original bill
Each refund line is the original line total times refunded over sold, less that line’s share of the document discount, each part rounded half-up. Tax is added on top only where the line was priced tax-exclusive — a tax-inclusive line already carries it. Refunding the last remaining quantity settles to the exact remaining amount, so rounding never strands paisas on a fully returned bill.
A piece can be returned against a carton sale
Quantity converts through the unit contract snapshotted at the time of sale, not the one configured today. If the carton was 12 pieces when it sold, it is 12 pieces when it comes back, whatever the packing has changed to since.
An approval threshold you can switch on
The refund approval threshold ships off. Set any rupee figure and refunds above it need a manager password before they are written. If the settings lookup itself fails, the system fails closed and asks for the password.
Refunds are not credit notes
A refund carries no tax fields. It reverses money and stock with the trail intact, and it is deliberately not presented as an accounting-grade credit note.

What a new cashier cannot do

19 permission features, 16 of them set per cashier. A further 9 are manager-only and cannot be granted to a cashier at all.

Off until you grant it
A new cashier account starts with refunds off, price override off, void off, and customer and supplier ledger access off. Discounts and sales reports are on; export is off. Nothing about the account has to be locked down after the fact.
A void is one atomic reversal across 10 subsystems
Voiding a bill returns unrefunded stock to its original batches, unwinds bundle components back to their own stock, reverses the ledger, claws back store credit, reverses the journal entry, voids the shift transactions, recalculates the totals of an already-closed shift, voids the contact purchase log, reverses loyalty, and archives the bill with its refunds and lines under a reason. All of it, or none of it.
An exchange gets its own document
The most common counter event in this market is a swap, not a refund. A replacement bill is its own document on its own serial series, linked to what it replaced, rather than an edit to the original.
A 300-second undo on destructive writes
A destructive write returns a signed, single-use token valid for 300 seconds that restores the record and everything that cascaded from it. 45 record types are covered, so the fix for a mis-tap at the counter is one click, not a support call.

Close tomorrow’s drawer on a counted figure.

One open shift per cashier, a PKR 100 variance threshold, and refunds off on a new account until you grant them.

14 days free, no card.