Three-Way Matching in Odoo Purchase

Before paying a vendor bill, three things should agree. How three-way matching works in Odoo Purchase.

Before a business pays a vendor bill, it is worth checking that the bill is genuinely right. Three-way matching is the check. This piece is about three-way matching in Odoo Purchase.

What three-way matching is

Three-way matching is the checking that three things agree before a vendor bill is paid: the purchase order, what the business ordered; the receipt, what the business genuinely received; and the vendor bill, what the vendor is charging. The idea is that these three should agree: the business should be billed for what it ordered and genuinely received, at the agreed price. Three-way matching is the check that they do agree, before the bill is paid.

Why the check matters

Three-way matching matters because, without it, a business can pay a vendor bill that is not genuinely right. A bill might charge for more than was received, or for goods that were not received at all, or at a price higher than was ordered, or simply be in error. If the business pays bills without checking them against the order and the receipt, it can pay for what it did not get or pay more than it agreed. Three-way matching catches that: a bill that does not agree with the order and the receipt is flagged, before it is paid, so the discrepancy can be investigated rather than simply paid.

How three-way matching works in Odoo

Three-way matching works because Odoo holds all three of the things being matched, and they are connected. The purchase order is in Purchase. The receipt is in Inventory, recorded when the goods were received. The vendor bill is in Accounting. Because these are connected in one system, the three can be checked against each other: the bill can be matched against the order it relates to and the receipt of the goods. Odoo supports bill control that uses this connection, so a vendor bill can be checked against the order and the receipt before it is paid, and a discrepancy can be flagged.

The value of the connected system here

Three-way matching is a clear example of the value of a connected system. The check requires the purchase order, the receipt, and the bill all to be available and connected, so they can be matched. In a disconnected setup, where purchasing, inventory, and accounting are separate systems, three-way matching is a manual exercise of gathering documents from three places and comparing them by hand, which is laborious and often skipped. In a connected system, where the order, the receipt, and the bill are all in Odoo and connected, the matching can be done within the system. The connected system is what makes three-way matching practical to do as a routine check rather than an occasional heroic effort.

The benefit: paying for what you got, at what you agreed

The benefit of three-way matching is straightforward: the business pays its vendor bills for what it genuinely ordered and received, at the price it agreed. It does not overpay, does not pay for goods it did not receive, does not pay bills that are simply wrong, because the matching catches the discrepancies before payment. For a business with any real volume of purchasing, three-way matching is a genuine financial control, ensuring the money paid to vendors is money genuinely owed.

The takeaway

Three-way matching in Odoo Purchase is the check that three things agree before a vendor bill is paid: the purchase order, what was ordered; the receipt, what was received; and the vendor bill, what is charged. It catches bills that charge for more than was received, or at the wrong price, or in error, before they are paid. The connected system, holding the order, receipt, and bill together, is what makes three-way matching practical as a routine check, and the benefit is that the business pays for what it genuinely got, at what it agreed. For how we approach Odoo, see our ERP practice.

All posts

Got a Topic Worth Posting?

Suggest a Topic

If a question keeps coming up in your operations, it might be worth its own post.