Odoo 15 3-Way Matching Feature

Odoo 15 3-Way Matching Feature

This blog discusses 3-way matching in the Odoo Purchase module and explains the various billing statuses.

You may receive a charge from a vendor before obtaining the ordered products in several sectors. However, you may wish to defer payment until the products have arrived.

You can use 3-way matching to determine if the vendor bill should be paid or not. It is the process of comparing the information on the Purchase Order, the Vendor Bill, and the Receipt.

You can avoid paying inaccurate or fraudulent vendor bills by using the 3-way matching.

The three-way matching function in Odoo is set up to perform the buy, receipt, and bill generation activities for the vendors.

Let's take a look at how this functionality works. To do so, you must first install the buying module. Now you can see the dashboard for the purchase module, as shown in the screenshot below.

Configuring this feature in Odoo: Go to Purchase module > Configuration > Setting > Invoicing to enable this option. Set bill control to "Received Quantities" after enabling 3-way matching for purchases, receptions, and bills. Also, keep this.

IMPORTANT: Bill control must be set to received quantities for 3-way matching to occur.


Data appears on the vendor bill after the settings are activated, indicating whether the bill should be paid or not. There are three possible values available by default:

1. "Yes": the bill must be paid, and the products must be received.

2. "No": you should not pay the bill because the goods you bought has not arrived.

3. "Exception": there is a discrepancy between the quantity requested, billed, and received.

Odoo sets the status for you automatically. Check the Force status option if you wish to manually set the status.

It's now time to look at the workflow. So we can generate an RFQ, add a vendor, GST treatment, add a product, quantity, and so on.
In the buy tab of the product form, double-check that the product control policy is based on the quantity obtained. The screenshot below shows what happens when you click on "Request or Quotation."

You can make a new request for a quotation form by pressing the "Create" button. When you click the create button, a new form will appear, which you must fill up with information. The screenshot below serves as an example.

You can save and confirm your order once you've completed the form. The status has been changed from RFQ to purchase order, as you can see. The screenshot below serves as an example. "Confirm Order" and "Save" are the options I choose here.

You can see the image below after clicking on confirm order and save.

By pressing the "Receive Products" button and validating it, we may now receive the products. Take a look at the image below for reference.

Return to the Purchase module > Purchase Order and click the "Produce Bill" button to create a bill. The screenshot below serves as an example.


Important: There's one more thing you need to do now, and it's really important.

After that, go to Order > Purchase Order.

To get started, go to > Group By > Add Custom Group > Select "billing status" from the drop-down menu and click "Apply."

This categorizes your Purchase Orders according to their billing status:

Fully Billed: A bill has already been produced in this case.

Nothing to Bill: This billing status indicates that you have a confirmed Purchase Order but have not yet received any products or services, as Bill Control is designed to bill on 'Received quantities.' This state does not apply to the Bill Control setting 'Ordered quantities,' because everything is ready to bill right away with that setup.

Waiting Bills: This only relates to the Bill Control setting 'Ordered quantities,' and indicates that Odoo is awaiting confirmation of a purchase order.

Let's go over each topic in depth now.
All lines eligible to be billed have been billed, resulting in a Fully Billed status. The purchase order, vendor bill, and receipt all have the same quantities and prices. Billing Status will be 'Fully Billed' if you look under the "Other Information" page.


The status of Nothing to Bill indicated that the products for this Purchase Order had not yet arrived. If you receive products but only half of the products on the purchase order, the Billing Status will be 'Exception,' and you may not wish to pay the bill until you receive all of the products. The Billing Status would be 'Yes' if all products were received, indicating that all information is correct and the bill is ready to be created and paid. The screenshot below serves as an example.

You can see from the above graphic that the bill is for the quantity of products received.

The demand quantity, received quantity, and billed quantity are all the same in the screenshot above.

At this time, 3-way matching is functional. You can see that all three are identical, which means that no case will arise at this time.

You can now establish a Request for Quotation by entering the vendor, product, GST treatment, quantity, and other details, then saving and confirming the order.

By clicking the "Make BILL" button before getting the merchandise, we can create a bill.

We won't be able to create a bill until we receive things.

Let me now demonstrate how the "Exception Case" occurs.

Create a Request for Quotation, then fill in the vendor, product, GST treatment, quantity, and other details before clicking Save and Confirm Order. The screenshot below serves as an example.

You can obtain the products by clicking the "Receive Products" button after you've saved and confirmed your order. The screenshot below serves as an example.

After you've clicked on "Receive Products," you may click on "Validate Button" to validate it. The screenshot below serves as an example.

Now we'll go through the process again to view the "Exception Case" situation, and this time we'll make a purchase order for it. The vendor, the product, the unit price, and the quantity will all be mentioned.

We'll take a quantity of the merchandise and bill it in varying quantities.

To check the billing status in this situation, go to the other information page and check the billing status; it will change from "should be paid" to "Exception" immediately. The screenshot below serves as an example.

Conclusion: Odoo 15 3-Way Matching Feature

This is how Odoo's "3-way matching" works. If you encounter any difficulties when reading this blog, please contact us and we will gladly assist you.

Odoo, Moe Fawaz 6 January, 2022
Share this post
Our blogs
Sign in to leave a comment
Odoo 15 Accounting Module Taxes
  /