A failed care-plan payment is almost never a client deciding to stop paying. It is an expired card, a replaced card, a bank that flagged a recurring charge, or a balance that was low on the third. Treating it as a debt-collection problem is how agencies turn a fixable billing hiccup into a lost client. Dunning is the process of recovering these payments, and it works best when it is boring, automatic and polite.
Involuntary versus voluntary churn
Not every lost subscription is the same. Voluntary churn is a client choosing to cancel. Involuntary churn is a payment that failed and never got resolved, so the subscription ended without anyone deciding it should.
You cannot fix voluntary churn with billing tactics. You can fix involuntary churn with them, and it is the cheaper problem to solve because the client still wants the service. Every recovered payment is revenue you already earned the right to keep, with no sales effort at all.
Here is a simple way to size it for your own book. Suppose you have 40 clients on plans averaging $150 a month, so $6,000 in monthly recurring revenue. If in a given month two payments fail and neither is recovered, you lose $300 of MRR, or $3,600 over a year, per two clients. Those numbers are illustrative, so substitute yours. The point is that a small failure count compounds if nobody follows up.
Let the payment system do the first round
Before writing a single email, check what your payment processor already does. Stripe's billing settings let you automatically retry failed payments on a schedule, and send the customer an email when a payment fails or a card is about to expire. Turn those on and review the wording, because these emails go out under your brand and are the first thing a client sees.
Retries matter because many failures are temporary. A card declined on the 1st may succeed on the 4th after a paycheque lands. A well-spaced retry schedule recovers some payments before any human is involved. The exact schedule depends on your processor's options, so read their current documentation instead of copying a number from a blog post, including this one.
If you are still setting up billing, how to productize WordPress care plans with Stripe covers the plan structure that makes this easier.
A sequence that does not feel like collections
Layer a short human-sounding sequence over the automatic retries. Four touches is enough for most agencies.
- Day 0, the day the payment fails. A short note: "Your care plan payment did not go through, probably an expired or replaced card. Here is a link to update it, it takes about a minute." No blame, no deadline yet.
- Day 3. A reminder that includes the same update link and confirms nothing has changed with their service.
- Day 7. A slightly firmer message: the payment is a week overdue, here is the link, and reply if there is a problem. This is the point where a real conversation can start, so invite one.
- Day 14. A clear notice of what happens next, for example that monitoring and updates will pause on a stated date if the payment is still outstanding.
Adjust the timing to your plan. What matters is that each message has one call to action, that link to the payment update page, and that the tone stays that of a colleague rather than a lender.
Wording that avoids awkwardness
The awkwardness in dunning comes from implied accusation. "Your payment failed" reads as your fault. "We could not process the charge" reads as a system event, which it usually is.
A few habits help:
- Say what probably happened, in neutral terms: expired card, new card number, bank flagged the charge.
- Make the fix one click, not a request to reply and wait for you.
- State that the service continues during the grace period. This removes panic.
- Never mention the amount owed in the subject line. Use "Quick note about your care plan payment".
- Sign with a real person's name, so a reply lands with someone who can help.
Test the flow yourself with a card set to fail. Read every email as the client would, on a phone. If it feels like something you would not want to receive, rewrite it.
Decide the pause policy in advance
The hard question is what happens at the end of the sequence. Agencies tend to go wrong in one of two directions: cutting service abruptly and damaging trust, or never pausing and funding free maintenance for months.
Decide the policy when you write the plan, not when a payment fails. A sensible middle path: keep everything running through a grace period of a couple of weeks, then pause the paid extras such as reports and priority support while continuing the essentials that protect the site, such as backups and security monitoring. Cancel only after a further notice period. Protecting the site protects you, since an unpatched site that you looked after last month is still your reputation.
Put the policy in your terms in plain language, and make sure the client agreed to it at signup. When you enforce it, you are following the agreement, and the message writes itself.
Reduce failures before they happen
Prevention is cheaper than recovery. Enable card-expiry reminders so clients update details before the charge. Offer annual billing for clients who prefer one invoice, which cuts the number of chances for a failure. Where the client's bank supports it, offer a bank debit option alongside cards, since bank details do not expire the way a card does. And keep billing contact details current: the person who signed the plan is often not the person who sees the failure email.
Also watch the pattern. If the same client fails three months running, that is a conversation about their situation, not another automated email.
Where this leaves you
Let the processor retry automatically, add a four-step human-sounding sequence on top, and decide the pause policy before you need it. Recovered payments are the cheapest revenue you will ever earn, and a polite process keeps the client relationship intact while you earn it. WPClientHub handles client billing through Stripe with a 0% platform fee on paid plans, so care-plan charges go through Stripe without us taking a cut. WPClientHub is free for 3 sites if you want to try this on a real client site: set up client billing.