Enable Dark Mode!
By: Faseela Kasim

How to Do Purchase Return and Refund in Odoo 12

Functional Odoo 12 Purchase

A return in purchase happens when a buyer of a good or service wants to send it back to the vendor or supplier. Odoo provides purchase return feature to complete this purpose. So a buyer can easily return a product. There are several reasons to return the product such as the delivered product is the wrong item, the product didn’t match the description, excessive amount, late delivery, etc... In some cases, the supplier will charge a fee to the buyer unless the supplier shipped the wrong goods to the buyer. Usually, the purchase return is authorized using return merchandise authorization (RMA) that is issued by the supplier to the buyer. There the RMA number will be used, when the buyer returns the product to the supplier. The number will be marked outside the package of the returned product.

In this blog, I will explain about the return and refund of the product in the purchase. In Odoo the buyer can return the product if it is paid or not yet paid. Let’s see how we can return and refund the purchased product.

Return not invoiced product 
Firstly install the purchase module and create a new request for quotation(RFQ) or purchase order by using already created product and vendor or via creating a new product and vendor. By creating and confirming RFQ or purchase order, the buyer is purchasing a particular product or service from a vendor. 

Let’s create and confirm the RFQ as shown in the below image.


The purchase order for 20 Echo dot smart speaker is confirmed from the vendor Freezone. The quantity on hand of the product will be updated upon validating the receipt. It is shown in the below image.


Here, the buyer has not paid for the product and he wants to return them. The partial and full product return is possible in purchase return. As the bill is not paid by the buyer, the refund will not be possible, so the only the return of goods is initiated here.

The buyer can return the product by using return option. By clicking on the return, a pop-up notification will be displayed where the buyer can set the returned quantity of products as shown in the below image.


Click on Return to confirm the return of products and validate the return process for 5 products.


Later, check the quantity on hand to understand the change in the product on account of the return process.


The quantity on hand is changed to 15 as the return of 5 processes from 20 (20-5=15).

Return invoiced product
There are cases when products or goods are purchased and paid for its order. Later the buyer wants to return the product for some issues. Here comes the case of refund. The buyer will ask refund from the seller as buyer has already paid for that particular product. In Odoo, refund is initiated via credit note option. The buyer can ask for credit note. The seller will compensate with buyer by using three options in refund,

1. Create a draft credit note. 
2. Cancel: Create credit note and reconcile.
3. Modify: Create credit note, reconcile and create a new draft invoice. 

Now let’s discuss how the return and refund work in the paid product.

Create a new RFQ/purchase order by using already created product and vendor or via creating new vendor and product. Later confirm the order.


Now validate the receipt and check the quantity on hand of the ordered product.


Now the quantity on hand and forecasted quantity are set to 30, as the ordered quantity.

Create the vendor bill for the ordered quantity and register the payment and pay the amount using the bank or cash method.


Now the buyer can pay for the order via clicking on the validate option,


Now comes the case of product return by the buyer. The buyer can return the partial or full product. The buyer needs to return the product on account of some problem. The buyer can use the return option to return the product. There is an option called refund to apply, the refund to the seller. Check on the refund option to get a refund of the returned products.


Confirm return via clicking Return and validate the return of 5 products.

Now the quantity on hand will be updated.

The 5 products get returned and the buyer wants to get a refund. The Ask for a credit note option is used to refund the returned product.


1. Create a draft credit note
The first option in credit note is -create a draft credit note, which is used for creating, editing and validating a draft credit note of the created vendor bill, or keeping it as a  draft credit note until the documents are issued.


The reason tab is used to specify the reason for the refund of the product. Click on the Add credit note. Following, a draft credit note will be created with the negative amount which shows the credit note


In the draft credit note, there is an option to change the ordered quantity, Then the refund will be given for the newly changed quantity. By default, the ordered quantity is the same as the quantity in credit bill. Change it manually as shown below.


Click on validate option and validate the changes, then pay the refund from the seller to the buyer using cash or bank.


Complete the refund process using the validate option. Now the draft is getting paid and the buyer gets his refund. Under the information tab, we can see an option called unreconcile. Unreconcile is related to the accounting process called reconcile. The reconcile is the process of matching the balance invoice amount with the corresponding bank statement. There is two reconciliation process existing in Odoo.

1. Reconcile open invoice with the statement from the bank.
2. Register the payment directly on the invoice.

For any further requirement of the invoice, it has to be unreconciled.

The View option is used to show the payment amount back to the buyer.


2. Cancel: Create credit note and reconcile
The second option in credit note is to create a credit note and reconcile. It is used to cancel an invoice that should not have issued. A new credit note will be created, validated and reconciled with the invoice. The credit note will be in the state of paid, therefore the changes cannot be made on the credit note.

Let’s see how it works in purchase return. Choose the second option in Ask for a credit note as shown in the below image,


Click Add credit note. Upon the action, a new credit note will be created in the state of paid. The partial product return cannot be done using this option, which comes favorable in the case of numerous products.


3. Modify: Create credit note, reconcile and create a new draft invoice
The third option in credit note is used to cancel an invoice and create, reconcile a new draft invoice and also create a paid credit note. The first invoice will no longer be available. The created credit note is used for a full product refund. The partial refund is not possible in this option. The newly created invoice will be helping the seller to improve the purchase order. The buyer can use newly created invoice for future purchase.


Click on Add credit note, then a draft invoice and a credit note will be created.

Draft invoice is shown below. The quantity, price, taxes can be changed in the draft and also the buyer can add the products.


In the created credit note the status of the order is paid. So no more changes can be done on the credit note, every product gets a refund.


If you need any assistance in odoo, we are online, please chat with us.



When I do return the product, the cost price in ledger always take the amount from the cost price of the product (FIFO/Average etc.). I need to take the cost price in PO for amoun in the return product ledger. Do you have any solution for my problem ?





When I do return the product, the cost price in ledger always take the amount from the cost price of the product (FIFO/Average etc.). I need to take the cost price in PO for amoun in the return product ledger. Do you have any solution for my problem ?




Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Limited
Alpha House,
100 Borough High Street, London,
SE1 1LB, United Kingdom



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message