This blog covers 3-way matching in Odoo Purchase application and is intended to help understand the different billing status.
In some industries, you may receive a bill from a vendor before receiving the ordered products. However, you might not want to pay it until the products have been received.
To define whether the vendor bill should be paid or not, you can use what we call 3-way matching. It refers to the comparison of the information appearing on the Purchase Order, the Vendor Bill and the Receipt.
The 3-way matching helps you avoid paying incorrect or fraudulent vendor bills.
The three-way matching function in Odoo is configured to run the operations of purchase, receipt, and the generations of the bills to the vendors to be configured in operation.
Now let’s see how this feature works. For this first of all you have to install the purchase module. Now you can see the purchase module dashboard, for reference you can see the screenshot below.
Setting up this feature in Odoo : To make this feature work, go to Purchase module > Configuration > Setting > under Invoicing Enable 3-way matching : purchases, receptions and bills, then set bill control to “Received Quantities” And save this.
IMPORTANT : 3-way matching only works when bill control is set to received quantities.
After the activation of settings, data appears on the vendor bill, specifying whether the bill should be paid or not. By default, there are three possible values you can find:
1. “Yes” : you should pay the bill and you have received the products.
2. “No” : you should not pay the bill and you have not received the ordered product.
3. “Exception” : there is a difference between ordered, billed and received quantities.
The status is automatically set by Odoo. If you want to set the status manually, check the Force status option.
Now it’s time to see the workflow. So we can create a Request for Quotation (RFQ), add vendor, GST treatment, add product, quantity etc.
Go to product form, in the purchase tab, also ensure that the product control policy is based on received quantity. When you click on the “Request or Quotation” you can see the screenshot below.
With the help of the “Create” button you can create a new request for a quotation form. When you click on the create button you can see the new form will open and you have to fill in the details. For reference you can see the screenshot below.
When you fill the form you can save and confirm the order. You can see the status has been changed from RFQ to purchase order. For reference you can see the screenshot below. Here I select “Confirm Order” and “Save”
After clicking on confirm order and save you can see the image below.
Now we can receive the products by clicking on the “Receive Products” button and validate it. For reference you can see the screenshot below.
Now go back to the Purchase module > Purchase Order and create a bill by clicking on the “Create Bill” button. For reference you can see the screenshot below.
Important : Now here you have to do one more thing, which is very important.
Next Navigate to Order > Purchase Order.
Begin by clicking > Group By > Add Custom Group > Set the field to “billing status” and click apply.
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 or 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 every point in 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’.
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. For reference you can see the screenshot below.
From the above image you can understand that the bill is created for the received quantity of products.
From the above screenshot you can see that demand quantity, received quantity and billed quantity are the same.
At this point are 3-way matching works. You can see that all three are the same, through this you can understand that no case will occur now.
Now you can create a Request for quotation, add vendor, product, GST treatment, quantity etc. and click save and confirm the order.
Before receiving the product we can create a bill by clicking on the “CREATE BILL” button.
Only by receiving products will we be able to create a bill.
Now let me show you how the “Exception Case” comes.
Create a Request for Quotation, add vendor, product, GST treatment, quantity etc. and click save and confirm the order. For reference you can see the screenshot below.
When you click on Save and confirm order, you can receive the products by clicking on the “Receive Products” button. For reference you can see the screenshot below.
After clicking on Receive Products you can click on validate it by clicking on “Validate Button”. For reference you can see the screenshot below.
Now we will repeat the process to see the scenario of the “Exception Case”, for this again we shall create a purchase order. We shall mention the vendor, product, unit price and quantity.
Here we shall receive the product in a quantity and bill the product in different quantities.
In this case, to check the billing status go to the other information tab and check the billing status, it will automatically change from “should be paid” to “Exception”. For reference you can see the screenshot below.
This is how “3-way matching” works in Odoo. While reading this blog, if you face any problem then feel free to contact us, we will assist you with that.