Mosce ERP · Help Center
Operations

Cash register

Opening, shifts, manual movements, and closing with cash reconciliation.

The cash register controls cash flows and other payment methods during a shift. Each session has an opening amount, records all sales and manual movements, and is closed with reconciliation against the physically counted cash.

Reading time: ~7 min

When to use this

Every sale collected in cash, card, transfer, or check from the POS or as payment for an order must go through a cash register. The cash register lets you:

  • Keep control of the cash in the drawer per shift.
  • Record manual inflows/outflows (minor expenses, withdrawals, additional funds).
  • Close with a cash count and detect differences (overages/shortages).
  • Generate a Z report (shift summary) in PDF.
  • Produce an accounting entry for the close if you have the Accounting module active.

A cash register can be a physical drawer, a virtual register (online transfers), or any collection point you want to keep separate for accounting purposes.

Before you start

  • Create at least one cash register in Operations → Cash register.
  • Verify that your role has cash_registers:manage (to create registers) and cash_sessions:open / cash_sessions:close to operate.
  • There can only be one open session at a time per register (enforced by the database).
  • If you have the Accounting module, define the cash accounts in Accounting → Chart of accounts before closing your first session.

Create a cash register

  1. Go to Operations → Cash register.
  2. Press New register.
  3. Assign a descriptive name (for example "Main register", "Pharmacy register 2", "Online collections").
  4. Press Create.

To rename or delete a register, use the "..." menu on the card. You cannot delete a register with an open session.

Step by step: the shift cycle

1. Open a session

  1. On the register card press Open session, or go to the POS and choose the register in the opening dialog.
  2. Enter the opening amount (cash in the drawer at the start of the shift, in pesos).
  3. Add notes if you want to document something (e.g. "Morning shift, cashier Juan").
  4. Press Open session.

The session gets a unique code (SES-YYYYMMDDHHmm-N) and becomes Open. From here on, all sales and payments linked to this register accumulate in the session.

2. Operate during the shift

While the session is open, the following are recorded automatically:

  • Automatic payments: collections and refunds of orders/POS assigned to the register. They appear in the Automatic payments tab of the session detail.
  • Manual movements: inflows and outflows you record by hand (see step 3).

You can go to Cash register → [your register] → View active session at any time to see the summary and the detail.

3. Record manual inflows/outflows

For minor expenses, additional funds, or partial withdrawals, press Record movement in the session detail:

  1. Type: Inflow (money enters the register) or Outflow (money leaves).
  2. Method: Cash, Card, Transfer, Check, Credit Note, or Other.
  3. Amount and description (required, e.g. "Purchase of thermal paper", "Partial withdrawal to the bank", "Fund reinforcement").
  4. Press Record.

The movement stays in the Manual movements tab, separate from the automatic payments to keep the trail clear.

4. Check the live summary

In the Summary tab you will see during the shift:

  • Opening: initial declared amount.
  • Total inflows / Total outflows per payment method.
  • Net per method.
  • Expected cash balance: opening + cash inflows − cash outflows.
  • Orders associated with the session.

5. Close the session (cash count)

When the shift ends:

  1. Physically count the cash in the drawer.
  2. Press Close session in the active session.
  3. The dialog shows the Expected balance calculated by the system.
  4. Enter the Declared cash (what you counted).
  5. The system calculates the Estimated difference live:
    • Zero: perfect balance.
    • Positive (overage): there is more cash than expected.
    • Negative (shortage): cash is missing relative to what was expected.
  6. Add notes explaining the difference if there is one.
  7. Press Close session.

The session becomes Closed with closedAt, declaredClosingAmount, and varianceAmount recorded. You can no longer add movements.

6. Download the Z report (PDF)

From the detail of a closed (or open) session press Download PDF. The report includes:

  • Header with register, session code, opening/closing date, and responsible person.
  • Operations (automatic payments and manual movements) listed chronologically.
  • Summary per payment method.
  • Opening, declared, expected, and difference.

This report serves as the Z report for shift handover and auditing.

7. Automatic accounting entry

If the Accounting module is active, closing the session generates an entry that moves the cash from the register account to the corresponding account, recording the difference in an overages/shortages account. Check the mappings in Accounting → Settings before the first close.

States and rules

StateAllowed actions
OpenSell in POS, record movements, close
ClosedRead-only; download PDF

Key rules:

  • A register can only have one open session at a time.
  • You cannot delete a register with an open session - close it first.
  • A closed session is immutable.
  • Any user with the cash_sessions:close permission can close the session, not only the one who opened it.

Common errors

ErrorCauseSolution
"There is already an open session for this register"Another user opened the session before youPress View active session and work on it.
"The session has already been closed"Someone closed the session while you tried to operateRefresh the page; open a new session if you are going to keep selling.
"This register has an open session" when deletingAn open session blocks deletionClose the session first, then delete the register.
Large difference with no explanationUnrecorded manual movements, human errorDocument it in notes; review automatic payments vs physical vouchers.
"You have reached your plan's register limit"The plan limits the number of cash registersUpgrade your plan in Settings → Subscription.
The accounting entry is not generated on closeIncomplete accounting mappingsConfigure cash and difference accounts in Accounting → Settings.