Cash Add / Withdraw
Cash adjustments are the mid-shift cash-in / cash-out flow. The owner pulled $200 to pay a supplier in cash. The cashier topped up the change fund from a bank withdrawal. The till had too many small bills and someone walked half the float to the bank. Every one of these moves cash physically without ringing a sale or paying a bill — and every one of them needs a row in the ledger.
When to use cash-in
- Bank deposit returned — the change-fund slip the cashier picked up from the bank. Cash-in to the till’s sub-account; offsetting credit lands on the owner-equity / change-fund tracking account.
- Owner contribution — the owner topping up the float. Cash-in; offsetting credit on 3010 Owner’s Equity.
- Customer overpayment correction — a customer left an extra $20 by mistake; the cashier didn’t ring it as a sale because it wasn’t sales income. Cash-in; offsetting credit on 2100 Customer Credits (so the customer can use the $20 next visit) — but most stores skip this and just ring it as store credit on the customer page.
When to use cash-out
- Owner pulled cash — for personal use. Cash-out from the sub-account; offsetting debit on 3010 Owner’s Equity (it’s a draw against equity, not an expense).
- Bank deposit going out — the cashier walked $500 to the bank for safekeeping. The receiving end is the bank account (1020) — but if the deposit is between cash sub-accounts (one drawer to another), use a cash transfer instead, not a cash-out.
- Float reduced for security — close-of-day move where part of the till’s cash is locked in a safe and only the next-day float is left in the drawer.
How to post one
Open the cash drawer card
From the POS or the Shifts page, the active shift’s cash drawer card has a row of action buttons: Cash In, Cash Out, Transfer.
Pick Cash In or Cash Out
The dialog opens with the type pre-selected from the button you clicked. You can flip between them inside the dialog if you change your mind — the form is the same.
Fill in amount + reason
- Amount — positive number, the dialog handles the sign.
- Reason — required free-text field. Be specific: “owner pulled $200 for supplier X invoice 4892” beats “withdraw” by a mile when reading the shift detail next month.
- Counterparty account (optional) — defaults to 3010 Owner’s Equity for cash-out and 3010 for cash-in. Override to 1020 Bank when the move is a bank-deposit leg, or to 6099 Other Expenses when the cash-out is paying a non-categorised expense in cash and you don’t want to make a full expense entry.
Confirm
The dialog writes a cash_drawer_transactions row (type='cash_in' or type='cash_out'), updates the shift’s expected balance, and posts a balanced JE. The cash_drawer_transaction source type lets the General Ledger and User Activity report drill back to this exact action.
What posts to the books
The JE for a cash-in or cash-out is two lines, dated to the shift’s business day:
Cash-in (e.g. owner contribution)
- DR
1010-xxxcash sub-account — the amount - CR
3010Owner’s Equity — the same amount
Cash-out (e.g. owner draw)
- DR
3010Owner’s Equity — the amount - CR
1010-xxxcash sub-account — the same amount
The shift’s Expected balance recomputes immediately:
expected = openingBalance + Σ sale.amount + Σ cash_in.amount − Σ refund.amount − Σ expense.amount − Σ cash_out.amountSo a cash-in raises expected; a cash-out lowers it. The till should still match expected at close.
Reading the audit trail
Every cash adjustment surfaces:
- In the shift detail panel — under the transactions list, with type, amount, reason, timestamp.
- In the Cash Drawer Report — counted in the Adjustments column on the per-shift breakdown.
- In the General Ledger — filterable by source type
cash_drawer_transaction. - In the User Activity report — under “Stock Adjustment / Cash” (depending on app version) attributed to the user who confirmed the dialog.