Short answer: a POS refund needs three consistent outcomes: the customer document is correct, the payment is settled through the intended method and the returned goods receive the right stock treatment. Link the original order when available and define who approves exceptions. A negative sale line alone does not explain all three outcomes.
Applies to
Odoo 19 Point of Sale with the relevant payment, Inventory and invoicing configuration. Terminal refund capabilities depend on the selected provider and integration. The corresponding Odoo 20 documentation was checked in October 2026. This article targets Odoo 19; confirm your installed version before following any screen labels.
What should the cashier confirm first?
Identify the original transaction, returned quantity and reason. Confirm which items have already been refunded so that a repeat request does not create a duplicate outcome. Use the information available in the actual configuration and escalate uncertainty instead of guessing from a receipt total.
I would distinguish a normal policy return from an exception requiring approval. The business should define authority for missing receipts, unusual payment requests and damaged goods. Cashiers need a clear route to a supervisor without being expected to invent commercial policy at the counter.
Record the customer only when needed for the transaction and related documents. Avoid collecting excessive personal details as a substitute for a reliable order reference. Keep evidence accessible to the authorised team that handles later disputes.
How do the documented refund routes differ?
Odoo’s POS documentation describes refunds based on an existing order and standalone refunds using negative quantities. The original order route provides context that is useful for identifying the sold items and quantities. Standalone use deserves a clear exception policy.
The documented backend Return Products action refunds the whole order. Partial returns need the appropriate POS workflow rather than assuming every entry point offers the same quantity selection. Confirm the route with representative examples in the installed version.
Permissions also matter. The Odoo 20 documentation changes POS access terminology and role guidance compared with Odoo 19. Do not copy later role labels into an Odoo 19 procedure without checking the actual rights and behaviour.
What must happen to the returned goods?
Inspect the item according to the store’s process and decide whether it can return to saleable stock. Food, damaged packaging and opened products may need a different disposition. The responsible business specialist should define those rules; a generic refund action does not establish suitability for resale.
Confirm the stock effect of the configured workflow. Identify the product, quantity, location and tracking information where applicable. If the goods need a separate hold or disposal process, make sure staff know how that follows the commercial return.
Avoid solving a payment problem with an unrelated stock adjustment. The financial and physical records should remain explainable. A supervisor reviewing the case should be able to see whether goods actually returned and why their final location differs from ordinary shelf stock.
Worked example: a partial food retail return
Imagine a customer returning one item from a larger purchase. The cashier locates the original order and selects the relevant quantity through the appropriate workflow. The store’s policy requires a supervisor to decide the treatment of the returned food item.
The supervisor records the disposition and approves the refund method. If the original payment used a terminal, the team checks the provider’s supported refund process and confirms the result. It does not assume that an accepted POS entry guarantees an external reversal.
At closing, finance or the store manager compares the refund record, payment evidence and stock treatment. Any unresolved difference retains an owner. The remaining items on the original sale are not unintentionally refunded merely because a full order backend action was convenient.
How should payment differences be investigated?
Keep the original payment reference and the refund reference together where the process supports it. Distinguish a pending provider result from a confirmed failure. Repeating the action without understanding the first outcome can create duplicate payments or an incorrect customer balance.
Separate cash, card, store credit and other configured methods in the review. Each has a different evidence trail. If a gift card is used, explain that outcome clearly to the customer and reconcile it according to the approved accounting process.
Use session and provider records to investigate differences. A cash drawer discrepancy should not be silently corrected by changing an unrelated transaction. Record the cause, authorised adjustment and unresolved investigation so that the next reviewer can follow the evidence.
What about invoices and customer documents?
A receipt, an invoice and a credit document serve different purposes. Check the original document and required adjustment with finance. Do not assume every retail return needs the same document sequence, especially when customer invoicing is configured.
The Odoo 20 invoice documentation describes changed PDF generation timing. This Odoo 19 article does not rely on that later behaviour. Check the installed version when writing instructions about when a customer document becomes available.
Common mistakes include using standalone refunds routinely, choosing the wrong payment method and returning unsuitable goods directly to available stock. Another is closing a session while unexplained refund differences remain unassigned.
Before release, rehearse a partial return, a complete return, a missing receipt exception and an uncertain provider response. Review the outcome from the cashier, stock and finance perspectives. A reliable refund process gives each team a consistent explanation of the goods, documents and money.
Related
For food retail operations, see Odoo POS for food retail.
Official references
How this article was checked: the official Odoo 19 references and their Odoo 20 counterparts were reviewed in October 2026. Examples are illustrative planning exercises, not client results or tests on a live database.
For help applying this to your business, see my portfolio.