Skip to content

Front of house

Tills & cash

Opening a till, cash movements, safe drops and closing the shift.

4 min read

On this page

For cashiers, supervisors and managers. Tills & cash (/cash/tills) shows your open till, every till of the branch, closes waiting for a supervisor and recent shift closes.

Tills

A till is a physical cash place: a drawer (usually bound to a POS terminal), the safe or a petty cash box. Managers create them with + Till (cash.tills.manage): code, name, kind, bound terminal and a default float.

Opening a till (shift start)

Open till → choose the till, enter the opening float — either as a total or counted by denomination (the count must add up) → Open with float. One session per till; a terminal has at most one open till. From then on every cash sale on that terminal (or by the cashier who opened it) lands in the session.

During the shift

Action Records Needs
Cash in float top-ups, change from the bank cash.movement, a reason
Cash out pay-outs to suppliers, staff advances cash.movement; above the business limit (default 200,000) a supervisor’s PIN (cash.approve)
Petty cash small expenses with the receipt number cash.movement, a reason
Safe drop excess notes moved to the safe cash.movement
Transfer cash to another open till (drawer → safe, drawer → drawer) cash.movement; both tills open

Nothing can take out more than the till holds. Cash sales, cash refunds and reversals are recorded by the payment engine itself. The Movements list is the drawer’s history; Expected cash is always float + sales + cash in + transfers in − refunds − reversals − cash out − petty cash − safe drops − transfers out.

Counting and closing (shift end)

Count & close (cash.close●): count the drawer by denomination (or type the total), add a note, Close till.

  • Balanced → the session closes at once.
  • Overage (counted > expected) or shortage (counted < expected) beyond the tolerance (cash.close.tolerance_minor, default 0) → the session waits under Waiting for supervisor approval.

A supervisor (cash.approve, never the person who counted) approves the variance with a note, or sends it back for a recount — the till re-opens and the cashier counts again. Approved and balanced closes appear under Recent shift closes with expected, counted, variance and approver; everything is in the audit log (cash.till_opened, cash.cash_out, cash.till_close_requested, cash.till_close_approved…).

● needs a password sign-in.

Handing a drawer over mid-shift

When a cashier leaves before the drawer closes, Hand over instead of closing: you count the drawer (by denomination or as a total), the incoming cashier — chosen from the staff with a login — counts the same cash, types their count and confirms with their PIN. The two counts must match (if they do not, recount together or ask a supervisor to count). Your session closes with its variance — any difference is yours, approved by a supervisor above the tolerance as for a close — and a new session opens for the incoming cashier with the counted cash as its float. No money moves; the shift report shows the drawer as handed over.

Blind count

With the business setting blind count on (cash.close.blind_count), a cashier without cash.approve does not see the expected cash, nor the drawer’s movements (which add up to it), while the drawer is open — for a close or a hand-over — only the variance once the count is in.

Tips

A tip taken in cash goes into the drawer (Cash tips in the expected cash); it is owed to the waiter, not takings. Pay out tips pays a member of staff what they are owed (filled in, never more) as a Tips paid out movement. See performance-and-tips.md.

Denominations

Counts use the currency’s notes and coins (UGX 50,000 → 50; KES, TZS, RWF, USD, EUR, GBP configured in config/payments.ts).

Cash and the sale

  • Cash payment needs an open till; the till page says so and the pay screen refuses cash with Open a till before taking cash.
  • Reversal of a cash tender must happen while its till is still open; afterwards the money is refunded instead.
  • Cash refunds leave the open till of the person refunding and are refused when the drawer does not hold enough.