When WooCommerce payments failed on your store, the first reaction is usually worrying: are customers being charged and not getting orders, or not being charged at all? The honest answer is that it depends, and that’s why the first job is to work out what kind of failure you’re dealing with before you change anything.
Payment problems usually fall into two groups. Either the payment was genuinely declined (a bank or card issue, which isn’t your site’s fault), or technical issue between your store and your payment provider. The steps below help you tell them apart and fix the second kind.
Start by finding out what actually happened
The message your customer sees (“Payment failed”) is usually vague on purpose. The real reason is almost always recorded somewhere else, check these three places in order:
- Order notes. Go to WooCommerce → Orders, open an order marked Failed or Pending payment, and read the notes on the right. They often name the exact problem.
- WooCommerce logs. Open WooCommerce → Status → Logs and choose the log file named after your payment gateway. If it’s empty, turn on logging in your gateway’s settings under WooCommerce → Settings → Payments, then try a test order. Logs grow quickly, so switch logging off again once you’ve finished troubleshooting.
- Your gateway’s dashboard. Stripe, PayPal and others show whether a payment was declined, flagged or fully successful, often with a reason code. WooCommerce’s own guide to troubleshooting payment errors covers this process in more detail.
One caution: logs can contain customer names, emails and order details. If you send them to a developer or support team, remove anything that isn’t needed.
1. The payment was genuinely declined
Many failures are simply declined cards: not enough funds, a wrong card number, a bank that flagged the purchase as unusual, or a card that doesn’t allow online or international payments. Your gateway dashboard will usually show a decline reason.
What to do: Nothing on your site needs fixing. Suggest the customer try another card or contact their bank. If declines suddenly spike, that’s worth investigating further.
2. The bank asked for extra confirmation and it didn’t complete
Some banks ask customers to confirm a payment through their banking app or a text code. This is often called 3D Secure or strong customer authentication, and it’s required in some regions. It can fail if the confirmation window is blocked, closed too early, or if your payment plugin is out of date and can’t handle it properly.
What to do: Update your gateway plugin, test with a card that triggers the extra step (your gateway usually lists test cards), and ask a customer who hit the problem which browser they were using.
3. You’re in the wrong mode, or the connection keys are off
API keys are like a password that connects your store with your payement gateway. If they’re wrong, expired, or your gateway is still in “test” mode on a live store, payments will fail, also moving the site to a new domain can break the connection.
What to do: Open your gateway under WooCommerce → Settings → Payments and confirm it’s enabled, in live mode, and using the right keys. If you recently changed domains or migrated hosts, try reconnecting the account.
4. The customer paid, but the order is stuck on “Pending payment”
Meanwhile the customer may have been charged. WooCommerce’s order troubleshooting guide covers this, including how some gateways need their webhook set up again.
A webhook is the gateway’s way of telling your store “this payment went through.”
What to do: Check your gateway’s dashboard for the payment. If it succeeded, update the order status manually. Then re-register the webhook in your gateway’s settings and make sure its address matches your current site. If it keeps happening, a security plugin or firewall may be blocking the gateway’s messages.
5. Currency or country doesn’t match what your gateway supports
Gateways don’t accept every currency or country, and your account might be limited to specific ones. If your store currency isn’t supported then payments can fail.
What to do: Compare your WooCommerce currency setting (under WooCommerce → Settings → General) with currencies your gateway account supports.
6. A plugin, theme or speed setting is interfering
The card form on checkout relies on scripts running in the visitor’s browser. A plugin conflict, a theme override or a speed plugin that delays or combines scripts can stop that form from working properly, so the payment never reaches the gateway.
What to do: Temporarily test with other plugins deactivated and a default theme, ideally on a staging site. Also make sure your checkout page is excluded from caching and script optimization.
7. Fraud filters are blocking real customers
Many gateways include automatic fraud checks, and sometimes they’re stricter than you’d like. If legitimate customers are being blocked, you may see payments marked as “blocked” or “high risk” in your gateway dashboard even though nothing is wrong with your site.
What to do: Review the rules in your gateway account and carefully loosen anything that’s too aggressive. If you’re unsure, ask your gateway’s support team what triggered it.
8. Your gateway account has a restriction
Newly created accounts, unfinished verification steps, spending limits or a paused account can all stop payments from going through.
What to do: Log in to your gateway and look for notices or tasks that need action. It’s a quick check, but it can easily get overlooked.
A few things to keep in mind while fixing it
Test on a staging site if you have one. Testing on a live store can create duplicate orders or confuse customers. And whenever someone says they were charged but have no order, check your gateway first, because that tells you whether you need to fix an order, refund them, or both.
When it’s time to get help
If you’re seeing charges without orders, the logs don’t point to anything clear, or the problem comes and goes, it’s usually worth asking for help sooner rather than later. Payment issues cost you sales and trust, and an experienced developer can often trace the cause far faster than trial and error.
If you’d like a second pair of eyes, that’s what our WooCommerce developer services is for. We’ll look at what’s actually happening and tell you what it’ll take to fix.
