Recover failed Stripe payments without touching your inbox.
Your Stripe dashboard shows three failed card charges this week. The buyer got a generic Stripe email and went quiet. Dunner gives you the three emails, the webhook handler, and the tracker — so the recovery happens while you’re writing code.
Three components. One job.
Dunning email generator
Answer 4 questions (plan name, amount, product URL, founder name). Out comes 3 paste-ready emails: day 0 (“your card didn’t work”), day 3 (“we’ll retry tomorrow”), day 7 (“last attempt before cancel”). All written in plain English, not Stripe boilerplate.
Stripe webhook retry blueprint
Drop-in Vercel function (TypeScript). Handles invoice.payment_failed, retries on day 3 and day 7, sends the generated email via Resend. No Zapier. No paid tools. Under 120 lines of code.
Recovery tracker
Google Sheets template. Every failed invoice lands as a row with amount, buyer, retry status, email-sent-at. Sorts by dollar amount so the big ones surface first. No database required.
One recovered invoice. Pays for this.
Founding slots remaining · price jumps to $79 when the last slot goes
Leave your email. When the kit is ready (target: this week), you’ll get the Stripe link at $49 before it goes public. No spam, no drip sequence — one email with the link.
What’s included. What isn’t.
Included: the 3-email generator, the webhook handler (TypeScript), the Google Sheets template, a 10-minute Loom walkthrough, one round of setup questions via email within 30 days.
Not included: running your Stripe account for you, writing custom branded email templates beyond the 3 included, integrating with CRMs (HubSpot / Salesforce / Pipedrive), recovering payments that failed more than 30 days ago, legal / tax advice on failed-payment collection.
Dunner ships the assets. The math is simple: one recovered $49/mo subscription covers the kit in ~7 weeks, and keeps compounding. It is not a magic recovery tool — it is the plumbing that most solo founders don’t have time to build.
The real ones.
Do I need to know TypeScript to use this?
The webhook handler is a drop-in file. If you can git clone and vercel deploy, you’re fine. If you can’t, we include setup help in the 30-day window.
Does it work with Stripe Subscriptions?
Yes — it listens for the invoice.payment_failed event, which fires for both one-time invoices and recurring subscription charges.
What if I already use Stripe Smart Retries?
They’re complementary. Smart Retries adjusts the retry cards; Dunner adjusts the email copy buyers see. You can run both.
Why $49?
Because a single recovered invoice at a $49/mo plan covers it in seven weeks. Beyond that, anything you recover is margin we didn’t charge for.
What do you learn from my data?
Nothing. Your webhook runs on your Vercel, writes to your Sheet, and emails from your Resend account. We never see your Stripe events.
Refund policy?
Standard Septim 30-day window. If the kit doesn’t save you at least the $49 in recovered revenue within 30 days, email us — refund, no questions.
Reserve a slot.
20 founding slots. When they’re gone, price is $79. Email below.
Buy Dunner — $49 →