Skip to content

WooCommerce Subscription Payment Failed? Here’s How to Fix It

A WooCommerce subscription renewal failed. Check the renewal order, gateway error, scheduled action, and payment method to find the cause and fix it.

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.

Before you start: don’t charge the customer again until you’ve confirmed no money was captured. Some failures happen after the payment succeeds, and a second charge creates a duplicate.

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 aboutLikely causeNext step
Insufficient funds, over limitTemporary lack of fundsRetry in a few days or ask the customer to pay when ready
Expired card, invalid card numberOut-of-date payment detailsAsk the customer for a new payment method
Do not honor, generic declineBank refused without a specific reasonRetry once later, then ask the customer to contact their bank or use another card
Authentication requiredThe bank wants the cardholder to confirmAsk the customer to pay the order themselves so they can authenticate
API key, token, customer not foundGateway setup or a missing saved payment methodFix the gateway connection or have the customer re-enter their card
No payment note at allThe payment may never have been attemptedGo 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.