Skip to content

Recover

Win back payments that failed for reasons nobody intended

Involuntary churn is customers leaving by accident. It is the cheapest revenue you will ever get back, and the easiest to ignore.

What is Recover?

Recover is Bastle's dunning system: it detects failed and at-risk payments, runs a sequence you control across email, SMS and an in-app banner, and points the customer at a hosted card-update page that writes the new card straight back to your payment processor. It handles three distinct situations separately — payments that have already failed, cards about to expire, and annual renewals coming up — because each one needs a different message.

The problem

Three failures, three campaigns

Expired cards, insufficient funds and issuer declines typically account for a mid-to-high single-digit share of subscription revenue — customers who wanted to keep paying and stopped for a reason neither side chose. Treating that with one generic sequence wastes most of it. Recover runs delinquency, card expiry and annual renewal as separate campaigns, each with its own timing and tone.

  • Delinquency: a sequence that starts the moment a charge fails
  • Card expiry: a warning before the payment can fail at all
  • Annual renewal: a heads-up before a large charge lands unannounced

Recovery sequence

$18,240 recovered

  1. Payment failedDay 0
  2. First reminderDay 3
  3. Card update linkDay 7
    Recovered
  4. In-app bannerDay 13
    Not needed

The sequence

A ladder you control, step by step

Build each campaign as an ordered set of steps: pick the channel, set the delay, write the copy. Messages come from a named person on your team rather than a no-reply address, because a dunning email that looks automated gets treated like one. Test sends go to you before anything reaches a customer.

  • Email and SMS steps, reordered or removed per campaign
  • Per-step delay, subject, sender and body, with customer variables
  • Steps stop automatically the moment the payment succeeds
bastle.co/demo/recover/campaigns
Open

This is the real product running on sample data. Click to use it.

The fix

A card page that actually updates the card

Every message carries a one-click link to a hosted update page you can brand, and the new card is written back to your payment processor rather than stored somewhere it cannot be charged from. You decide what happens next: retry the most recent unpaid invoice only, retry all of them, or cap it at a number you set.

  • Hosted, brandable card-update page on a link you can drop anywhere
  • Card written back to the processor, so the next charge just works
  • Configurable retry policy on outstanding invoices after an update

MRR

+5.2%

$162,400

Net revenue churn

−0.3pp

2.1%

Active customers

+38

1,284

ARPU

+1.4%

$126.48

The outcome

Know what recovery is actually worth

Recover reports the money it has brought back, not the emails it has sent. Lifetime and trailing-twelve-month totals, the recovery rate, what is currently in flight and what is likely to land, broken down by campaign and by step so you can see which message is doing the work.

  • Failed, recovered and in-flight amounts with recovery rate
  • Per-campaign and per-step performance, so dead steps get cut
  • Recovered revenue flows into your metrics as reactivation, not as new

Why did MRR drop last month?

MRR fell $4,180 (−3.1%) in March. Almost all of it is contraction, not cancellations: 31 Scale customers downgraded to Growth after the annual renewal window opened.

47 customers3 plansMRR movement ledger

Capabilities

What Recover includes

All of it sits in the same workspace. Bastle is free while in beta, so nothing on this list is an add-on, an upgrade or a separate subscription.

Coexists with processor retries

Recover works alongside Stripe's automatic retries rather than fighting them, so a customer does not get chased twice for the same charge.

In-app escalation

A banner for delinquent users, a grace period you set, and escalation to a block when the grace period runs out.

Included, not an add-on

Dunning is usually sold separately from analytics. In Bastle it is part of the product, and Bastle is free while in beta.

Recovery events on the timeline

Every message sent and every recovery lands on the customer's timeline, so support can see what was sent before they reply.

Frequently asked questions

How much revenue does dunning typically recover?

It depends heavily on your customer base, price point and how quickly you start chasing, so any single headline figure is misleading. What is consistent is the shape of the opportunity: failed payments are a mid-to-high single-digit share of subscription revenue for most subscription businesses, the customers involved were not trying to leave, and a substantial portion of them update a card when asked clearly and promptly. Recover reports your own recovered amount rather than an industry average, because that is the only number that matters to your business.

Does this conflict with Stripe's smart retries?

No. Stripe retries the charge; Recover contacts the human. The two are complementary, and Recover is aware of processor retry activity so a customer is not chased for a charge that is about to succeed on its own. Sequences stop immediately once payment goes through.

Where does the customer update their card?

On a hosted page Bastle serves at a unique link, which you can style to match your brand. The card is written back to your payment processor, so it becomes the payment method for future charges rather than sitting in a separate system. The same link can be embedded in your own app or sent by support directly.

What happens to outstanding invoices after a card update?

That is a setting. Bastle can charge only the most recent unpaid invoice, charge all outstanding invoices, or charge up to a maximum number that you choose. Charging everything at once recovers more money but can surprise a customer with a large total, so the default is deliberately conservative.

Can I warn customers before their card expires?

Yes, and it is the cheapest recovery there is because no payment has failed yet. The card-expiry campaign runs on its own schedule ahead of the expiry date, typically with a reminder about a month out and another close to it, and it uses the same hosted update page.

How does recovered revenue show up in my metrics?

As a reactivation rather than a new customer, and the customer rejoins their original signup cohort. That keeps cohort retention honest: a customer who briefly lapsed on a card failure and came back has not become a new customer, and counting them as one would inflate both acquisition and retention.

See your own numbers in about two minutes.

Connect Stripe and Bastle backfills your full history. Free while in beta — no card, no sales call.