Purchasing · Odoo glossary
Three-way Matching
Understand three-way matching between a purchase order, receipt and vendor bill, and how Odoo signals discrepancies when reviewing bills for payment.
Definition
In general ERP practice
Three-way matching is a purchasing control that compares a purchase order, a goods receipt and a supplier invoice before payment approval. It checks whether what was ordered, received and billed is consistent.
Unlike a two-document comparison of order and invoice, it includes evidence of receipt. Differences such as a partial delivery or a changed price need an explanation and an appropriate review decision.
In Odoo
Odoo Purchase provides a 3-way matching setting and a Should Be Paid field on vendor bills. The product’s bill control policy determines whether draft bills use ordered or received quantities.
When a draft bill differs from the expected purchase information, Odoo can mark it as Exception. Its official documentation states that these changes are not blocked; the status can also be changed manually. The feature therefore provides a review signal and should not be described as an unconditional technical block on payment.
The three documents
Purchase order
The agreed items, quantities and prices.
Receipt
The quantity actually accepted into the business.
Vendor bill
The amount and quantity the supplier asks to be paid for.
Illustrative partial delivery
An order is for 100 units, but the receipt records 80. A bill for all 100 units needs review: it may reflect a supplier error, an agreed prepayment or a timing difference. The comparison identifies the issue; the payment decision depends on the facts and the approval process.
Official Odoo documentation
The Odoo-specific explanation above is based on the documentation for Odoo 19. Features and workflows can differ in other versions.
Related glossary terms
Continue reading