Cancel order and issue refund

Reading time approx.: 10 minutes

An order can be cancelled if it is no longer to be fulfilled. If the order has already been paid for, a refund may also be necessary.

WooCommerce supports both full and partial refunds. However, you must distinguish between whether WooCommerce can process the refund automatically via the payment gateway used or whether you have to refund the money yourself outside of WooCommerce.

You can find the relevant order at:

WooCommerce
→ Orders

If you are not yet familiar with order management, read first Managing WooCommerce orders: status, payment, and shipping.

First things first: Changing the WooCommerce order status to „Cancelled“ or „Refunded“ does not automatically refund money to the customer. An actual refund must be processed via the refund feature and – if supported – the payment gateway.

Cancellation and refund are two different things #

A Cancellation means that an order will not be processed further.

A Refund means, on the other hand, that an amount already paid is fully or partially returned to the customer.

ProcessMeaning
CancelThe order will not be processed any further.
RefundAn already paid amount is refunded in full or in part.

Therefore, for an order that has not yet been paid for, a cancellation may be sufficient.

If the order has already been paid for, you must also check whether the customer needs to be refunded.

Cancel an unpaid order #

If an order has not been paid for and is no longer to be fulfilled, you can open it in the WooCommerce backend and change the order status to Cancelled Sit.

Save or subsequently update the order.

When WooCommerce inventory management is enabled, the stock reserved or reduced for order items is added back to the available inventory when an order is cancelled.

We explain the meaning of the various statuses in detail in the article WooCommerce Order Status Simply Explained.

Do not simply set a paid order to „Cancelled“ #

If the order has already been paid for, a simple status change is usually not sufficient.

For example:

Order:
CHF 129.00

Payment:
successful

Status manually to:
Cancelled

This means you have changed the order status. However, this did not automatically refund CHF 129.00 to the customer.

Important: For an already paid order, always check what actually happened with the payment. The WooCommerce order status and the money movement at the payment gateway are two different things.

Process refunds directly in the order #

For a refund, you open the relevant order under:

WooCommerce
→ Orders
→ open desired order

In the section with the ordered products you will find the function Refund.

After clicking, you can specify which products or quantities and what amount should be refunded.

You can also enter a note for the refund.

Full or partial refund? #

WooCommerce supports both options.

At a full refund the entire corresponding order value will be refunded.

At a Partial refund only part of the order is refunded.

This may be necessary, for example, if a customer has ordered three items but returns only one of them.

Order:

Product A: CHF 40.00
Product B: CHF 60.00
Product C: CHF 30.00

Total:
CHF 130.00

Product C is refunded:
CHF 30.00

Therefore, the order was only partially and not fully refunded.

Refund based on product quantity #

WooCommerce displays the individual order items when initiating a refund.

When you issue a refund for a product, you can enter the corresponding quantity for that item.

WooCommerce calculates the corresponding refund amount from this.

This is particularly helpful when only individual items of a larger order are affected.

Example: The customer purchased three identical products and is returning one of them. For the refund of this product, you enter a quantity of 1 instead of refunding the entire order.

Shipping costs can also be included #

A refund does not necessarily have to concern exclusively product items.

If shipping costs are also to be refunded in your specific case, you can include the corresponding amount in the refund.

Whether and to what extent shipping costs must be refunded depends on your specific business case and the legal or contractual requirements applicable to you.

Note: WooCommerce provides the technical capability. It does not decide whether you legally have to refund the product price, shipping costs, or other amounts in a specific case.

What happens to taxes? #

When refunding order items, WooCommerce can also take the corresponding tax amounts into account.

Therefore, before processing the refund, check the entire displayed refund amount and not just the product price.

The tax treatment of a refund depends on your shop configuration and the tax rules applicable to your business.

We cover the technical setup of WooCommerce taxes in the article Properly setting up taxes and VAT in WooCommerce.

Automatic and manual refund #

WooCommerce distinguishes between refunds in terms of automatic and manual Processing.

The difference is crucial.

ArtWhat is happening?
Automatic refundWooCommerce submits the refund to the payment gateway via a compatible payment extension.
Manual refundWooCommerce records the refund in the order. You have to refund the money to the customer yourself via the payment method used.

