WooCommerce 2.2 Automatic Refunds

WooCommerce 2.2 was released today! There's a lot of improvements like the new Simplify Commerce payment gateway and extra functionality in the REST API, but by far, the improvement I'm most excited about is the refunds. The order detail page itself has improved and we've added an API to allow payment gateways to automatically refund customers instead of forcing store owners to manually refund the customer through the payment gateway. This is a huge time saver for store owners and since it's my favorite feature for this release I wanted to make a video to show you exactly how the slick new refunds work.

Refunds Video

Refunds Step By Step

If you don't want to watch the video or you prefer reading I've outlined the steps below.

1) On the Order Detail page press the Refund button.

Order Screen

Part of the new order screen with the refund button on the bottom

2) Enter the amount you want to refund. You could refund the entire order or just part of it. Totally up to you. If you have a gateway that support automatic refunds you'll see two refund buttons. One is manual and the second will be the one you use to automatically refund the customer the money through the payment gateway.

Refund Screen

Once you click the button you can select how much you want to refund. You can refund a partial order if you want.

And that's it! Just two steps. Once you've refunded the customer the order page will update to show the refund.

Order Refunded

The order after the refund.

So as you can see it's quite easy to do. Hopefully you won't have too many refunds to make but when you do I hope they go much quicker. Happy refunding!

38 thoughts on “WooCommerce 2.2 Automatic Refunds

  1. […] WooCommerce 2.2 was released this week! We’ve already got a detailed review available to give you the scoop on the major changes, and Patrick Rauland wrote a bit more about refund support. […]

  2. Hi Patrick…great post. I was wondering if an automated email is sent out to the customer informing them of the refund. If so, where can I modify the automated email. Thanks.

    • If you look at the PayPal gateway built into WooCommerce you can see that we do send out a refund notice. If you checkout the successful_request method you’ll see we use the send_ipn_email_notification method to load the New Order Email with a custom subject: Payment for order %s refunded/reversed.

      If you want to change the subject or the content I’d use the gettext filter. This is a bit tricky for someone who isn’t familiar with code. Someone like Codeable would be able to help you get this done in an hour or two.

  3. Hi Patrick,

    we are playing with this too using the PIP-Extension. Emailcommunication and VAT-Calculations are not running very smoothly, yet. Where can I find more info about features, bugs and solutions regarding the refunding issues?

    Also: I cannot refund in status “completed” WC forces me to switch back to “pending”. Why?

  4. Do you know if this works with Account Fund plugin ? Lets say customer purchased an item using account fund and a refund is raised for that purchase. The fund will be returned to customer ?

    • Looking at that products changelog I don’t believe so. Keep in mind that you may not want to refund someone’s fund. Maybe you just want to refund the product they purchased along side account funds. Or maybe there was some kind of technical difficulty and you want to give them store credit for their hassle.

  5. Hi Patrick, great video! Do you know of a way to not include refunds in the sales total? Thanks!

  6. Hi,

    If i do a refund the tax is still the same on the sale, how do I get the total tax amount to change to the new total amount after a refund?

  7. Hi

    Refund button always comes up with ‘refund failed’, is there an error with this?


    • Hey Rakesh,

      I’ve seen this once – was it with PayPal? You can’t automatically refund an order that was made before 2.2. I’d reach out to WooCommerce support.

      • Hi Patrick

        Yes this was with Paypal and the order was only yesterday so nothing to do with being before 2.2. Hopefully they can fix this as it makes life easier.

  8. Yeah, I had this error too. Of course you can do it manually, but it would be nice if the automatic option worked all the time.

  9. Hi there,

    when I do a manual refund and go to ‘My Account’ page, there is not indication of the refund applied. It doesn’t update the total or add a note that a refund was done. I am looking for a way to show the client the refund has been added to the system.

    • Hi Theunis,

      When you refund an order it isn’t always a full refund. Could be a partial refund for being really late for example. For that reason WooCommerce doesn’t automatically change the order status. You have to manually change the order status to Refunded.

      On my My Account page I see the order plus the original amount. If you click into the order details you’ll see how much was refunded.

      I hope that helps! 🙂

  10. Hi Patrick,

    I’m now finding huge amounts showing under my “Amount Refunded” on my sales report. When I look into the actual orders for the day, no / only a few small refund amounts showing. The total on the report is more than 10x … Any advice on what to do / where to look?

    I am running a few plugins including Cost of Sales from Skyverge. Any known incompatibilities?

    • Hey Andrew,

      Something is definitely going on there. I would definitely reach out to WooThemes support for help with this.

      • I’m seeing the same issue with refunded amount in “Reports” being way more than what’s been actually refunded. Can’t figure out the cause at all.

        • @Brian – did you figure this out yet? I’m still looking into possible incompatibilities with plugins.

          • I figured “something” out. In this partocular website, one order got refunded a specific amount of the total that month. The total refunded $ amount in reports was exactly equal to the actual refunded amount on that one order multiplied by the number of items in the order :/

            I haven’t looked at it further since then but after figuring that out I racked my brain for why that was happening and came up with nothing.

          • @Brian,

            Thanks – that’
            s exactly what happened on my site. refunded a 10-item sale and the refund is shown as 10x the total. Bizarre. I’m going to disable plugins and functions.php stuff tonight and see if anything brings it back to normal. Let me know if you find out anything more.

  11. Great post.

    Any ideas where to change the recipient of the order refund email? So that the notification is send to a different person, not the admin of the website.

  12. Olivier Saunier

    +1 with Lenny Kipkem

    I receive the refunds but my customer don’t. I’d like to cusomize the recipient.

    Any idea?


  13. Thanks Patrick!

    Is there any way to add a button on customer’s My Account page so that they can request Refund easily?

    This will improve credibility of the store for sure.

  14. great post, thanks
    do you know how to disable refunding option for my shop managers?

  15. do you know what specific capabilities (or somewhere to find it) allow a user role to issue refunds so I can limit a user role thanks.

  16. Hi, Patrick, why i cannot refund orders via Paypal? There was a pop up saying “Security headers are not valid”.

    • I’m also getting the “Security headers are not valid” when trying to refund in woocommerce. Payments are made through paypal ok… did you find out Serena why this happened?

      • When we try to make a refund via woocommerce through paypal, it says ” security header not valid” , we already have API credentials fed into our woocommerce, can you please explain this.

        Please tell me how did you solve this issue?

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.