How to refund an order
Step-by-step instructions for issuing a full or partial refund to a customer in WooCommerce.
- Time
- 5 minutes
- Difficulty
- Beginner
- You’ll need
- WordPress admin access · A payment gateway that supports automatic refunds
Sometimes you need to return money to a customer — whether for a return, a mistake, or a goodwill gesture. WooCommerce has a built-in refund tool that works directly with most payment gateways, so you don't have to log in to Stripe or PayPal separately.
Quick summary
Go to the order, scroll to the items section, and click Refund. Enter the quantity or amount to refund, then click Refund $X via [your payment gateway] to send the money back automatically. The customer's original payment method is credited. Partial refunds are also supported.
What you'll need
- WordPress admin access
- A payment gateway that supports automatic refunds (Stripe, PayPal, and most major gateways do)
How to issue a refund
Open the order. Go to WooCommerce → Orders and click the order number.
Scroll down to the items list. Below the product details, you'll find a Refund button. Click it.
Choose what to refund. Type a quantity in the box next to each item you're refunding, and WooCommerce works out the amount for you. If you're not managing stock for a line, you can type an amount against that line instead of a quantity. The Refund amount total at the bottom then adds itself up — on a store that charges tax it is read-only, because refunds have to be entered line by line for the tax to be worked out correctly.
Check the "Restock refunded items" box if you want the product inventory to go back up. Tick this if the customer is returning physical goods.
Add a reason (optional). Type a short note in the Reason for refund (optional) field. WooCommerce warns that the refund reason is visible to the customer, so write it as something you're happy for them to read.
Click "Refund $X via [Gateway name]" (e.g., "Refund $20.00 via Stripe"). This sends the money back to the customer automatically. Do not click "Refund $X manually" unless your gateway doesn't support automatic refunds — that button only records the refund in WooCommerce without actually moving money.
Refund sent
WooCommerce records the refund on the order. Look in the Order notes for a "Successfully refunded" message to confirm the gateway accepted it. How long the money takes to reach the customer is up to their bank or card issuer — see the timings below.
Partial refunds
You can refund just part of an order. For example, if a customer ordered three items and one was damaged, you can refund only that item.
When you click Refund on the order, enter the quantity (or amount) for only the affected items. Leave the rest at zero. WooCommerce calculates the refund amount automatically.
Partial refunds don't change the order status
After a partial refund, the order stays in its current status (e.g., Processing or Completed). Only a full refund changes the status to "Refunded." This is normal.
Manual refunds
If your payment gateway doesn't support automatic refunds — or if you're refunding via a method outside WooCommerce (like a bank transfer) — click Refund $X manually. This records the refund in your WooCommerce records but does not move any money. You'll need to issue the payment yourself outside WooCommerce.
The same goes for order statuses: switching an order to Cancelled or Refunded by hand does not send the customer any money. Only the Refund button does that.
Refund timeline
| Payment method | Typical refund time |
|---|---|
| Credit / debit card (Stripe) | Around 5–10 business days to show as a credit, depending on the bank |
| PayPal | Depends how the customer paid: a PayPal balance refund lands the same day, bank and debit-card refunds usually complete within 5 business days, and credit-card refunds can take 1–2 billing cycles |
| Bank transfer (BACS) | You manually transfer — timing is up to you |
| Cash on delivery | You handle this in person |
A refund sent quickly may look like a reversal
If you refund very soon after the original charge, Stripe may process it as a reversal instead. The original charge simply disappears from the customer's statement rather than a separate credit appearing. Nothing has gone wrong.
Common questions
Can I refund more than the original order amount?
No. The refund panel shows a Total available to refund figure, and WooCommerce rejects anything above it with an "Invalid refund amount" error. If you want to give a customer extra credit, you'd need to use a coupon or issue a separate payment.
Does the customer get an email when I refund them?
Yes. WooCommerce has a Refunded order email, listed under WooCommerce → Settings → Emails, where you can switch it on or off and edit the wording. One template covers both cases: if you refunded the whole order the email says the order has been refunded, and if you refunded part of it the email refers to a "partial refund."
What happens to my Stripe/PayPal fees when I refund?
Usually you don't get them back. WooCommerce's own documentation says transaction fees charged by the payment gateway "will usually be lost and not refunded," and Stripe states plainly that its processing fees from the original transaction aren't returned. Check your processor's current fee policy — Stripe's pricing and fees page for Stripe — since the details vary by country and by how you're billed.
I don't see a 'Refund via Stripe' button — only 'Refund manually'. Why?
There are a few common reasons: the Stripe extension isn't connected to your Stripe account properly, or the order was paid using a method that doesn't support automated refunds. It also happens when a payment was only authorized and never captured — Stripe can't refund that, because no money has changed hands yet. Cancel the authorization instead. Contact us and we can investigate.
Related guides
- Understanding orders
- Order statuses explained
- How to cancel an order
- Payment methods explained
- Troubleshooting payment problems
Need a hand?
Learn more
Last updated