How to Recover Failed Payments in WooCommerce (2026 Guide)

Published October 28, 2026 by Alexey Babkin, developer of PayRetry · 9 min read

A declined card does not have to mean a lost order. This guide explains why WooCommerce payments fail, how much each failure costs your store, and how to build a repeatable day 1 / day 3 / day 7 reminder flow that brings 15–30% of that revenue back — without writing a line of code.

Why WooCommerce payments fail

When a checkout ends with the order in Failed status, one of these usually happened:

Key insight: in almost every case the customer wanted to pay. The order already exists, the cart is already converted — all that is missing is one successful retry. That is a very different problem from an abandoned cart, and it deserves a different playbook.

How much does a failed payment actually cost?

Failed payments are invisible on your revenue dashboard: the order simply never completes. Multiply them out and it adds up fast. A store with 50 failed payments a month, an $80 average order value and a conservative 20% recovery rate:

—

Industry benchmarks put recurring-revenue leakage from failed payments around 9% of revenue — most of it recoverable with a reminder and a retry link.

Option 1: manual recovery (and why it doesn't scale)

The manual version looks like this:

  1. WooCommerce → Orders → filter by Failed.
  2. Open each order, find the customer's email, copy the payment link.
  3. Write a personal email, send it, remember to follow up tomorrow.
  4. Repeat for every failure, every week.

This works at two failures per week. At twenty, it quietly stops happening — which is exactly when the revenue loss starts to show.

Option 2: the automated day 1 / 3 / 7 recovery flow

Automation turns the manual playbook into a standing rule. The version that works best in practice:

DayMessage
Day 1Friendly reminder: “your payment didn't go through” + one-click retry link
Day 3Second reminder + small discount (e.g. 5%) to remove hesitation
Day 7Last call + bigger discount (e.g. 10%) to close the order

1. The retry link must be one click

The email has to link straight to the payment page for that order (the WooCommerce order-pay endpoint with the order key). Anything longer — “log in and find your order” — loses a large share of customers who would otherwise have paid.

2. Escalate the discount, don't lead with it

Lead with the retry link, not a coupon: most failures are card problems, not price problems. Introduce the discount only on the follow-ups, and escalate it. This keeps your average recovered order value high while still winning back the price-sensitive customers on day 7.

3. Use single-use, order-bound coupons

Generate the coupon automatically, tie it to one order, set usage limit 1, and let it expire. That prevents the classic mess of a shop full of open-ended 10% codes nobody remembers issuing.

What to write in the recovery email

Short beats clever. A template you can send today:

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}}

On day 3 and 7 add one line with the discount code and its expiry. That's the whole message: no design, no images, just a working link.

How to measure whether it works

Track four numbers per month:

MetricHow to get it
Failed paymentsWooCommerce → Orders → Failed
Recovered ordersFailed orders that later reached Completed
Recovered revenueSum of those orders' totals
Recovery rateRecovered ÷ failed

A recovery rate below 10% usually means the retry link is buried or the timing is off; above 30% is rare and usually means your “failures” are mostly gateway glitches worth investigating separately.

Do it in five minutes with PayRetry

All of the above is what the free PayRetry plugin does out of the box: it watches for failed WooCommerce orders, sends the day 1/3/7 reminders with one-click retry links, and creates the escalating single-use coupons automatically. Works with Stripe, PayPal, WooPayments and any other gateway that fails orders in WooCommerce.

Install PayRetry — free See the ROI calculator

FAQ

How do I recover a failed payment in WooCommerce?

Open the failed order, send the customer a direct payment link for that exact order (WooCommerce builds it automatically on the order-pay page), then follow up on days 3 and 7 with a small escalating discount. Automating that sequence is what a failed-payment recovery plugin does.

What's the difference between failed payment recovery and abandoned cart recovery?

Abandoned cart recovery targets shoppers who never reached checkout. Failed payment recovery targets customers who did everything right and whose card was declined at the last step — that order already exists in WooCommerce and usually needs only a retry. The two problems need different emails and different links; a plugin that handles both is the exception, not the rule.

What discount should I offer?

Start with none on day 1 (most declines are temporary), then escalate — a common pattern is 5% on day 3 and 10% on day 7, with usage limit 1 and a short expiry.

Will my customers get annoyed?

Three emails over a week for an order they wanted is a service, not spam — and the messages stop the moment the order completes or expires. Keep them plain-text short and include a working unsubscribe and your shop's physical address, as required by CAN-SPAM/GDPR.

Which gateways does this work with?

Any gateway that marks the order as Failed in WooCommerce: Stripe, PayPal, WooPayments, razorpay, mollie, and others. The retry link points at WooCommerce's own checkout for that order, so recovery does not depend on the gateway.

Is this the same as recovering abandoned carts?

No — see the question above. If you want both flows, run them side by side: they address different drop-off points in the funnel.

Install PayRetry — free