Blog / Retention · February 5, 2026

What to Do When Subscription Payments Fail (Because They Will)

Let me tell you about the worst part of running a subscription business. It's not the tech setup, it's not the customer service, it's not even the competition. It's watching perfectly good subscriptio

P
Parvez
What to Do When Subscription Payments Fail (Because They Will)

Let me tell you about the worst part of running a subscription business. It’s not the tech setup, it’s not the customer service, it’s not even the competition. It’s watching perfectly good subscriptions die because someone’s credit card expired or their bank account was empty on renewal day.

Failed payment handling is unglamorous, annoying, and absolutely critical if you want to actually make money with WooCommerce subscriptions. Because here’s the thing that nobody tells you when you’re starting out: a huge chunk of your cancellations aren’t really cancellations. They’re just payment failures that you didn’t handle well.

I’m talking 20 to 40 percent of subscription cancellations happening because of payment problems, not because people actually wanted to quit. That’s real money walking out the door for completely fixable reasons.

Why Subscription Payments Actually Fail

Before you can fix failed payments, you gotta understand why they happen. And honestly, most of the reasons are pretty boring.

The number one culprit? Insufficient funds. Someone’s bank account doesn’t have enough money when your payment processor tries to charge them. Happens all the time, especially right after holidays or at the start of the month when rent is due.

Expired credit cards are responsible for maybe 15 percent of failures. People forget to update their payment info when they get a new card. Their old card expires, you try to charge it, payment fails. Simple as that.

Then you’ve got banks being paranoid. Their fraud detection systems flag your perfectly legitimate subscription payment as suspicious. Maybe the customer traveled to a different country. Maybe the bank just updated their security rules. Whatever the reason, they block the charge and your payment fails.

Sometimes it’s just technical glitches. Payment gateway goes down for maintenance. Internet connection hiccups. Random software bug. These are rare but they definitely happen.

And occasionally, people want to cancel but don’t know how, so they just remove their payment method or cancel their credit card. The payment fails, which accomplishes their goal of ending the subscription. Not ideal, but it happens.

How WPSubscription Handles This

Good news: WPSubscription has built-in retry logic. When a payment fails, it doesn’t just give up immediately. It’ll try a few times over the next week.

Here’s how it works. Payment fails. WPSubscription checks if retry rules are active. If they are, it schedules another attempt based on your retry settings. The subscription status changes to “on hold,” which means the customer loses access to whatever they’re subscribed to, but the subscription isn’t cancelled yet.

Then the system waits until the scheduled retry time. Could be 12 hours,it could be a day, it depends on your settings. When that time hits, it tries charging the payment method again. If it works, awesome, subscription reactivates automatically. If it fails again, move to the next retry.

This happens through all your retry attempts. By default, you get five tries spread over seven days. After the last one fails, the subscription goes into “failed” status, and the customer gets an invoice to pay manually if they want to keep their subscription alive.

Important caveat here: this only works for automatic renewal payments. If someone’s doing manual renewals, there’s no stored payment method to retry. And your payment gateway has to support automatic renewals and let WPSubscription control the timing. Some gateways like old school PayPal Standard, don’t play nice with retry systems.

Turning On the Retry System

Let me walk you through actually enabling this because it’s important to configure properly.

First, make sure you’ve got WPSubscription installed. You can grab it from wpsubsubscription, and it integrates seamlessly with WooCommerce to handle all your subscription needs, including failed payment retry logic.

Once installed, go to WooCommerce in your dashboard, then Settings, then look for the subscription settings area. There should be options for automatic retry functionality. Enable it.

Save. That’s it for basic setup. You’re now using the default retry schedule.

But the default schedule is kinda meh. First retry happens after 12 hours. Second retry after another 24 hours. Then the next three retries happen every 72 hours. The whole thing wraps up in seven days.

This works okay for monthly subscriptions, but what if you’re selling annual subscriptions? Seven days isn’t enough time. Or maybe you’ve got daily subscriptions and need to retry faster. You’ll probably want to customize this.

To change the retry schedule, you need to add some code to your theme’s functions file or use a plugin. The code uses a filter called wcs_default_retry_rules to override the default behavior.

You can spread retries over a month instead of a week. First retry after one day, second after three days, third after a week, and so on. Just adjust the intervals to match what makes sense for your business.

And please, test this stuff before you go live. Create subscriptions with cards that deliberately fail, then verify the retries happen when they’re supposed to.

Talking to Customers About Failed Payments

The retry system handles the technical side, but you still gotta communicate with your customers. How you talk to them about failed payments determines whether they fix the problem or just let the subscription die.

Send an email immediately when a payment fails. Don’t wait. The sooner they know, the sooner they can fix it.

