Black Friday sale on now! Save 40% on themes and extensions in the WooCommerce Marketplace. 💰📈🎉 Shop the sale

Understanding and troubleshooting failed orders

When an order fails on your site, it can be frustrating and confusing for both you and your customer. Why didn’t it go through? Is there something wrong with your store? Did the customer fill something out incorrectly? What steps should you take next?

We’re going to walk you through some of the most common payment errors, why they occur, and how to troubleshoot each one

How to find out why a payment failed in WooCommerce

↑ Back to top

So how do you know if an order failed? A customer might reach out to you and let you know that they received an error message when checking out. You might see a red “Failed” warning in your order dashboard, or you might receive an email letting you know an order failed.

list of orders, including a failed order

Your first step is to find out the reason that the payment didn’t go through. To do so:

  1. Go to WooCommerce → Orders in the WordPress dashboard (WP Admin). 
  2. Find the order that failed. There will be a red “Failed” message next to it, or you can search by customer name or order number. Click the order number to find more information.
  3. In the right hand column, you’ll see a box titled Order Notes with a full list of order details. There, you’ll see the message, “Order status changed from Pending payment to Failed” along with a separate note listing the reason.
order note showing a declined card and failed order

Common reasons for failed orders and how to troubleshoot them

↑ Back to top

Let’s explore some of the most common errors you might see in Order Notes or on the front end of your site. Note that the exact error message that you see will depend on the payment gateway you’re using. Order notes may also show an error code specific to your gateway that you can use for research or when speaking to customer support.

The customer’s card was declined

What error message will you see?

The error message will say something like, “The card was declined.” You may receive more details about what went wrong, such as an invalid CVV code or exceeded transaction limit.

What causes this error?

There are a ton of reasons that a card could be declined: The customer’s bank account may have insufficient funds. Their card may be expired. Their card may have spending limits that they’ve exceeded. They may have entered their information incorrectly.

What steps should you take to resolve the error?

If you sell subscriptions, WooCommerce Subscriptions will automatically try the card again several times before changing the status to On Hold. This gives the customer ample time to add more funds to their bank account. 

When purchasing any kind of product, customers will see an error message on the checkout page, giving them the opportunity to input their information again or update the credit card on their account.

If a subscription renewal fails, they’ll receive an email notifying them that their payment didn’t go through. 

For single-purchase products, it’s probably not feasible to contact each person and ask them to try their purchase again. But, if you have an established relationship with the customer, you may want to reach out and provide some assistance. Even with email notifications and error messages, not everyone realizes that their order didn’t go through.

There’s an authentication issue

What error message will you see?

The error message will say something like, “Authentication required” or “The request could not be authorized.”

What causes this error?

This typically occurs when your site is having trouble connecting to your payment gateway. Your account information (like username and password) may be incorrect, for example. 

Square connection settings
WooCommerce connection options for the Square payment gateway

What steps should you take to resolve the error?

Start by double-checking the payment gateway settings in WooCommerce. Confirm that your API key is working and that your username and password are correct. If this doesn’t fix the issue, try disconnecting from your payment gateway completely, then reconnecting. If necessary, reach out to your provider’s support team.

A duplicate transaction was submitted

What error message will you see?

The error message will say something like, “A duplicate transaction has been submitted.”

What causes this error?

This error occurs when multiple transactions with the same information (credit card number, name, address, etc.) are placed within a few minutes of each other. This can happen if someone tries to place the same order several times in a short time period — a potential indicator of fraud.

What steps should you take to resolve the error?

If a legitimate customer reaches out after receiving an error message, encourage them to try again in a few minutes. Perhaps they put in their CVV code incorrectly and tried to fix it, inadvertently setting off the duplicate order filter.

If you’re seeing these types of errors over and over again from the same person, it could be fraud. You may want to block their IP address or username with a firewall plugin or set up an anti-fraud extension. The good news is that your payment gateway has already stepped in to protect you!

Your API key is expired

What error message will you see?

The error message will say something like, “API key expired.”

What causes this error?

API keys are used to connect your payment gateway to your WooCommerce store. Typically, you enter them in the payment gateway settings in your WordPress dashboard. This error message can occur if your API keys are entered incorrectly or if your account has been disconnected.

What steps should you take to resolve the error?

Log into your payment gateway and obtain your new API keys — each provider should have documentation on finding these. Then, update them in your WooCommerce settings.

There’s a site issue

What error message will you see?

The error message will vary widely. Search for the error code from your order notes using your payment gateway’s documentation — this will help you determine if the problem is with your site.

What causes this error?

Typically, site errors are caused by outdated software (like WordPress core, themes, and plugins), server issues, or plugin conflicts.

What steps should you take to resolve the error?

Here are a few great steps to take when troubleshooting. Between each step, test your checkout process to see if the error has resolved before trying the next one.

  1. Start by updating WordPress, along with all of your themes and extensions.
  2. Switch to a default theme like Storefront or Twenty Twenty-One.
  3. Temporarily deactivate all of your extensions, other than WooCommerce and your payment gateway.
  4. Check your WooCommerce system status for errors and troubleshoot any that arise.
  5. Check your WordPress site health for any potential problems and fix any that you find.
WordPress site health dashboard

If none of those steps fix the problem, reach out to one of our Happiness Engineers for support.

How to prevent failed payments

↑ Back to top

Of course, there is no way to prevent all failed payments, but ideally, you’d like as few as possible. Here are a few steps you can take:

1. Make it simple for customers to update credit card information

