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.

farYzXR7HaGIGDUgS21gqIVcuc7Yn1aMVXzfUwyB47itt4ANYpuhi4tLS8TFRGbjd6mBjK EMgQq7Onezw1af

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.

rq Sx5WIOCDyRH1O6Vcas47Wp5TLlqrDKki4XfC9rQ2r QWV5PF1mMZmKP1cEowv1O
DnE8x9c56EKEXZqX 05OYEUXqiOuoaBRhZ27rPU0K2vRP5ZhoGMhnF8QWLHIzGY9W8 N2zOcbCG n1iqLa3um VjOkQ uRRiBlOY omA cTkHHPBGHypRTy19eTEz7VbjRqH7rEi

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.

rnzTCIHaNKMILp3fP ELzoO70N5UAUonY7l33ZwKRrY zy5M3h93EKlgIELi53AAGGCOre brFcq8GRUQkmqGwnIeFGJHqJVkaDH6Oa8pG2mila TV3XskYVgUwO0ehvyEMD4nVk

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”

s2feo4HXiVwPOX6K3kc ziGQ2sDfsluYCjsPoSTUZ1 NG3ZjdnZRdfGQdjLvbFLFEE7odkFmgSy 7JeRU83XD IBGdIik3m294cDEku9T788OIfm7pgXmw6y iYJ9K1TS71ZAyTK

After clicking on confirm order and save you can see the image below.

wU9yqqgJAkNGR1c4MviOR07x3d y6gHmOwUzPzci sITmB5 LTshsB WEUgceoIZQuXRK L1G0YwVfjcaxr lKLH S8N r5yp7fgorRakaGJwC A2Nr9AHNQtwCulOGSVB nkGst

Now we can receive the products by clicking on the “Receive Products” button and validate it. For reference you can see the screenshot below.

3WswQ8y1IECFXlst298VfkdH9dYEffreLJ6X56vHjoMky pqvyTScfD8BwniHRQnkYXGCtuEIbq4PRdL6dNVDNhqIfnzDRti7nw2YEoOr78C3vv6rYL41eUm3Ej220ofD V3kjgI

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.

EJSsg98eLRxQ3Ejqlk2td0iJgLetwW7nF9D4pkpewi99nU2aZtnLmC6D2CJoCFCs94tfoojmCrhwgW5u BRVgU9X67eYlkjU6LPQ 7ukfYC7BERCB63B QE8MlUKPs3nD dFrld
ZqyucCl4JxKYk1jS2tKKvqR

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.

LF4qB9Ts172R8sSBRPUmIDc LSFgwj34lPpYEcSeADOEvVQnWUx0QGqlhoWAn5K7wJ0coDHc6kClNwc D38O42sxPoksZxpFpXJQw9sc8H 1YUnEHswFHddGnvUdv6LAVO9tWISF

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’. 

FQaJFehHBYGPqvUHa4YiKzQxnX0 hfcLKuTowmGqx2SUoq1 dmxd9tVZWpPAJal830gVJTzpB9WoYM48v9Gf4beUaMle25TmifkJDmLJ2LdkBgOyylrXa3KBFeOTY191yqZZ 9Ve
rcbU4iHMDG1A6a5DwQRadmETZRGatPF47 M6hHwAn97r

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.

S1bjkF4WAv7giAeFkPG4FGsLWdhPr PbGCFB8s4O0Y7eYVyOxZpyS vsFNyiKbAaCX7qSLHnEcAIC9XNbl9H1o9jApeXvG9FW4t98os4ic2iBQT5nsuAmK0vh1FJNuOQsX1rvpCo
IWujCegvL lNxZoGqrc uSZH5fTLkAz1LGfRGjNRpLFMcICnOD9C618XQHk08USDFvLjwlofiBs26

From the above image you can understand that the bill is created for the received quantity of products.

rLVoC OPNJGZjld5HOqFV0T4r 5uAHrKzZh65vWXKyBypOlWuNiNjgkxP6TcIHy7Tktb3xwgt8ZbByZFQoeWWOpWJeFtO1w VCfvW 1cPNpzZm1SGommMtYDHDFCr aGwjVSHNTZ

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.

JqetlL Hw9DWZkDO3horbtGpubJUC24gUN6GZRLRPSfPOIlpnbyMM2gql x6a838670wcVyncjqE1BSeADfC0FfC 1u7LmyrhE8MI2k

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.

LGrSnFKCwXU4vXhnrVicVguUFqr1hS3NGvTXL5JtYW3U604byAjCro m1kSyaTmR zYMWRXAaEHFe0a8s5FxzEb 9FamOaZ9P HKyA62oz4GSve Ec 8gs0bLee3y5Q2sFaynWlg

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.

L2 819LC9DXGbelL3qAha9KzFQGPOOtpogFC3kjoxduZTeXFjNivEda1Ri5wPT1pQM39Jk9B tL7mdwtahgmtgfgD5Gty9ZNoAzIWG2e DUjNe50c8WrBkJMdpq iAoRWj HVuXr

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.

Leave a Reply

Your email address will not be published. Required fields are marked *