Home / Help Center / pos-app / Admin / Void & Comp Log
⚠️ Admin

Void & Comp Log

The Void & Comp Log records every item removed after being rung up (a "void") and every item given away free (a "comp"), so shop owners have a clear, timestamped accountability trail for shrinkage and giveaways.

📍 Menu path: Admin → Void & Comp Log
👤 Who uses it: Cashiers log entries; Managers approve amounts over the threshold — requires the Advanced plan tier or above
🏷️ Plan tier: advanced+

Overview

A VOID is an item removed after it was rung up or sent to the kitchen — a wrong order, a quality issue, a billing error, and so on. A COMP is an item given to a customer free of charge — a birthday treat, an apology for a delay, a VIP gesture, a staff meal, and more.

Any single void or comp whose total value reaches the configured threshold (₹200 by default) requires a manager's name to be recorded as approval before it is considered resolved — entries below the threshold are logged without approval.

Records are grouped by day with daily void/comp subtotals, and the whole log can be filtered by date range, entry type, or free-text search, then exported to CSV for accounting or loss-prevention review.

Before You Start

Step-by-Step Guide

1 Log a void

  1. Click Log Entry.
  2. Leave the type toggle on Void (it is selected by default).
  3. Enter the Item Name, Qty, and Unit Price — the total value calculates automatically as you type.
  4. Optionally enter an Order / Bill Ref to tie the void to a specific invoice or table.
  5. Choose a Reason: Wrong item, Customer changed mind, Quality issue, Item unavailable, Duplicate entry, Billing error, or Other.
  6. If the total reaches the approval threshold, enter the approving Manager Name before saving — the form will not submit without it.
  7. Click Log Void to save the record.

2 Log a complimentary item

  1. Click Log Entry and switch the type toggle to Complimentary.
  2. Fill in the item, quantity and unit price as with a void.
  3. Choose a Comp-specific reason: Birthday / Anniversary, VIP / Loyalty customer, Apology for delay, Apology for error, Manager discretion, Promotional offer, Staff meal, Tasting / Trial, or Other.
  4. Provide manager approval if the value crosses the threshold, then click Log Complimentary.

3 Approve a pending entry

  1. Entries needing approval show an amber Approve button in the log list, and a banner at the top counts how many are pending.
  2. Click Approve on the entry, enter the Manager Name, and confirm — the entry then shows a green checkmark with that manager's name instead of the Approve button.

4 Filter, search and export

  1. Use the From/To date pickers to change the reporting window (defaults to the last 7 days).
  2. Use the All / Voids / Comps pills to narrow the list to one type.
  3. Type in the search box to filter by item name, reason, or order reference.
  4. Click Export to download the currently filtered list as a CSV file with columns for date, time, type, item, quantities, prices, totals, reference, reason, notes and approver.

Every Field & Button, Explained

Field / ButtonWhat it does
Voids KPI cardCount and total value of VOID entries in the current date range.
Comps KPI cardCount and total value of COMP entries in the current date range.
Pending Approval KPI cardCount of entries that are at or above the threshold and still missing a manager's approval; turns green with "All clear" when zero.
Total Loss KPI cardCombined value of all voids and comps in the current range, with the total entry count underneath.
Item Name / Qty / Unit PriceCore details of the record; total value is computed live as qty × unit price.
Order / Bill RefOptional free-text reference tying the entry back to a specific bill, order, or table.
ReasonA required dropdown, with a different option set for Void vs Complimentary entries.
NotesOptional free-text detail about the entry.
Manager Name (approval)Required only when the entry's total value is at or above the approval threshold; recorded on the entry once submitted.
Approve buttonOpens a small dialog to capture the manager's name and mark a pending entry as approved.
Delete (trash icon)Removes an entry from the log after a confirmation prompt.
ExportDownloads the currently filtered records as a CSV file named void_comp_<date>.csv.

Tips & Best Practices

Troubleshooting & FAQ

The form won't let me save my entry.
Check that Item Name, Unit Price and Reason are all filled in, and — if the total value is at or above the approval threshold — that a Manager Name has been entered.
Why does this entry need approval but another one of similar value doesn't?
Approval is required strictly when the total value (qty × unit price) is at or above the configured threshold shown in the banner near the top of the page — check the exact total, not just the unit price.
Can I edit an entry after saving it?
The page does not support editing a saved entry — delete it and log a corrected one instead, so the audit trail stays accurate.
Why don't I see this page in the sidebar?
Void & Comp Log requires the Advanced plan tier or above; on lower tiers the menu item is hidden.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/shared/VoidCompPage.jsx

Backend endpoints used:

  • GET {apiPrefix}/void-comps?from=&to=
  • POST {apiPrefix}/void-comps
  • PUT {apiPrefix}/void-comps/:id/approve
  • DELETE {apiPrefix}/void-comps/:id

Related tables (db-core repositories):

  • VoidCompRecord (best-effort — type VOID/COMP, itemName, qty, unitPrice, total, reason, managerName, orderRef)

Feature flag key: billing (requires advanced plan tier or above)

Shared component reused across variants via apiPrefix ("/restaurant", "/bakery", or "" for the main POS). The approval threshold is returned by the backend alongside the record list ({ records, threshold }) rather than hard-coded, so it can be tuned per deployment; the client falls back to a default of ₹200 if the API omits it.