Accounting: Customers + Vendors: 3-Way Matching


This document covers 3-Way Matching in the Odoo 14 Purchase application and is intended to help understand the different billing states. 3-Way Matching compares the information shown on the Purchase Order, the Vendor Bill, and the Receipt, and informs you whether or not you should pay a bill. This prevents you from paying incorrect or fraudulent vendor bills. 


To get started, navigate to the Purchase app.

Odoo • Text and Image

Once there, go to Configuration > Settings. Under Invoicing, enable '3-way matching: purchases, receptions and bills', then set Bill Control to 'Received Quantities'.

When you're ready, click Save.


3-Way Matching only works when Bill Control is set to Received Quantities.

Next, navigate to Orders > Purchase Orders.

Begin by clicking   Group By  > Add Custom Group set the field to "Billing Status," and click APPLY

Odoo • Text and Image
This organizes your Purchase Orders by Billing Status:
  • Fully Billed: This indicates that a bill has already been created.

  • Nothing to Bill: Because Bill Control is configured to bill on 'Received quantities', this billing status means you have a confirmed Purchase Order but have not yet received any products of services. Note that this status does not apply to the 'Ordered quantities' Bill Control setting, because everything is ready to bill immediately with that configuration.

  • Waiting Bills: This only applies to the 'Ordered quantities' Bill Control setting and means Odoo is waiting on confirmation of a purchase order.

Now, let's cover the relevant statuses in more detail.

A Fully Billed status means that all lines eligible to be billed have been billed. All quantities and prices are the same across the purchase order, the vendor bill, and the receipt. If you look under the Other Information tab, you will see Billing Status as 'Fully Billed'. 

Odoo • Text and Image

A Nothing to Bill status indicated that products have not yet been received for this Purchase Order. If you were to RECEIVE PRODUCTS , but only receive half the products on the purchase order, the Billing Status would be 'Exception', and you may not want to pay the bill until all products have been received. If all products were received, the Billing Status would be 'Yes', meaning that all information is accurate and the bill is ready to be created and paid. 

Odoo • Text and Image
Odoo • A picture with a caption

Once items are received, you can click CREATE BILL. After you have REGISTERED PAYMENT, and validate, the bill will then be marked PAID.

Good to Know!

Force Status

To override the status that Odoo recommends, simply change the Should be Paid value, check Force Status, and then Save.

Odoo • Text and Image