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

  1. Purchase order

    The agreed items, quantities and prices.

  2. Receipt

    The quantity actually accepted into the business.

  3. 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.