POS reason codes overview
Goal
Understand configurable reasons for voids, discounts, refunds, drawer opens, and related exceptions.
Who it is for
Managers with pos.admin.configure_register to maintain codes; cashiers/clerks with pos.view to see the list. Frontline enforcement uses the active catalogue per context.
Contexts
void, discount, price_override, no_sale, drawer_open, refund, return, cancel.
How enforcement works
- If the tenant has one or more active codes for a context, frontline/API actions in that context must send a matching
reason_code(reason_required). - Codes with Requires note demand a note (
reason_note_required). - Requires approval participates in manager-override flows where applicable.
- Empty catalogue for a context → action may proceed without a code (backward compatible).
Open
Point of Sale → Reason Codes (also a tab under POS setup).