A subscriber’s renewal didn’t go through, and you need to know why and how to collect it. This guide walks through one failed WooCommerce subscription renewal from start to finish. It assumes you use the WooCommerce Subscriptions extension with a gateway that supports automatic renewals.
1. Confirm it’s a renewal, not a checkout
A failed checkout happens while the customer is on your site, and they see the error. A failed recurring payment happens on a schedule with nobody watching. Open the order in WooCommerce > Orders. Renewal orders are labelled as renewals and link to their parent subscription. If the order is a first purchase, you’re looking at a checkout problem, and this guide isn’t the right one.
2. Read the renewal order notes
Order notes are the fastest way to find out what happened. Most gateways write the result of each payment attempt there, often with the bank’s decline reason. Exact wording varies by gateway, but the messages usually fall into these groups:
| Message is about | Likely cause | Next step |
|---|---|---|
| Insufficient funds, over limit | Temporary lack of funds | Retry in a few days or ask the customer to pay when ready |
| Expired card, invalid card number | Out-of-date payment details | Ask the customer for a new payment method |
| Do not honor, generic decline | Bank refused without a specific reason | Retry once later, then ask the customer to contact their bank or use another card |
| Authentication required | The bank wants the cardholder to confirm | Ask the customer to pay the order themselves so they can authenticate |
| API key, token, customer not found | Gateway setup or a missing saved payment method | Fix the gateway connection or have the customer re-enter their card |
| No payment note at all | The payment may never have been attempted | Go to step 3 |
If the notes are vague, open your gateway’s dashboard and find the charge by date and amount, or look in WooCommerce > Status > Logs. Many gateway plugins write detailed logs there when debug logging is enabled.
3. Check whether the renewal actually ran
Open the subscription in WooCommerce > Subscriptions and read its notes. WooCommerce describes a normal renewal like this: the subscription goes on hold, a renewal order is created, payment is attempted, and the subscription becomes active again. Where those notes stop tells you where the process broke.
Renewals are run by Action Scheduler. Go to WooCommerce > Status > Scheduled Actions and search for the subscription’s woocommerce_scheduled_subscription_payment action. Then look for:
- Past-due actions. A few are normal. Many that are more than a day old can point to a WP-Cron problem, which means renewals may not be running on time.
- Failed actions. WooCommerce Subscriptions treats an action that has run for more than five minutes as timed out and shows an admin notice about it. A timeout can happen before or after the payment was taken.
If the action failed before payment and your gateway shows no charge, WooCommerce’s guidance is to cancel only the stuck renewal order (not the subscription), set the subscription to Active, then choose Process renewal from the subscription actions. If payment was captured, update the renewal order to the right status instead, which also reactivates the subscription.
4. Check the payment method on the subscription
Look at the payment method shown on the subscription. A few situations cause renewals to fail or stop being charged automatically even when the customer’s card is fine:
- It says Manual Renewal. If the gateway plugin that handled the subscription was deactivated, subscriptions using it switch to manual renewal. Their renewal orders are created as Pending payment, with a note saying a manual renewal order is awaiting payment.
- The site is in staging mode. WooCommerce Subscriptions treats subscriptions as manual renewals on a site it thinks is a staging copy, to avoid duplicate charges. This often catches stores that moved hosts or changed their URL.
- The saved payment method was removed. Deleting a saved payment method that a subscription uses causes future renewals to fail. WooCommerce tries to prevent this, but tokens can still go missing, for example after switching gateway accounts.
5. Collect the payment
Once you know the cause, pick the matching fix:
- The card will work later: if automatic retries are enabled, check the Automatic Failed Payment Retries box on the order to see when the next one is due. You can also choose Retry Renewal Payment under Order actions, which is available for renewal orders with a saved payment method on a gateway that supports it. How to configure WooCommerce subscription payment retries.
- The customer needs to act: send them a link to pay the failed renewal order from My Account. When they pay, WooCommerce can save the new method for future renewals if the gateway supports payment method changes.
- The store needs fixing: repair the gateway connection or scheduled actions first, then process the renewal. Otherwise the next renewal will fail the same way.
If more than one renewal is failing
One failed renewal is usually about one customer. A cluster of failures on the same day is usually about your store: an expired API key, a gateway plugin update, a host migration that switched the site into staging mode, or WP-Cron stopping. Check those first before contacting customers one by one.
For the full picture, including why retries alone don’t recover every failure, read our guide to WooCommerce failed payments.
Sources: Subscription renewal process · Scheduled action errors · Manage payment methods · Failed Recurring Payment Retry System