Automatic refund via the payment provider #

If the payment extension being used supports automatic refunds, a corresponding button will appear during the refund process.

The exact designation depends on the payment service provider or plugin.

For example, the general meaning there could be:

Refund via [Payment Provider]

If you use this function and the refund is successfully processed, the payment extension submits the transaction to the payment provider.

The refund will then be made via the original payment method or in accordance with the rules of the provider used.

Important: An automatic refund only works if the payment extension used supports this function and the communication with the payment provider works.

Manual refund in WooCommerce #

During a manual refund, WooCommerce merely records that a specific amount has been refunded.

WooCommerce does this no actual money transfer out.

You must carry out the refund yourself via the original or otherwise agreed payment method.

For example:

Customer paid via bank transfer
↓
Record refund in WooCommerce
↓
Refund the amount manually via bank account

Or with a payment provider whose WooCommerce integration does not support automatic refunds:

Process refund in WooCommerce
↓
Log in to the payment provider
↓
Execute the refund there

Very important: When you click „Refund manually“, the money is not yet with the customer. WooCommerce merely documents the refund within the order with this action.

Do not refund twice #

Especially with manual refunds, you have to work carefully.

If you have already refunded the amount directly with the payment provider and then trigger another automatic refund from WooCommerce, there is a risk of a double refund.

Therefore, check before every refund:

  • Has money already been refunded?
  • If yes: by what payment method?
  • Is the refund already recorded in WooCommerce?
  • Does the payment extension used support automatic refunds?

Order notes and transaction information can help you understand the previous process.

What happens during a full refund? #

When the entire order value has been refunded via the WooCommerce refund function, the order receives the status Refunded.

The individual refunded items and amounts will be marked accordingly in the order.

This makes it traceable in WooCommerce that the order has been fully refunded.

However, in the case of a manual refund, the following still applies: The status alone does not prove that the money has actually reached the customer.

What happens during a partial refund? #

If only a part of the order value is refunded, the order does not automatically receive the status Refunded.

The refund will be documented within the order, and the affected items or amounts will be displayed accordingly.

The previous order status can remain unchanged.

This makes sense because a partially refunded order is not the same as a fully refunded order.

Increase inventory again in case of a refund #

When creating a refund, WooCommerce can offer an option to add the refunded items back to stock.

You should only do this if the goods can actually be resold or if the inventory is to be increased for another comprehensible reason.

Example: A customer returns unopened goods, and you put them back into saleable inventory. Then, restocking the inventory can make sense.

If a returned product is damaged and no longer resellable, on the other hand, you should not simply log it back in as available inventory.

You can find more about inventory management in the article Manage inventory, SKU, and delivery status in WooCommerce.

Refunds cannot simply be undone #

Therefore, treat the refund function with the same care as a payment.

A refund successfully executed via a payment provider is an actual financial transaction. Deleting an order note or changing the WooCommerce order status at a later time does not automatically retrieve this money.

Check amount, products, and payment method therefore before processing the refund.

What should you check before a refund? #

First open the order and check the actual process.

Of particular importance are:

  • correct order number
  • Customer
  • Order Status
  • original order value
  • payment method used
  • pre-existing refunds
  • products and quantities to be refunded
  • amount to be refunded
  • shipping and taxes if applicable
  • Ask whether the inventory level should be increased again

In the case of an automatic refund, you should also make sure that you are using the correct payment extension and the correct process.

Example: Refund complete order #

A customer has fully paid for the following order:

Product:
CHF 90.00

Shipping:
CHF 9.00

Total:
CHF 99.00

If the entire order including shipping is to be refunded, you check the corresponding product quantities and amounts as well as the shipping to be taken into account in the refund view.

If the payment extension you are using supports automatic refunds, you can initiate the refund through it.

Otherwise, you can manually process the refund in WooCommerce and issue the CHF 99.00 refund yourself via the corresponding payment method.

Example: Refund only one product #

A customer has ordered two products:

Product A:
CHF 80.00

Product B:
CHF 40.00

Total:
CHF 120.00

Only product B is to be refunded.

Therefore, you enter the corresponding refund quantity for Product B. WooCommerce uses this to calculate the corresponding refund amount.

