Stop losing MRR
to failed cards.
DunnGuard is failed-payment recovery for SaaS on Stripe that actually executes — failure-reason-aware retries run on schedule, branded email nudges, and recovery measured end to end. From $39/mo flat. No revenue share.
20–40% of SaaS churn is involuntary
A customer's card expires or gets declined, Stripe retries it and sends a generic email — and the customer quietly churns. At $50k MRR, 5% involuntary churn is $30,000 a year walking out the door.
The incumbents don't serve small SaaS: full-featured recovery starts around $269/mo — steep for a $5k MRR product. The $29–$58 band filled in during 2026 — but the entrants mostly send messages. DunnGuard executes the retries itself, at a flat $39.
DunnGuard Starter: $39/mo — ~7× cheaper for the same core job.
How it works
- Connect Stripe
Restricted API key. Register the webhook endpoint; live in an afternoon. - We watch every failed payment
Each decline gets a retry plan matched to its failure reason — insufficient funds is retried differently than an expired card. - Customers get nudged
Branded email nudges on a three-touch schedule, tuned to the failure reason. (SMS and pre-expiry alerts are on the roadmap.) - You see everything
Recovery stats: failed, recovered, lost, in-retry — recorded from real runner outcomes.
Why DunnGuard
Failure-reason-aware retries
An expired card will never succeed on retry (nudge the customer now); insufficient funds often clears in days (retry on a spread schedule). One-size-fits-all retries leave money on the table.
SMS nudge channel — roadmap
An SMS channel is on our roadmap. It's labeled roadmap everywhere it appears, and no tier charges for it yet.
Expiring-card alerts — roadmap
30/7/1-day warnings before the failure happens are on the roadmap. Today, an expired card triggers an immediate update-your-card nudge instead of a wasted retry.
Flat pricing, no revenue share
$39–$149/mo flat. No percentage of recovered revenue, no sales call.
Questions, answered honestly
- Why not just use Stripe's Smart Retries?
- Smart Retries are good at timing — and stop there. DunnGuard adds decline-specific customer messaging, network-rule guardrails on every attempt, and recovery measurement. The two never race: the runner stands down when Stripe already has a retry scheduled.
- Do you guarantee a recovery rate?
- No — recovery rates vary by customer base and card mix, and we publish no guaranteed rates.
- Do you handle card numbers?
- No. Card updates happen on Stripe-hosted pages. DunnGuard never sees, touches, or stores card numbers.
- What happens on an expired card?
- No wasted retries — the plan is empty for expired/lost/stolen cards, and the customer is nudged to update their card immediately.