Overview
DishInk treats sent items as fiscally significant — they’ve been counted for kitchen prep and (in some cases) already fiscally submitted to ZRA. So corrections leave an audit trail:- Every void or quantity correction requires a manager PIN.
- Every correction records a reason (freeform text).
- The change is optimistically applied on your device and syncs on reconnect if offline.
- All corrections are visible in the shift report and manager audit log.
Open the void / correct dialog
- Open the table’s Manage view.
- Scroll to Bill Summary.
- Beside any item, tap the small Void link (red, at the price).

Bill Summary with per-line Void button
Step 1 — Pick the correction
The Void / Correct Item sheet opens:
Correct Quantity or Void — 0 = full void
- Item name (e.g.
Grilled Chicken). - Correct Quantity stepper. Range:
0to originally punched quantity.0= void the entire item.- Any lower number = quantity correction (e.g. punched 3, correct to 2).
- Range max is enforced by the UI.
- Reason input. Placeholder changes based on quantity:
0: “e.g. Wrong item punched”- Positive: “e.g. Punched 3 instead of 2”
- Cancel and Void Item → (or Correct Quantity →) actions.
Step 2 — Manager PIN
The PIN Verify modal opens with the title matching your action:Void Grilled ChickenCorrect Grilled Chicken to 2

Manager PIN gate for corrections
- Wrong PIN: the modal shakes and stays open. Try again.
- Correct PIN: the correction commits, the Bill Summary updates, and both modals close.
waiter-operations / void_item edge function — it also runs the atomic quantity/void update in one transaction, so partial states can’t happen.
Full void vs quantity correction — what actually changes
Voids are never physically deleted. They stay on the record with the reason, for auditing.
Offline corrections
If the network is down when you tap through the PIN screen, DishInk doesn’t reject — it queues the correction with the PIN travelling as part of the payload:- The PIN is included in the queued operation so the server verifies it whenever the queue processes.
- The optimistic update applies to your Bill Summary immediately.
- The offline banner shows one more pending operation.
- On reconnect, the queue replays and the server-side change matches your local state.
A queued correction is not “committed” until the server verifies the PIN. If the PIN was wrong (typed by a non-manager passing off as one), the queue reports the failure on reconnect and the local state is rolled back.
Common reasons
Fast, honest reason texts help the manager audit:Wrong item punchedPunched 3 instead of 2Guest changed mindKitchen made wrong dish(with New item added separately)Comp — kitchen delayAllergy — replacement ordered
Voiding after payment
Once an item is on a paid, closed session, voiding it becomes a refund — handled from POS Transaction History, not the Waiter Module. See Refunds.Split-locked items
If the table has an active split payment, the Void button is still available, but the correction will only apply after the split is cancelled — DishInk shows the block message. This prevents silently changing an already-agreed split total.Tips & best practices
Common mistakes
- Voiding to fix table assignment. Use Moving Items — cheaper, no audit noise.
- Skipping the reason field. DishInk fills a default (
Incorrect item/Quantity corrected) if blank, but a real reason is much more useful. - Assuming void = refund. Void is a pre-payment correction. Refund is post-payment. See Refunds.
- Blaming the wrong staff member. Voids record the manager who authorised and the waiter who initiated. Both are visible in reports.

