Skip to Content

Odoo Customer Returns (RMA): Return Transfers, Quality Checks & Credit Notes for Trading Companies

A step-by-step Odoo 19 guide to receiving, inspecting and refunding customer returns without breaking stock or VAT
November 1, 2026 by

Returns are part of every trading business. A contractor sends back 12 damaged valves, a retailer receives the wrong LED panel model, a distributor over-ships and the customer refuses the extra cartons. If returns are handled with emails, spreadsheets and manual stock adjustments, inventory drifts, margins look better than they are and customer balances stop matching. This guide shows how to run a clean customer return (RMA) process in Odoo 19, from the first request to the credit note, using our invented example company, Gulfline Building Supplies LLC in Dubai.

Step 1: Write down your return policy first

Before touching configuration, agree on the rules: how many days customers have to return goods, which product categories are non-returnable (cut-to-length cable, custom-mixed paint, perishables), whether a restocking fee applies, and who can approve exceptions. Odoo will enforce your process, but it cannot decide it for you. Gulfline settled on a 14-day window, a 10% restocking fee for non-defective returns, and approval by the sales manager for anything above AED 5,000.

Step 2: Create a dedicated returns location

Go to Inventory › Configuration › Settings and enable Storage Locations (and Multi-Step Routes if you use them). Then open Inventory › Configuration › Locations and create an internal location such as Stock/Returns-QC. Returned goods land here first, so they are tracked but kept apart from sellable stock until someone has checked them.

Next, review the operation types under Inventory › Configuration › Operation Types. On your delivery operation type, set the operation type to use for returns and point its default destination to the returns location. That way every return created from a delivery follows the same path automatically.

Odoo 19 operation type configured for customer returns

Operation type set up so customer returns go to a dedicated Returns-QC location.

Step 3: Capture the return request

Requests arrive by phone, email or WhatsApp. Give them one home. If you use the Helpdesk app, open Helpdesk › Configuration › Helpdesk Teams and enable the after-sales options for Returns and Refunds on your customer-service team. Agents can then start a return or a credit note directly from the ticket, and the ticket keeps the full conversation, photos of the damage and the link to the original order. Without Helpdesk, log the request in the chatter of the sales order so the history stays with the transaction.

Step 4: Receive the goods with a reverse transfer

Open the original delivery from the sales order (the Delivery smart button) or from Inventory › Operations › Transfers. On a validated delivery, click Return. Odoo proposes the delivered lines; set the quantity actually coming back for each product and confirm. A return receipt is created, linked to the same sales order, and the returned quantity is deducted from the delivered quantity on the order. If products are tracked by lot or serial number, the warehouse team scans the exact lots coming back, which matters for warranty claims and supplier recalls.

Odoo 19 reverse transfer wizard on a delivery order

Creating a partial return from a validated delivery: only the damaged and wrong items come back.

Pro tip: Ask the customer for the delivery or invoice number before the driver collects anything. Starting the return from the original delivery keeps the cost, lot numbers and sales order link intact. Returns entered as fresh, unlinked receipts are the number one reason we see inventory valuation and gross margin reports go wrong after go-live.

Step 5: Inspect before restocking

With the Quality app, create a control point under Quality › Quality Control › Control Points for the return receipt operation type, for example a pass/fail check with photo upload. When the goods are checked:

  • Pass – move them from Returns-QC back to Stock with an internal transfer.
  • Fail, repairable – create a repair order in the Repairs app, track parts and labour, then return the unit to stock or to the customer.
  • Fail, unusable – use the Scrap button so the loss is valued and posted correctly.
  • Supplier defect – return it onward to the vendor from the original receipt, using the same Return button on the purchase side.

Five-step customer return workflow in Odoo 19

The five stages of a controlled customer return, from request to resolution.

Step 6: Settle the money: credit note, replacement or refund

For products invoiced on delivered quantities, the return lowers the delivered quantity on the sales order, so the order shows a negative amount to invoice; creating the invoice from the order produces a credit note for exactly what came back. Alternatively, open the customer invoice in Accounting › Customers › Invoices and click Credit Note to reverse it in full or in part. Charge any restocking fee as a separate service line. If the customer wants a replacement instead, create a new delivery for the replacement goods rather than editing the original order.

Watch out: In the UAE, Saudi Arabia and other VAT jurisdictions, the credit note must reference the original tax invoice and reverse the VAT correctly. Never "fix" a return by deleting or editing a posted invoice, and never refund cash without a credit note. Both break your audit trail and can cause problems in a VAT audit.

Step 7: Measure returns and act on the causes

Returns data is valuable. Use Inventory › Reporting › Moves Analysis filtered on the returns location, and the sales and invoicing reports grouped by product, customer and salesperson, to spot patterns. Gulfline found that 40% of its returns came from one LED panel SKU with a confusing description; fixing the product name cut returns on that line in half within a month.

Customer returns checklist

AreaWhat to set upOwner
PolicyReturn window, non-returnable categories, restocking fee, approval limitsSales manager
InventoryReturns-QC location, return operation type, lot/serial trackingWarehouse lead
RequestsHelpdesk team with Returns/Refunds enabled, or chatter loggingCustomer service
QualityControl point on return receipts, pass/fail rules, photosQC inspector
FinanceCredit note process, VAT treatment, restocking fee productAccountant
ReportingMonthly review of return reasons by product and customerOperations manager

OUR EXPERTISE

How Techdocxies Helps with Customer Returns (RMA)

Techdocxies Info Solutions has delivered 50+ Odoo projects for trading, distribution and service businesses across the GCC and beyond. We don't just switch modules on — we map your real processes first, then configure, customise, migrate, train and back you with 24/7 support.

  • Design a returns policy and approval flow that fits your customers and margins
  • Configure returns locations, routes and lot/serial tracking in Odoo Inventory
  • Set up Helpdesk, Quality and Repairs so every return is logged, inspected and resolved
  • Get credit notes, restocking fees and VAT right for UAE and KSA compliance
  • Build return-reason dashboards and train your sales, warehouse and finance teams

Book a free Odoo consultation

Odoo Demand Forecasting & Replenishment: Reordering Rules, Lead Times & Smarter Purchasing for Trading Companies
Turn sales history into min/max rules and let Odoo 19 suggest exactly what to buy, and when