Ensure that customers can update the information on their account if their credit card is expired or canceled. They can do this by default with an account, so if you only have guest checkout enabled, you may want to also turn on account creation.

You can do this by going to WooCommerce → Settings → Accounts & Privacy, and checking the box next to “Allow customers to create an account during checkout.”

2. Set up email notifications for failed payments

While email notifications after a failed order don’t prevent it from happening, they can help you recover the sale. You can enable these with an extension like AutomateWoo, which allows you to set up emails when certain triggers occur — like a failed order status.  

Choose a time frame after a failed payment (like 30 minutes or two days) and add whatever content you’d like to the email. This is a great way to inform regular customers who may not know their subscription is on hold. And if you include a coupon code for 10% off or free shipping on their next box, shoppers who planned to cancel may update their payment information and remain a subscriber for years to come!

3. Regularly test your checkout process

Every once in a while, take the time to go through your entire checkout process and make sure that everything is working properly. This will help you catch potential problems before your customers encounter them.

4. Consistently update WordPress, extensions, and themes

By updating all of your software when the latest version is available, you can avoid potential conflicts and fix bugs before they become an issue. If you don’t want to worry about remembering, you can enable auto-updates in WordPress or use a plugin like Jetpack to automatically update everything.

risk levels of various orders

5. Implement fraud prevention methods

If you start seeing a lot of duplicate payment errors or other signs of fraudulent orders, put some security measures in place across your site. WooCommerce Anti-Fraud automatically detects and prevents order fraud, so they’re blocked right away.

6. Let customers save multiple credit cards

By allowing customers with accounts to have multiple cards on file, they can quickly switch to another if they’re having problems with one. No need to get off the couch and hunt for another option!

To do this, you’ll need to use a payment gateway that allows for saved cards, like WooCommerce Payments. Shoppers can then choose to save their payment information to their account for future use when checking out.

Don’t be thrown by failed orders

↑ Back to top

Failed orders are an unavoidable part of running an online store, but doing a little maintenance and understanding why they occur can help you prevent them and even turn them into sales.

Have questions about failed orders? Feel free to ask in the comments or reach out to our support team.

Create powerful marketing automations with AutomateWoo
Kathryn Marr Avatar

About

11 comments

  1. Hello Kathryn,
    Thanks for this detailed article.
    I have a question: Is it correct that the stock is not set up again, if an order failed?

    In my shop if an order is canceled the stock will be set up again, but if an order failed it does not.

    Best reagards,
    Christian

    Christian
    September 24, 2021
    • The stock is set up properly yes.
      Payment fails and then sometimes, the failed status auto changes to ORDER RECEIVED and we dispatch the products – which haven’t been paid for.

      I really need help with this please?
      Katherine

      katherinecheddar
      September 28, 2021
      • Hi Katherine,

        I’m sorry to hear you’re experiencing issues, and that you haven’t been able to receive help from Skyverge.

        I’d recommend getting in touch with our support team about this – it sounds like someone will need to take a closer look. You can raise a ticket here: https://woocommerce.com/my-account/create-a-ticket/

        Thanks,

        Laura

        Laura Nelson
        September 29, 2021
    • Hi Christian,

      Thanks for your question!

      Are you able to let me know what the status of the orders were before they failed? Any orders that go directly to ‘Failed’ should not reduce stock.

      It would also be useful to know if your version of WooCommerce is up to date, and if not, which version you are using.

      Thanks!

      Laura

      Laura Nelson
      September 30, 2021
  2. This problem started on July 28th and is still an issue today.
    We have updated our OPAYO Pi payment system although the problem can happen if a customer pays with PayPal too so I don;t think it’s that.
    I have talked to SKYVERGE who we bought the STATUSES plugin from but they think it’s not their problem.

    katherinecheddar
    September 28, 2021
  3. we have on order failed on our woocommerce site and the customer said that it was still charged on her card.

    Lara
    September 29, 2021
    • Hi Lara,

      I’m sorry to hear that! This sounds like something you’ll need to check with your payments provider, may I ask which extension you’re using to process payments (e.g. PayPal, Stripe, WooCommerce Payments, etc.)?

      I can then point you in the right direction to contact their support team.

      Thanks,

      Laura

      Laura Nelson
      September 29, 2021
  4. I had the same thing happen—order was marked as failed because the card was declined, but Stripe showed the payment went through successfully. It took us two weeks to realize the order had actually been completed and needed to be shipped. Now whenever an order is marked as failed, the first thing I do is check Stripe/PayPal to make sure it’s true.

    What happens more frequently, though, is that customers aren’t receiving their order confirmation emails a large percentage of the time, which is a big problem with downloadable products, since that’s how they get their download links. Is there an article somewhere to troubleshoot that? We’ve tried phone support with customers and it’s not ending up in a spam folder, it’s just not being received at all, and we don’t receive any errors on our end that we can use to debug.

    Lauren
    September 29, 2021
  5. we have a duplicate order issue. this is NOT FRAUD..they are legitimate customers who may have made a mistake…but they cannot place the order. They come back and still have an issue. I know when I MAKE A MISTAKE on a site I DON:T get this error..EVER.
    This has happened from the begining so I don’ think it as an update issue…but I would REALLY appreciate some help fixing this

    sean constable
    September 29, 2021

Stay up to date with WooCommerce emails

View our privacy policy. You can unsubscribe anytime.

Subscribing...

There was an error subscribing; please try again later.

Thanks for subscribing!
Emails will be sent to

You're already subscribed!
Emails are sent to

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.