WooCommerce Payment Failed: How to Recover the Order (Not Just Fix the Gateway)

Published October 28, 2026 by Alexey Babkin · 8 min read

An order in Failed status looks like a technical problem — but the expensive half of it is a lost customer. Official WooCommerce docs will help you fix the gateway; this guide covers the other half: how to get the money back, with the exact emails, links and timing that work.

What "Failed" actually means

WooCommerce marks an order Failed when payment was attempted and did not go through: the card was declined, the 3-D Secure window timed out, the gateway errored, or the session died mid-payment. The order exists, the customer wanted the product — only the money is missing. (For diagnosing gateway config issues, WooCommerce's own failed order guide is the right place; come back here when the gateway is fine but the payment still failed.)

The core insight: a failed payment is the rare funnel step where the customer has already converted — cart, checkout and intent all done. Recovering it is cheaper than any other revenue in your store.

Step 1: read the decline reason in the order notes

Open WooCommerce → Orders → the failed order and read the order notes — the gateway writes the decline code there. It tells you what to say next:

Decline reasonWhat it meansBest next move
Insufficient fundsTemporaryRetry in 1–2 days
Expired cardNew card neededRetry link + "update your card"
3DS/SCA timeoutPopup closedRetry link, mention the bank popup
Generic declineBank said no, reason hiddenRetry + offer another card
Gateway/timeout errorYour side or theirsRetry — often succeeds first try

Step 2: email the customer within 24 hours

Do not wait for the customer to notice — most never return on their own. A short email that links directly to payment for that order converts best. Copy-paste template:

Subject: Your payment didn't go through — order #1234

Hi {{customer.first_name}},

We tried to process your payment for order #1234, but the bank
declined it. Nothing is lost — you can complete the order in one click:

  [Complete my payment]

If your card has expired or you'd like to use another one, the
checkout page lets you pick a different payment method.

— {{shop.name}}

The link must be the order's own payment page (the WooCommerce order-pay endpoint with the order key). Anything that requires logging in and finding the order loses a large share of customers who would otherwise have paid.

Step 3: follow up on day 3 and day 7 — with an escalating discount

One email is a coin flip. A three-touch sequence over a week is the pattern that reliably recovers 15–30% of failed orders:

DayMessage
Day 1Friendly reminder + one-click retry link (no discount)
Day 3Second reminder + single-use 5% coupon
Day 7Last call + single-use 10% coupon with expiry

Why escalate: the first email tests whether the failure was temporary; the discount removes price friction only for the customers who hesitated. Lead with the link, not the coupon — and bind each coupon to one order with usage limit 1 so your coupon list stays clean.

Step 4: measure the recovery rate

Track four numbers per month:

Failed paymentsOrders → Failed
Recovered ordersFailed orders later marked Completed
Recovered revenueSum of those order totals
Recovery rateRecovered ÷ failed

Below 10%: your retry link is buried or timing is off. Above 30%: unusual — check whether your "failures" are mostly gateway glitches worth fixing at the source.

Do all of this automatically with PayRetry

Steps 2–4 are exactly what the free PayRetry plugin automates: it watches for failed orders, sends the day 1/3/7 reminders with one-click retry links, and creates the escalating single-use coupons on schedule. Editable template and schedule; runs on WP-Cron; works with every gateway that fails orders in WooCommerce.

Install PayRetry — free See the ROI calculator

FAQ

How long do I have to recover a failed order?

The first 24–48 hours convert best — the shopper still has the intent (and often the checkout tab). Day 1–7 is the practical window; after that most orders are cold.

Does a failed order reduce stock?

WooCommerce returns held stock to inventory when an order moves to Failed, so nothing is permanently reserved — but the revenue is gone until someone retries. (See WooCommerce's order status docs.)

Can the customer just pay later?

Yes — every unpaid order has an order-pay URL with an order key. Emailing that link is the whole trick: one click, no re-shopping.

Should I offer a discount right away?

No. Most declines are card problems, not price problems. Test with a plain retry first, then escalate: 5% on day 3, 10% on day 7, single-use, expiring.

Is this the same as abandoned cart recovery?

No — abandoned carts are shoppers who never checked out; failed payments are shoppers whose card was declined after checkout. Different emails, different links. The details are in our main recovery guide, and what to do about declines themselves.

Install PayRetry — free