When WooCommerce shows an order as pending after a customer's card has been charged, something broke in the communication between your payment gateway and your store. We find the break and recover the orders.
Don't manually refund yet. In most cases stuck orders are recoverable β customers can get their order fulfilled without a refund or a repeat payment. Contact us first.
No fix? You pay nothing.
Pending orders don't mean the payment failed. They mean WooCommerce never received confirmation that the payment succeeded. Here's why.
When a payment goes through, the gateway (Stripe, PayPal, etc.) sends a webhook β a small HTTP request β to your WooCommerce store saying "payment confirmed". If that webhook doesn't arrive, WooCommerce has no idea the payment succeeded.
Your gateway charges the card successfully and tries to notify WooCommerce. But if the URL has changed, SSL has expired, or the server rejects the request β the gateway logs a delivery failure, your store stays silent, and the order never moves.
Because the payment actually went through, the data is there. Most gateways allow you to replay failed webhooks β once the underlying issue is fixed, we can trigger a replay and complete all the stuck orders at once.
Most pending order problems trace back to one of these four causes.
The most common cause. Your gateway still has the old domain in its webhook settings. Requests fire to a URL that no longer exists β they fail silently, and every order stays pending.
Most commonGateways refuse to send webhooks to endpoints without a valid SSL certificate. An expired cert means every webhook attempt fails with a connection error β even if your site looks fine in a browser.
High urgencyWordfence, iThemes Security, and similar plugins can incorrectly identify gateway webhook requests as suspicious and block them. The gateway sends the request β your store silently drops it.
CommonStripe and other gateways sign their webhook payloads. If the signing secret in WooCommerce doesn't match what the gateway is using β often after a plugin reinstall β every webhook gets rejected as invalid.
CommonWe fix the root cause first β then recover the stuck orders so customers get what they paid for.
Tell us how many orders are stuck and which gateway is involved. Don't manually update orders or issue refunds until we've assessed the situation β we may be able to recover everything automatically.
β± 5 minutesWe check webhook delivery logs, gateway settings, SSL status, and security plugin rules. We identify exactly where the communication is failing and fix the root cause so no new orders get stuck.
β± Same dayOnce the root cause is fixed we replay the failed webhooks, completing the stuck orders automatically. Confirmation emails fire, stock updates, customers get their orders β no refunds, no repeat payments.
β± Orders recovered same sessionA homeware retailer noticed customers emailing to say they'd been charged but hadn't received an order confirmation. Their WooCommerce dashboard showed 31 orders stuck on Pending Payment β stretching back four days.
A Wordfence update had added a new rate-limiting rule that incorrectly flagged Stripe's webhook delivery IPs. Every webhook attempt returned a 403 Forbidden. We whitelisted Stripe's IP ranges in Wordfence and replayed all 31 failed webhooks.
"We were about to start issuing refunds to 31 customers. StoreFixHQ recovered every single order instead. The customers got their confirmations and we kept the revenue."
β Homeware retailer, UKWe fix pending order issues caused by webhook and gateway communication failures. Here's the full scope.
Not sure if you're in scope? Send us a note β we'll tell you honestly before anything is paid.
If we can't resolve your pending orders, you pay nothing. We'll explain exactly what we found and why recovery isn't possible in your case β no vague answers, no partial charges.
You know the cost before we start. All prices exclude VAT.