Refunds back by the methods that paid the sale
The customer asks: A sale paid by card refunded to the card, never in cash; a return without its receipt only to store credit
- Verdict: Ready, with limits (6)
- Door: Check before payment · area: Till controls and approvals › Cash, voids and returns
- Recipe: Refund rules: how the till may pay a refund back
- Sample: S51 — Refund rules (pp_rfr): how the till may pay a refund back
- Checked: run on our test bench 2026-10-24 · the check's answer for a sale's return and a no-receipt return; the refund door refusing an excluded method (Store Credit) and paying a kept one
What you build
A settings record and a service that answers the check on every refund the till pays: it takes off every offered method that did not pay the sale being refunded (return_of.paid_by), other than the store credit method and any the retailer always allows; and it keeps a return without its sale to the methods the retailer names and the store credit method. Each store refunding only its own sales is a setting, not this app: leave Use inter-store transactions off in Retail Setting.
Limits
- Methods, never amounts: the cashier splits the refund between the methods kept.
- The store credit method is never taken off, or every exchange is refused.
- At a till with a cash drawer, an exchange whose replacement costs less pays its difference in cash: refused when the rule leaves cash out.
- A sale's Pay is never judged.
- Offline the check is not called. A return sent to a register, or a refund made in Desk, is not checked.
- The methods kept must be Allowed in Returns on the POS Profile.
Tell the customer
A refund goes back the way the customer paid: the till offers only the sale's own methods and your store credit, and a return without its receipt is no way round it.
What next
- Tell the customer the 6 limits above, and write them into the proposal.
- Follow the recipe: Refund rules: how the till may pay a refund back.
- Copy the sample: S51 — Refund rules (pp_rfr): how the till may pay a refund back, and change it.
- Build and test it on your sandbox (request one if you have none; what is on it).
- Run the checks: your own tests, the kit's checks and the money kit's release gate (testing and release).
- Release through the customer's own release gate (14. Testing and release); an app other shops install goes through the App library.
Test it with your service stopped: the till applies the answer you declared for when it is down.
Related needs
- Cashiers count the drawer without seeing what the till expects — Ready
- A coded reason when a cashier voids, returns or discounts — Ready, with limits (3)
Start a project shortlist with this need · Put it in your blueprint · Every need