RFQ, purchase order, receipt, three-way match: how Odoo's Purchase module controls your spend and feeds your Luxembourg accounting with no double entry.
In short. Odoo's Purchase module runs the whole procurement chain: request for quotation to suppliers, purchase order, goods receipt, then a three-way match between the order, the receipt and the bill before any payment. Well configured, it does two things at once: it controls spend (you only pay for what you ordered and received) and it feeds your Luxembourg accounting with no re-keying, with the right PCN 2020 posting and the right VAT. Where OCR handles the bill that arrives, the Purchase module organises everything that happens before it.
Many SMEs use Odoo for sales and accounting but let purchasing run on email and a verbal go-ahead. That is the link where money leaves, and often the least controlled. The result: bills paid without an order, price differences never spotted, cash that is hard to forecast. Here is how the Purchase module structures that flow, and above all how it plugs into Luxembourg accounting so that compliance comes from the configuration rather than from everyone's vigilance.
What Odoo's Purchase module handles
The module covers the full cycle, from the need to the bill, keeping a trace at each step.
- The request for quotation (RFQ): you consult one or more suppliers for the same need, and Odoo keeps the offers received for comparison.
- The purchase order: the chosen quotation becomes a firm order, sent to the supplier, with its quantities, prices and lead times.
- The receipt: when the goods arrive, the receipt is recorded, which updates stock and opens the bill check.
- The vendor bill: it matches automatically against the order and the receipt, instead of being entered separately.
Around this cycle, two settings save an SME real time. Supplier price lists store each supplier's price and lead time for a given item, so Odoo suggests the right rate at order time. Reordering rules trigger an RFQ or a purchase order as soon as a stock falls below a threshold, factoring in the delivery lead time. For a company that buys to resell or to produce, that is what avoids both the stock-out and the over-stock.
The three-way match: stop paying for what you didn't receive
This is the heart of the control, and the real reason to use a Purchase module rather than an inbox. The three-way match confronts three documents: the purchase order (what you ordered), the receipt (what you actually received) and the vendor bill (what you are asked to pay). Until all three agree, the bill stays flagged as an exception.
| Document | What it says | What the check verifies |
|---|---|---|
| Purchase order | Item, quantity, agreed prices | Does the bill match the order? |
| Receipt | Quantity actually delivered | Are you paying for what you received? |
| Vendor bill | Amount claimed | Are the price and quantity billed correct? |
Odoo lets you choose the bill control policy: bill on ordered quantities or on received quantities. For an SME that gets partial deliveries, control on received quantities is often the safest: you only pay for what has actually entered stock. A price or quantity gap surfaces immediately, instead of being discovered months later, if at all. It is a simple safeguard against silent overpayments.
From purchase order to Luxembourg accounting
A purchasing flow is only worth it if it produces correct accounts with no re-keying. This is where the Luxembourg configuration comes in, and where a clean install differs from an error factory.
First, the accounting posting: each purchase category points to the right PCN 2020 account, so an electricity supplier's bill doesn't end up in a catch-all account. That initial setting conditions clean annual accounts, as we detail in our guide on configuring Luxembourg accounting in Odoo.
Next, VAT: a purchase from a supplier in another member state must trigger reverse charge, not a phantom deductible VAT. Odoo's fiscal positions handle this automatically once the supplier's VAT number is filled in, and your eCDF return inherits it directly. The mechanism is the same as for your intra-EU sales, detailed in our article on intra-EU VAT in Luxembourg.
Finally, the bill's arrival: not all come in through a purchase order. Those that arrive as PDF go through OCR, which pre-fills a draft attached to the purchase journal, as we explain in our article on OCR for vendor bills in Odoo. The Purchase module and OCR are complementary: the first structures planned purchases, the second cleanly captures the bills that weren't ordered.
Purchases still running on email, and you find the gaps at year-end? We structure the flow with you.
Structure my purchasing in OdooPaying: from approved bill to SEPA transfer
Once the bill is matched and approved, the flow ends on the cash side. Odoo generates SEPA transfer orders from the selected vendor bills: you produce a file to load into your web banking, where all that's left is to sign, without re-keying a single IBAN. The payment is recorded in the accounts as soon as it is issued, so at the next statement the line reconciles on its own. We describe this flow in our article on SEPA payments in Odoo, and its inbound counterpart in our guide on bank synchronisation.
The loop is then closed: the need triggers the order, the order the receipt, the receipt the bill check, the bill the payment, and the payment reconciles against the bank. Each step leaves a trace, and the accounting reflects reality to within a few days, not within a financial year.
Do you need Odoo Enterprise to manage purchases?
The Purchase module exists in both offers, Community and Enterprise. The difference is mainly in the peripheral functions: automatic bank synchronisation and OCR are Enterprise services, while Community covers the purchasing cycle itself and statement imports. For an SME that wants both to structure its purchasing and automate its cash, the gap is worth costing case by case rather than settling on a forum. That choice sits within a broader Odoo project, which we place in our guide to Odoo in Luxembourg for SMEs.
The Advena difference
An integrator installs the Purchase module and shows you how to create a purchase order. An accounting firm asks for your bills at month-end. We do both in the same tool: the purchasing flow is configured by people who also keep your Luxembourg accounts, so the PCN 2020 accounts, the fiscal positions and the bank reconciliation are set correctly first time. A technically functional purchasing flow can perfectly well produce unverifiable accounts: having both skills in the same team is exactly what avoids that.
Want a purchasing flow that controls spend and keeps the books on its own? Let's talk.
Talk to an Odoo expertFrequently asked questions
What is the difference between the Purchase module and bill OCR?
The Purchase module structures what comes before the bill: RFQ, purchase order, receipt, then matching. OCR captures the bills that arrive as PDF with no prior order. The two complement each other: one organises planned purchases, the other handles unordered bills.
What is the three-way match?
It is the check that confronts the purchase order, the receipt and the vendor bill before payment. Until all three agree on quantity and price, the bill stays flagged. It prevents paying for what you didn't order or didn't receive.
Does Odoo handle VAT reverse charge on intra-EU purchases?
Yes, through fiscal positions. As soon as the VAT number of a supplier in another member state is filled in, Odoo applies reverse charge and feeds the right boxes of the eCDF return, with no manual intervention.
Can orders be triggered automatically?
Yes. Reordering rules watch stock and trigger an RFQ or a purchase order as soon as an item falls below a threshold, factoring in the supplier's lead time. It is useful for a company that buys to resell or to produce.
Is the Purchase module available in Odoo Community?
Yes, the purchasing cycle is present in Community as in Enterprise. It is mainly the peripheral services, automatic bank synchronisation and OCR, that belong to the Enterprise offer. The real need is costed case by case.
Read more
- OCR for vendor bills in Odoo: ending manual entry
- Intra-EU VAT in Luxembourg: reverse charge and recapitulative statements
- SEPA payments in Odoo: credit transfers and direct debits in Luxembourg
- Bank synchronisation in Odoo: connecting your Luxembourg accounts
- Odoo in Luxembourg: is it the right ERP for your SME?
Why Advena?
We configure the purchasing flow and keep the accounting behind it: PCN 2020 accounts, Luxembourg fiscal positions, bank reconciliation. A purchasing flow installed without that accounting base produces wrong drafts faster; the point is to have both skills in the same team, with a clear fee and a named contact.
Your purchasing deserves better than an inbox and a spreadsheet? Let's review it.
Request a conversation