Skip to content

How to Configure WooCommerce Subscription Payment Retries

Turn on WooCommerce Subscriptions automatic payment retries, understand the default retry rules, and troubleshoot retries that don’t run.

WooCommerce Subscriptions can retry failed renewal payments for you, but it doesn’t until you turn it on. This guide covers how to enable automatic payment retries, what the default retry rules do, which gateways they work with, and what to check when retries don’t run.

Turn on automatic retries

The Failed Recurring Payment Retry System is off by default. To enable it:

  1. Go to WooCommerce > Settings > Subscriptions.
  2. Scroll to the Payment recovery section.
  3. Tick Enable automatic retry of failed recurring payments.
  4. Save changes.

From then on, retries apply to renewals that meet two conditions: the subscription uses automatic recurring payments, and its gateway doesn’t control the billing schedule itself. WooCommerce gives PayPal Standard as an example of a gateway that doesn’t allow these retries, and notes that the retry system doesn’t trigger for SEPA payments. Manual renewals are never retried, because the customer pays each renewal themselves.

What the default retry rules do

Each failed attempt is matched to a retry rule. A rule sets the wait before the next attempt, which emails go out, and what status the order and subscription have in the meantime. The defaults are five rules over about seven days:

RuleWaitCustomer emailStore owner email
112 hoursNonePayment Retry
212 hoursCustomer Payment RetryPayment Retry
324 hoursNonePayment Retry
448 hoursCustomer Payment RetryPayment Retry
572 hoursCustomer Payment RetryPayment Retry

Under every default rule, the renewal order is set to Pending and the subscription to On hold while waiting. Emails go out only if they’re enabled, and they’re sent when an attempt fails, not when the retry runs. WooCommerce deliberately skips the customer email after the first failure, because the 12-hour retry is meant to clear up short-lived problems without bothering anyone.

If the fifth retry fails, the order is marked Failed and the customer gets the Customer Renewal Invoice email, if it’s enabled. From there the normal failed-renewal process applies.

Set up the retry emails

The retry emails are standard WooCommerce emails, so you enable and edit them in WooCommerce > Settings > Emails like any other. Check three of them:

  • Customer Payment Retry tells the customer the payment failed and when it will be retried. By default it includes a link to pay the order now, which is the quickest fix for an expired card.
  • Payment Retry notifies store managers of each failure and scheduled retry.
  • Customer Renewal Invoice goes out when retries are exhausted, asking the customer to log in and pay.

The default wording is generic. Customers act faster when the email names the product, says plainly what happens if they don’t pay, and links straight to the order.

Change the retry schedule

There isn’t a settings screen for retry intervals. Developers can replace the default rules with the wcs_default_retry_rules filter, as described in WooCommerce’s developer guide. If someone has already done that on your store, your schedule won’t match the table above.

When you change the rules, think about the failure, not just the timing. Retrying a few days apart gives low-balance customers a chance to get paid. Retrying an expired card more often doesn’t help at all.

Watch retries as they happen

  • On the subscription: Edit Subscription shows a Renewal Payment Retry date in the schedule box while a retry is pending.
  • On the order: renewal orders with retries have an Automatic Failed Payment Retries box near the bottom of the edit screen, listing each attempt.
  • Across the store: the Failed Payment Retry report shows revenue recovered by retries and the average number of attempts before success.

Retry a payment manually

To charge a failed renewal right away, open the order, choose Retry Renewal Payment from the order actions, and save. WooCommerce shows that action only when the order is a renewal with a total above zero and a payment method set, the subscription uses automatic payments, the gateway supports payment date changes, and the order is Pending, Failed, or in the status set by the last retry rule.

Troubleshooting: retries that don’t happen

SymptomCheck
No retries at allIs the setting enabled? Is the subscription on automatic renewal? Does the gateway control its own schedule, or is it a SEPA payment?
A retry was scheduled but never ranRetries run as the woocommerce_scheduled_subscription_payment_retry scheduled action. Look for past-due or failed actions in WooCommerce > Status > Scheduled Actions, which can point to WP-Cron problems.
The retry was cancelledA pending retry is cancelled if the order no longer needs payment, or if someone changed the order or subscription to a status the rule didn’t set. Editing statuses by hand during a retry can stop it.
The retry date looks stuck or overdueOpen the latest renewal order and review the retry box and order notes before changing anything. WooCommerce advises against editing statuses just to make the Next Payment date reappear.
Every retry fails the same wayThe cause isn’t temporary. Contact the customer for a new payment method, or check your gateway for an authentication or configuration error.

Your gateway changes the picture

Retry support, payment method changes, and authentication handling all depend on the gateway plugin and its version. Some gateways and payment processors run their own retries or card-updater services. Those are gateway features, not WooCommerce Subscriptions features. Check WooCommerce’s subscription payment gateways list and your gateway’s own documentation before assuming a feature is available.

One more thing about billing dates

By default, the next payment date is calculated from when the retry succeeds, not the original renewal date. A monthly renewal due on March 1 that’s collected on March 3 next bills on April 3. Synchronized subscriptions keep their aligned date. If your billing dates must stay fixed, WooCommerce documents a plugin and a filter for that.

Retries are only one part of recovering revenue. For the rest, including customer communication and what to measure, see our guide to WooCommerce failed payment recovery.