Overview
There are three closing paths:- Automatic close on payment — the POS processes the full payment; the session ends and the table auto-closes. No waiter action required.
- Manual close of an empty session — you opened a table by mistake and want to release it. No PIN required.
- Force close with an unpaid bill — a manager overrides the outstanding amount. Requires Manager PIN and a reason.
Automatic close (the normal path)
Once the cashier has completed payment on the POS:- The session’s
payment_statusbecomespaid. - Any Smart Invoice submission finalises.
- The KDS receives a final
session_closedevent; any remainingserveditems are archived. - The floor card flips from
billing(magenta) →free(grey/green depending on your theme). - If the table is temporary, it auto-archives off the floor.
- A LAN broadcast fires so all connected devices update immediately.
billing until the balance clears.
Manual close — empty session
If you opened a table by mistake and there are no items on it:- Open the table’s Manage view.
- Scroll to the footer.
- Tap Close Table.

Close Table action for an empty session
- Confirm.
zero_total reason. The card returns to free. No PIN needed because there’s no money on the line.
Force close — unpaid bill
If a bill needs to close without payment (walkout, comp, staff meal that wasn’t billed), this is a manager action. From the POS or the Waiter Manage view:- Tap Close Table.
- DishInk detects an outstanding amount and opens the Force Close modal.
- Enter a reason — required. Examples:
Walkout — police notifiedComp — VIP birthdayStaff meal — Chef approvalSystem error — bill duplicated
- Tap Force Close.
- PIN Verify modal — manager PIN required.
- On success: session closes with the outstanding amount recorded as a
walkoutorcomp(per your reason). A ZRA credit note is issued if the session had already been fiscally submitted.
Force closes are audited relentlessly. Every field is stored — the manager who authorised, the waiter who initiated, the reason text, the outstanding amount, and (if applicable) the ZRA credit note reference. Use them sparingly.
Offline closing
Closing (manual or force) queues offline:- Optimistic: the card flips to
freeon your device immediately. - The close operation is queued with any PIN payload attached.
- LAN broadcast fires so on-network devices reflect the change.
- On reconnect, the queue replays.
Cancelling a close
You can’t “un-close” a session — it’s a fiscal action. If a table closed and the same guests want to reorder:- Open the table as normal — it starts a new session for the next round.
- The previous bill is finalised and reflected in reports.
Table statuses after close
- Permanent tables → Free (grey).
- Temporary tables → Auto-archived off the floor.
- Merged tables → the primary closes; secondaries return to
freeand un-link.
Tips & best practices
Common mistakes
- Force closing an unpaid bill by habit. Every force close is a money leak. Confirm with a manager before authorising.
- Closing a table with an in-flight KDS order. The kitchen will still prep and serve, but the session is gone — the item ends up abandoned. Cancel the KDS order first via Editing Orders.
- Closing to “reset” a stuck table. Use the Stuck Tables recovery flow instead — safer and preserves data.
- Assuming close = paid. Force close ≠ paid. It’s an outstanding balance recorded to the shift.

