Settings
Open or Resume a Cash Register Session
The cashier starts drawer control by opening the correct branch register with the counted opening float.
- Menu path
- Manage -> Cash Register -> Open
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
Live local Posnic app reviewed 2026-09-09, frontend/static/script/js/modules/js/registers.js renderOverview promptOpen confirmOpen, frontend/modules/settings_write.html register_open_modal, api/src/middleware/registers.validation.js registerAdd, api/src/repositories/register.repository.js registeraddInsert, frontend/static/script/js/modules/js/users.js cashregisterOpenForm
Before Opening
- Confirm Current Branch/Outlet is correct.
- Confirm the register row name matches the physical drawer or counter.
- Count the opening float before typing it.
- Use one register session per drawer, not one per customer.
- Do not open a register for another cashier unless the shop has a manager process for that.
If the Register List Is Empty
An empty Cash Register table is a setup state, not a failed open. The branch has no named registers available to start.
- Open Manage -> Branches / Outlet.
- Edit the current branch shown on the Cash Register page.
- Under Registers, add a physical counter name such as Main Counter.
- Save the branch, then reload Manage -> Cash Register.
- Confirm the new row appears as Closed with an Open action.
Open a Closed Register
- Open Manage -> Cash Register.
- Read the heading Registers - branch name and confirm the branch is correct.
- Find the register row, for example Main Counter.
- Confirm the status is Closed.
- Click Open.
- In the Open Register modal, enter Opening Float.
- Click Open Register.
- Confirm the row changes to Open - your session.
- Return to New Sale and start selling.
Opening Float Rules
Opening Float is the cash already in the drawer before the first sale of the session. It becomes part of the expected cash calculation at close.
| Rule | Why it matters | Example |
|---|---|---|
| Use the counted physical amount | Close expected cash starts from this value. | If the drawer starts with 500, enter 500.00. |
| Use zero only when the drawer starts empty | Zero float means every cash difference comes from sales or cash movement. | Training/demo register can use 0.00. |
| Do not estimate | Wrong float creates artificial over/short at close. | Recount before opening if unsure. |
| Opening float must be non-negative | Validation rejects negative values. | Use Cash Out later for money removed. |
Resume and Lock Behavior
| Condition | Backend behavior | Operator meaning |
|---|---|---|
| Same user already has register open | Existing session is returned and the device lock moves to the current device. | Use Resume/Open-your-session instead of starting a second till. |
| Different user has register open | The API returns REGISTER_SESSION_LOCKED with the current user. | Stop and ask a manager or use another drawer. |
| No open session exists | A new open register document is created. | This begins the shift or drawer session. |
| Cash Register feature is off | Sales do not require register ids. | Use reports and payment labels for reconciliation instead. |
What Is Saved Locally
After a successful open, the client stores the active cash register id, register id, register name and user register status so sale payloads can attach to the session.
- Do not clear browser/app data in the middle of a live drawer session.
- If the cashier changes branch, register values are checked and cleared when they do not belong to the new branch.
- If a sale prompts for register again, check branch and session status first.
- The open date shown in Register Details is the session start evidence.
Verify a Successful Open
- Register Details names the same register you selected.
- Register Open Date shows the current session start time.
- The overview row says Open - your session, not merely Open by another user.
- Payment Tally includes opening float in expected Cash before any sale is made.
- Cash Details lists the opening float under the signed-in user.
- New Sale no longer asks this user/device to open a register.