Bitta Retail POS guide

Cash movements

Record pay-in, pay-out, and safe drop movements and No Sale drawer-open audits on an open shift. Every movement is an immutable audit row that updates expected cash immediately and kicks the drawer.

status: verified applies-to: 1.0.0.121rev: 1

Cash movements are the mid-shift drawer events between opening a shift and closing it: putting change in, taking petty cash out, dropping excess cash to the safe, and opening the drawer without a sale. Every movement is an immutable audit row tied to the open shift, and every movement updates the shift's expected cash immediately. For the shift lifecycle itself, see Shifts.

Movement types

Four movement types with an enforced sign convention:

Type Sign Reason code Meaning
Pay In Positive Optional Cash added to the drawer (for example, extra change from the safe).
Pay Out Negative Required Cash removed (petty cash, supplier COD, courier).
Safe Drop Negative Required Excess cash removed from the drawer and dropped to the safe.
No Sale Exactly zero Not required Drawer opened without a sale - a pure audit trace.

Cash sales and cash refunds are not cash movements - they stay as signed payment lines on the sale or return. The opening float belongs to the shift record. Expected cash combines all three sources rather than copying them into one table.

Recording a movement

Movements are recorded from the open POS Shift Card (reachable from the register's Shift status-bar button):

  1. Choose Pay In / Pay Out (one dialog, switchable between those two types) or Safe Drop (type locked).
  2. Enter the amount as a positive number - "how much is going in / coming out". The sign convention is applied automatically; Pay Out and Safe Drop record as negative.
  3. Pick a Reason Code (mandatory for Pay Out and Safe Drop), optionally add a comment, and choose OK.
  4. The drawer kicks, the audit row is written, and the shift's expected cash updates immediately.

Reason codes come from the standard Business Central Reason Codes list; create the ones your stores use (for example PETTYCASH, BANKDROP) before go-live. The reason requirement for Pay Out and Safe Drop is always enforced, independent of any setup toggle.

Each row stamps the Shift No., Store Code, and Terminal ID (taken from the shift itself, so they can never disagree), the POS user, the recording Business Central user, an optional comment, and the creation timestamp. Recording a movement also kicks the physical cash drawer on the movement's terminal, best-effort: transports that cannot pulse a drawer (such as browser printing) simply skip the kick, and the audit row stands regardless. See Printers and hardware setup for which transports support drawer kick.

NOTE

Movements require an open shift - there is no shift-less pay-out. Attempting to record one on a closed shift is rejected.

No Sale: the drawer-open audit

No Sale is a zero-amount movement recording that the drawer was opened without a sale - the classic loss-prevention audit trail. It kicks the drawer and leaves an immutable row attributing the opening to a shift, terminal, and user. No reason code is required.

There are two surfaces: the No Sale action on the open Shift Card, and the register's No Sale button. The register variant resolves the terminal's open shift first and shows a non-blocking toast either confirming the entry with the shift number or explaining that no shift is open - a toast, never a dialog, so it cannot steal barcode-scan focus.

No Sale contributes zero to expected cash by definition; the X/Z report shows it as a count, not an amount.

How movements affect expected cash

The shift's expected cash equals the opening float, plus cash payment lines on the shift's sales, plus the signed net of its movements. For example: open with a 100.00 float, record Pay In 25.00, Pay Out 10.00, and Safe Drop 30.00, and the expected cash is 85.00 before any sales (100 + 25 - 10 - 30). The Shift Card shows the movement count and signed net at all times, and each movement is visible immediately in the Tender Counts subform's expected Cash figure.

POS Setup's Allow Negative Drawer Balance (off by default) guards cash-removing operations: when off, a Pay Out or Safe Drop whose projected expected drawer balance would go below zero is rejected and no row is written. Leave it off unless your drawer policy deliberately permits a negative position.

Reviewing movements

Review all movements via Tell Me (Alt+Q) -> POS Cash Movements - a read-only history list. From the POS Shifts list, the Cash Movements count column drills down to the movements of that shift. The X/Z report prints a Cash Movements block with pay-in, pay-out, and safe drop totals, the No Sale count, and the signed net.

Correcting mistakes

WARNING

Cash movements are immutable audit records - they cannot be modified or deleted, even by an administrator. To correct a mis-keyed movement, record the opposite movement (for example, a Pay In to reverse an accidental Pay Out) and note the correction in the comment.

// next step

Ready to try Bitta Retail POS?