Keep the tone friendly. “Update needed for your subscription” works way better than “PAYMENT FAILED” in the subject line. Nobody wants to feel like they’re in trouble.

Make it easy to fix. Include a direct link to where they can update their payment info. The more clicks you require, the less likely they’ll actually do it.

Tell them what happens next. Explain the retry schedule. Let them know they’ve got a week (or however long) before the subscription cancels. Transparency reduces panic.

Send reminders before each retry, not after. Give them a chance to fix the issue proactively rather than finding out another charge failed.

Your email sequence might look like: immediate notification when payment fails, a reminder three days later before the second retry, another reminder six days later before the final retry. Each email gets slightly more urgent but stays helpful.

Always include your support contact info. Some customers will have real issues that need human help. Make it easy for them to reach you.

And honestly, consider adding SMS notifications if you can. Text messages get read way more than emails. A quick “Hey, your subscription payment didn’t go through, please update your card” gets attention fast.

Getting Fancier With Failed Payments

Once the basic retry system is working, you can add some clever stuff to recover even more failed payments.

Backup Payment Methods

Ask customers for a backup payment method when they subscribe. If their primary card fails, automatically try the backup before even starting the retry process.

WooCommerce doesn’t do this natively, but Stripe has a feature for it. If you’ve got multiple payment methods saved for a customer, Stripe will automatically try the others when the first one fails. Happens instantly before WooCommerce even knows about the failure.

This recovers a ton of payments silently. The customer never even knows their primary card failed because the backup worked.

Smarter Retry Timing

Instead of fixed retry intervals, look at your data to find the best times to retry. Maybe you notice successful retries happen most often on Tuesdays and Thursdays. Schedule your retries to hit those days.

Or maybe payments succeed more often in the morning. Schedule retries for early hours.

You’ll need analytics and custom code to pull this off, but the extra successful retries make it worth the effort.

Different Messages Based on Retry Number

First failed payment gets a gentle reminder. Third failed payment gets urgency. The fifth failed payment leads to desperation.

Match your communication intensity to how close they are to cancellation. “Your payment needs attention” at first. “Action required to keep your subscription active” at attempt three. “Last chance before cancellation” at attempt five.

This graduated approach avoids alarming people when the problem might fix itself but creates appropriate urgency as the clock runs out.

Personal Touch for Big Spenders

Set up alerts for when high value customers have failed payments. Your average subscription might be 20 bucks but that person paying 500 a month deserves a phone call or personal email.

Create a workflow that notifies your team when payments over a certain amount fail. Someone reaches out directly to help resolve it. Personal service saves high value subscriptions that automated systems might lose.

Let People Change Their Billing Date

Some failures happen because of timing. Customer gets paid on the 15th but you charge on the 1st. Their account is empty when the payment processes.

Let customers pick their billing date to align with their cashflow. This prevents failures before they happen.

WooCommerce Subscriptions supports manual date changes. You could let customers choose their preferred day when signing up or allow changes after the fact.

Payment Gateway Quirks You Should Know

Different payment gateways handle failed payments differently and you need to work with their quirks.

Stripe Stuff

Stripe has its own retry logic that kicks in before WooCommerce even sees the failure. They call it Smart Retries and it analyzes each customer’s payment history to pick optimal retry times.

Only after Stripe’s retries fail does the failure hit WooCommerce and your retry rules take over. So you might have fewer failures to deal with than you expect.

Stripe also does automatic card updating. When a customer’s card expires, Stripe works with card networks to get the new card number automatically. Lots of renewals that should fail just work instead.

PayPal Headaches

If you’re using PayPal Subscriptions (the old way), PayPal controls retry timing. You can’t customize it. PayPal decides when and how often to retry and you just have to live with it.

The fix is to stop using PayPal Subscriptions and instead use PayPal Checkout with WooCommerce managing the subscription. This gives you full control over retry logic.

If you’re stuck with PayPal Subscriptions for some reason, focus on preventing failures rather than handling them. Get customers to maintain sufficient PayPal balance or link reliable funding sources.

Other Gateways

Most modern gateways work fine with WooCommerce’s retry system. They support automatic renewals, store payment methods securely, and let WooCommerce control retry timing.

Just test your specific gateway thoroughly. Run test subscriptions with failing cards. Make sure retries fire correctly and payments process when cards become valid again.

Some gateways need webhooks configured properly. If webhooks aren’t working, failed payments might not trigger retries at all. Check that.

Preventing Failures Before They Happen

Better than handling failed payments is not having them in the first place.

Send card expiration reminders. Email customers 30 days before their card expires. Remind them again at 15 days and seven days. Link directly to where they can update their payment info.