After the refund, the order remains a partially refunded order. It will not be set to the „Refunded“ status automatically just because of this.

Example: Order has not been paid for yet #

An order of CHF 75.00 is still pending Payment pending. The customer informs you that they no longer want the order.

If indeed no payment has been made, there is nothing to refund either.

You can cancel the order accordingly.

Order:
CHF 75.00

Paid:
CHF 0.00

Refund:
CHF 0.00

Order status:
Cancelled

Precisely for this reason, it is important to check the actual payment status before taking any action.

Check order notes after refund #

WooCommerce logs refund processes in the order.

Payment extensions can also store additional information there.

Therefore, after an automatic refund, you should check the order notes to see if the process was successfully confirmed.

In case of ambiguity, you should also check the transaction with the payment service provider used.

Note: The order notes help you with traceability. However, in the case of an automatic refund, successful processing by the payment service provider remains crucial for the actual movement of money.

Why is an automatic refund not appearing? #

If WooCommerce only offers a manual refund, this may be because the payment method or payment extension being used does not support automatic refunds through WooCommerce.

An erroneous or incomplete connection to the payment provider can also cause an automatic refund not to work as expected.

In this case, check the documentation of the payment extension actually used.

We cover the basic setup of the payment methods in the article Setting up and managing payment methods in WooCommerce.

Refund failed – what now? #

If an automatic refund results in an error message, you should not immediately repeat the process multiple times.

First, check whether a refund may have already been created or processed by the payment provider.

Check the order notes afterwards and – if available – the transaction information or logs of the payment extension.

How to prevent accidentally refunding the same payment multiple times.

We will cover technical troubleshooting in more detail later in the article. Systematically finding WooCommerce issues: status, logs, and error diagnostics.

A refund is not the same as a return #

In this area, WooCommerce primarily manages the order and the financial refund.

The actual product return process – for example, when a customer returns a package, whether the goods have arrived, and whether they are still sellable – is an additional operational procedure.

Therefore, clicking on „Refund“ does not automatically mean that the physical goods have already arrived back at your location.

When you process a refund and how you handle product returns organizationally depends on your business process and the rules that apply to you.

WooCommerce does not decide on your refund claim #

WooCommerce provides the technical features for cancellations and refunds.

However, the system does not decide whether a customer is entitled to a refund in a specific case, which deadlines apply, or which costs must be reimbursed.

These questions depend, among other things, on the country, your company, your contract terms, and applicable legal regulations.

Therefore: Only use the WooCommerce function once it has been determined which amount is actually to be refunded in the specific case. This article explains the technical operation of WooCommerce and does not constitute legal or tax advice.

The most important check at the end #

After a refund, you shouldn't just check whether a red refund amount appears in WooCommerce.

Check this too:

  • Was the correct amount refunded?
  • Was it a full or partial refund?
  • Has the transaction been confirmed by the payment provider in the event of an automatic refund?
  • Was the money actually refunded separately in the case of a manual refund?
  • Is the inventory correct?
  • Is the order status plausible?
  • Are the order notes traceable?

Only then is the process cleanly documented from a technical perspective.

What's next? #

With that, we have covered the most important processes surrounding WooCommerce orders: managing orders, understanding order statuses, editing orders, and processing refunds.

Next, we will move on to another important area of the shop. In the article Creating coupons and discount codes in WooCommerce Let's explain how you set up discounts and determine which products, customers, or order values a voucher may be used for.

Summary #

Cancellation and refund are not the same thing. A cancellation terminates the further execution of an order. A refund returns an amount already paid in full or in part.

WooCommerce supports full and partial refunds. In a automatic refund can a compatible payment extension transmit the refund directly to the payment provider.

At a manual refund WooCommerce merely documents the process within the order. You have to refund the money to the customer yourself via the respective payment method.

Simply changing the order status to „Cancelled“ or „Refunded“ does not trigger an automatic money transfer.

Therefore, check the amount, the affected products, the payment method, the inventory, and the actual transaction with the payment service provider before and after each refund.

Last updated August 31, 2026
Was this article helpful?
Cookie Consent with Real Cookie Banner