WooCommerce – How to Manage Refunds

Last updated - February 24, 2020


Refunds are a big part of order management when you are running an online business. Through seamless integration with different payment gateways, WooCommerce allows hassle-free refunds.

First of all, there are two ways to do your refunds – automatically with supported gateways, or manually. In this article, we’ll discuss both in detail.

Automatic Refunds

Automatic refunds allow you to process refunds without going to the dashboard of your payment gateway. While working with payment gateways that support automatic refunds, you have to add API credentials in the respective gateway’s settings. A noteworthy aspect of WooCommerce refunds is that you can refund product prices, shipping rates, and tax.

Adding API credentials for payment gateway
Adding API credentials for payment gateway

Also note that adding the API credentials ensures an efficient, smooth automatic refund through your WooCommerce admin.

Processing the refund

Once this is setup, moving ahead to process the refund is a simple, straightforward step. First, go to WooCommerce → Orders, and find the order that you want to process. Next, go to the Order Details page, and click the Refund button. This will initiate the refund process.

Select the number of products that are to be refunded in the ‘Qty’ text box. In a multiple-item order, choose the required quantity of items for the refund. WooCommerce calculates the refund amount automatically after you choose the quantity. In addition, if you want to add a note to the customer, you can do it at the ‘Add note’ field.

Finally, click Refund $Amount via (the relevant payment gateway) button to complete the process.

Processing automatic refund
Processing automatic refund

Once you complete the refund process, there will be a note in the order notes section informing the refund has been processed. If the entire order is refunded, the order status will automatically change to Refunded. In cases where only some of the items in the order are refunded, the order status won’t change.

Manual Refunds

Manual refunds are in a lot of ways similar to automatic refunds. The refund includes item rates, taxes, and any applicable shipping charges. The difference is that there won’t be any automatic transfer of the refund to your payment gateway. After processing the refund, you’ll have to manually mark the order as Refunded.

Processing the manual refund

While you process a manual refund, go to WooCommerce → Orders, and find the order you wish to refund. Next, click the Refund button.

Initiating manual refund
Initiating manual refund

On the next screen, you can select the number of refund items, and manually enter the shipping charge or any other applicable charges. However, make sure the entire amount you wish to refund is reflected in the Refund amount field.

Processing manual refund
Processing manual refund

Click Refund $Amount manually button to complete the refund process. You can view the refund amount in the Item details section as in the below screenshot.

Completing manual refund
Completing manual refund

Now, as in the previous case, for a partial refund, you need to change the order status manually. After this, go to your payment gateway to initiate the refund process there also.


  1. Hello there!

    Ever since we upgraded our Woo to v3.6, we do not see the ‘Refund via Paypal’ button at all within individual orders. The only button visible is ‘Refund manually’. Would you know the reason for this please? Thanks.

    • Hi there, this could be due to a plugin conflict. Please try disabling all plugins except WooCommerce and see if the problem persists.

  2. Hello,
    I use a PDF invoice plugin. The refund of 1 item doesn’t reflect in the invoice. It shows the original invoice with all the items. Is there a better way?

    • Hello Assim, Which PDF Invoice plugin do you use? It will be better if you contact the plugin support team directly to resolve this issue.

    • What is the error you are facing? Try to do a manual refund again after disabling all the plugins except woocommerce. This will help to ensure plugin conflicts are not causing the issue.