Specialist service
WooCommerce payment troubleshooting
Failed transactions, customers charged without an order, orders stuck in pending, 3D Secure loops, webhooks that never arrive. Payment problems live between WooCommerce, the gateway plugin and the payment provider — we trace the handoff and find where it breaks.
Typical problems
Where payments go wrong
Charged, but the order failed
The provider shows a successful payment; WooCommerce shows failed, pending or nothing.
“Payment failed” for valid cards
Declines that are not declines: configuration, currency, amount rounding or API errors.
Orders stuck in pending
The gateway's notification or webhook never reaches the store, or is rejected when it does.
3D Secure loops and abandoned challenges
Customers sent back to checkout after authentication, or stuck on the challenge.
Duplicate orders or charges
Double submissions, retried webhooks processed twice, race conditions on order updates.
Refunds and statuses out of sync
Refunds made in the provider dashboard not reflected in WooCommerce, or the reverse.
What we check
- The gateway's own log in WooCommerce → Status → Logs
- The provider's event and webhook delivery history for the affected payments
- Whether the callback URL is reachable: firewall, CDN/WAF rules, redirects, maintenance mode, basic auth
- Signature and secret validation on incoming notifications
- Order notes, status transitions and the hooks that run after payment
- PHP errors and scheduled actions at the moment of the callback
What you receive
- Which step of the handoff fails, with the evidence
- A list of affected orders to reconcile, when we can identify them
- The fix, and how to verify it with a real test transaction
- Recommendations to detect the problem early next time
Where the payment handoff breaks
A payment crosses at least four boundaries, and each fails differently:
- Browser → gateway. The payment form, its JavaScript and the 3D Secure challenge. Failures show up in the browser console and the Network panel, and often depend on the theme, a script optimiser or a consent banner.
- Gateway → store. The provider confirms the payment through a redirect and, more reliably, a server-to-server notification or webhook. If that request is blocked, redirected or rejected, the payment exists but the order never learns about it.
- Store processing. WooCommerce marks the order paid and runs everything hooked to that moment: stock, emails, integrations. A PHP error in any of those hooks can interrupt the update.
- After payment. Refunds, captures, subscription renewals and disputes, often processed later through scheduled actions.
The diagnosis identifies which boundary fails before anything is changed, so the fix does not create a second problem — such as orders marked paid that were never paid.
Technical resources
Payment guides
- WooCommerce / Payments WooCommerce payment problems Charged without an order, orders stuck in pending, failed payments, webhooks and 3D Secure.
- WooCommerce / Checkout WooCommerce checkout problems Checkout that keeps loading, Place Order that does nothing, errors on submit, guest checkout broken.
- WooCommerce / Integrations WooCommerce integration problems: REST API, webhooks and external systems REST API authentication, webhook deliveries, ERP/CRM syncs, timeouts and duplicated data.
FAQ
Frequently asked questions
Are you affiliated with Stripe, PayPal or Redsys?
No. WooRescue HQ is an independent engineering service and has no affiliation with any payment provider. We work with the gateway plugins and provider tools you already use.
Can you see card data?
No, and we never need it. Card data is handled by the payment provider. Never send card numbers or provider secret keys through the form.
Why does the order stay pending when the payment succeeded?
Usually because the provider's notification never reached the store or was rejected — a blocked URL, a redirect, a signature mismatch or a PHP error while processing it. The provider's webhook or notification log shows which.
$ describe the problem
Have a WooCommerce problem?Request a diagnosis.
Tell us what is failing, what changed recently and the business impact. We review every request and recommend the appropriate next step.
Never send passwords, API keys or card data through the form.