Accounting: Customers + Vendors: 3-Way Matching


This document covers 3-Way Matching in the Odoo 12 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 'Delivered Quantities'.

When you're ready, click Save.


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

Next, navigate to purchase > 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:
  • No Bill to Receive: This indicates that the purchase order has been invoiced.

  • 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 No Bill to Receive 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 'No Bill to Receive'. 

Odoo • Text and Image

A Nothing to Bill status indicates 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 • Text and Image

Once items are received, you can click CREATE BILL. After you validate and REGISTER PAYMENT, the bill will then be moved to the PAID status. 

Good to Know!

Force Status

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

Odoo • Text and Image

Good to Know!

Odoo Bug

At the time this document was written (6/16/2021), there was a bug in Odoo that prevents from changing Should Be Paid to 'No' automatically, though it can still be edited and forced.