Loss Prevention & Shrinkage Control: Keep More of What You Sell
A practical guide to cutting shrinkage on NoPOS: tighten voids and discounts, control cash handling, use permissions and audit trails, and review exception reports weekly.
The NoPOS developer relations team writes practical guides for building on the NoPOS REST API — from first smoke test to production POS.
Shrinkage — theft, error, and waste — quietly takes two to three percent of revenue at most stores and restaurants. No single fix stops it; the win comes from closing the small gaps one by one: every void needs a reason, every discount needs permission, and every exception gets reviewed the same week it happens.
Require a reason for every void and comp
- Make voids, refunds, and comps carry a mandatory reason code plus manager approval above a threshold — a void with no reason is indistinguishable from theft in your reports.
- Limit comp authority by role: servers can fix a spilled drink, only managers can comp a full table, so large giveaways always pass a second pair of eyes.
- Review the void/comp report daily during close — same-day review catches training issues fast, while month-old voids are just archaeology.
- Track void rates per employee against the location average — coaching starts with the outlier, not with a blanket policy nobody follows.
Lock down discounts and price overrides
- Put every discount type behind a permission: the early-bird special anyone can apply, the 50-percent manager override nobody can apply alone.
- Disable open-price entry wherever a price book can cover it — typed-in prices are where sweethearting hides, and a clean menu removes the temptation.
- Reconcile promo totals against marketing calendars weekly — if the system rang up twice as many "friends and family" discounts as the campaign authorized, something is off.
- Expire promo codes on schedule and audit who used them — a staff-shared coupon that lives forever becomes an unofficial employee discount.
Control cash from drawer to deposit
- Assign one cashier per drawer per shift so over/short always has an owner — shared drawers mean shared blame, which means no accountability.
- Count the drawer at every handover and log it before the next cashier signs in — the log is what turns a shortage into a coachable moment instead of an argument.
- Run blind drops once the drawer passes its float limit so excess cash never sits in the till through a rush.
- Match deposits to end-of-day reports the next morning — a gap between reported cash and banked cash is the highest-priority exception on the list.
Use permissions and audit trails as deterrents
- Give every employee their own login and never share manager PINs — an audit trail is worthless if five people use the same code.
- Restrict back-office functions (refunds, tax-exempt sales, time-clock edits) to roles that genuinely need them, and review the permission matrix quarterly.
- Let staff know exception reports are reviewed weekly — the deterrent effect of a visible, consistent review beats any single technical control.
- Investigate patterns, not single events: one large void is usually a mistake, ten small ones on the same shift is a method.
Use Swagger UI or OpenAPI for the current refund, discount, permission, and audit-trail request shapes.
Build from the current contract
Open the gateway for OpenAPI, Swagger, AGENTS.md, llms.txt, and the first X-API-Key smoke test.
More from NoPOS Blog
Cash Discounting & Surcharging: Cover Card Fees Without Breaking the Rules
A practical guide to offsetting card processing fees on NoPOS: cash-discount vs surcharge vs dual pricing, receipt disclosure rules that keep you compliant, and how to configure each model per location.
Best PracticesChargebacks and Fraud Prevention Without Slowing the Line
A practical guide to cutting chargebacks and payment fraud on NoPOS: EMV and tokenized taps that shift liability, AVS and CVV rules that block card testing, and receipt-level evidence that wins representments without slowing checkout.