Commerce
Cash Register
Cash drawer management, shift open/close, Z-reports, and petty cash.
Overview
The cash register module manages the physical cash at a location: opening and closing the drawer, recording cash movements in and out, reconciling at end of shift, and generating the Z-report. It gives the location manager a live view of cash on hand and a daily record of cash activity.
Drawer Lifecycle
Opening the Drawer (X-Report)
At the start of a shift, the front desk or manager opens the cash drawer:
- Count and enter the opening float (starting cash amount)
- System records the opening balance and timestamp
- The drawer is now "open" — cash payments post to this drawer session
An X-report (interim snapshot) can be printed at any point during the shift to check the running balance without closing the drawer.
During the Shift
All cash transactions post to the open drawer:
- Cash-in: cash payments received at checkout
- Cash-out: change given, petty cash disbursements, vendor cash payments
- Each movement records: amount, type, reason, and the staff member who actioned it
Closing the Drawer (Z-Report)
At end of shift:
- Count the physical cash in the drawer
- Enter the counted amount
- System computes: expected cash = opening float + all cash-in – all cash-out
- Over/short is calculated: counted – expected
- Z-report is generated and the drawer is closed
The Z-report cannot be regenerated once closed — it is a one-time end-of-shift record.
Z-Report Contents
| Section | Contents |
|---|---|
| Shift period | Open time, close time, staff who opened/closed |
| Opening float | Starting cash |
| Cash received | Total cash payments from checkout |
| Cash out | Change, petty cash, manual outflows |
| Expected cash | Calculated closing balance |
| Counted cash | Physical count entered |
| Over / short | Discrepancy |
| Payment method summary | Breakdown of all payments (cash, card, UPI, gift card, store credit) |
| Service totals | Revenue by service category |
| Tax summary | GST collected by rate |
Z-reports are stored permanently and feed into daily sales reports and accounting reconciliation.
Cash Movements
Beyond checkout transactions, staff can record ad-hoc cash movements:
| Type | Example |
|---|---|
| Cash in | Owner adds float, cash deposit returned from bank |
| Cash out | Change for large note, petty cash disbursement |
| Petty cash | Small operational expenses paid from the drawer |
| Bank deposit | Cash removed to deposit at bank (reduces drawer balance) |
Each movement requires: amount, type, reason, and the staff member's confirmation. Movements are included in the Z-report and audit trail.
Petty Cash
The petty cash sub-module tracks small operational expenses paid in cash:
- Stationery, cleaning supplies, small vendor payments
- Each entry: amount, vendor/payee, category, receipt reference
- Petty cash entries reduce the drawer balance and are categorised as expenses in the finance module
Multiple Drawers Per Location
A location can have more than one cash drawer (e.g. multiple front-desk terminals). Each has its own open/close cycle. The location summary aggregates all drawers.
Permissions
| Action | org_owner | brand_manager | location_manager | front_desk |
|---|---|---|---|---|
| Open / close drawer | Yes | Yes | Yes | Yes |
| Record cash movement | Yes | Yes | Yes | Yes |
| Record petty cash | Yes | Yes | Yes | Yes |
| View Z-report | Yes | Yes | Yes | View own shift |
| View historical Z-reports | Yes | Yes | Yes | No |
| Void a cash movement | Yes | Yes | Yes | No |
Key Data Entities
- CashDrawer — one drawer instance at a location
- CashMovement — each cash-in or cash-out event (type, amount, reason, staff, timestamp)
- ShiftClose — the Z-report record (opening, closing, counted, over/short, all movement totals)
- PettyCashEntry — small expense paid from drawer