Offer multiple payment methods. Some people prefer PayPal. Others want Apple Pay or Google Pay. More options means less chance of all methods failing.

Let people prepay. Offer an option to prepay for multiple billing periods. Someone who prepays for a year won’t have any monthly failed payments to deal with.

Enable automatic card updating wherever possible. Stripe and some other gateways support automatically getting new card numbers when cards expire or get replaced. Turn this on.

Make updating payment info stupid easy. Big obvious “Update Payment Method” button in account dashboards, in emails, everywhere. The easier it is, the more likely they’ll do it.

Monitor proactively. Check for cards expiring soon, authorization failures, warning signs. Reach out before payments actually fail.

Using AutomateWoo for This

AutomateWoo is a plugin that can seriously upgrade your failed payment handling with WPSubscription.

Install it, then create a workflow with the trigger “Subscription Renewal Payment Failed.” This fires every time a payment fails, before retries start.

Add a wait action for 12 hours. Gives customers time to fix it themselves and gives Stripe’s automatic retries a chance.

After the wait, check if the subscription is still on hold. If it’s active again, end the workflow because the problem resolved itself. If it’s still on hold, continue.

Send an email explaining the failure and how to update payment info. Include subscription details and a direct link.

Create a second workflow for the second retry failure. More urgent email this time. “We tried again but your payment still isn’t working. Please update to avoid cancellation.”

Third workflow for third retry. Final warning. Make it clear this is their last chance.

You can also create workflows based on customer actions. When someone updates their payment method after a failure, send a thank you email or offer a small discount on their next renewal.

Measuring Success

You need to track specific numbers to know if your failed payment handling is working.

Calculate recovery rate. Successful retries divided by total failed payments. If you fail 100 payments and recover 60, that’s a 60 percent recovery rate.

Industry average is 40 to 70 percent. Aim for the high end with good failed payment handling.

Track which retry attempt usually succeeds. If most recoveries happen on the first retry, maybe you don’t need five attempts. If they’re spread out, keep all five.

Measure time to recovery. How long from initial failure to successful payment? Faster is better.

Monitor churn from failed payments. What percentage of failures never recover and lead to cancellations? This should go down as you improve your processes.

Calculate revenue saved. Multiply recovered payments by subscription value. This is money you would have lost without proper failed payment handling.

Survey customers who experienced and recovered from payment failures. Are they annoyed? Do they appreciate your helpful communication? Use this feedback to improve.

Mistakes People Make

Don’t give up after five days for annual subscriptions. They need more retry time than monthly subscriptions. Extend your retry period.

Don’t send aggressive threatening emails. “PAYMENT FAILED” and “ACCOUNT SUSPENDED” subject lines create anxiety and hurt your brand. Be helpful instead.

Don’t only use email. Many customers ignore email completely. Use SMS, in app notifications, account dashboard alerts to actually reach people.

Don’t hide the problem. Some businesses try to make failures invisible to avoid bothering customers. This backfires when subscriptions get cancelled without warning.

Don’t skip testing. Test with real payment failures before going live. A broken retry system is worse than no retry system.

Don’t treat everyone the same. Your reliable customer who’s never had a failure deserves different treatment than someone with recurring payment problems.

Don’t implement this without updating your terms of service. Explain what happens when payments fail, how many retries you attempt, when cancellations occur.

Some regions require specific notice periods before cancelling subscriptions for payment failure. In the EU, you might need 14 days notice. Check regulations for your markets.

Never email full card numbers or security codes. Always use secure encrypted methods for payment updates.

Be careful about automatically charging backup payment methods without explicit permission. Some places consider this unauthorized charging even if the customer provided the card.

Document everything. If a customer disputes a charge or cancellation, you’ll need records of retry attempts and all communication you sent.

Wrapping Up

Failed payment handling isn’t sexy but it’s crucial. With the right system, you can recover most failed payments and save thousands in lost revenue.

Start with WPSubscription’s built in retry system. You can grab it at https://wpsubscription.co/ and it gives you a solid foundation for handling failed payments automatically. Enable it, customize the schedule, add clear communication at each step.

Use plugins like AutomateWoo for complex workflows. Focus on preventing failures with card expiration reminders, multiple payment methods, and easy payment updates.

Most importantly, remember failed payments usually aren’t intentional cancellations. They’re technical problems with simple solutions. Treat customers with empathy, give clear instructions, and make fixing payment issues as painless as possible.

Do this well and you’ll save a ton of revenue while keeping customers happy. Not a bad combination.

The #1 Subscription Plugin for WooCommerce

Start Selling Subscriptions at Zero Cost.

Download, install, and start collecting recurring revenue from all around the world with WPSubscription.