Dunning and failed payment recovery for Stripe

Get paid for the subscriptions your customers meant to keep.

Dunity watches your Stripe account, emails your customer the moment a card fails, and times each retry to the reason it was declined. $29 a month, no sales call.

$29 a month · Cancel anytime
Founding customers get 20% off their first 12 months.

One failed paymentWatchingExample
  1. Payment failed

    insufficient_funds

    DECLINED
  2. Customer emailed

    with a card-update link

    SENT
  3. Retry in 3 days

    timed to the decline reason

    WAITING
  4. Recovered $49

    invoice paid

    PAID

The revenue you keep

Failed payments, left alone

AddDunity

Illustration, not measured data
  • Works with your Stripe.

    Connect in a few minutes with a restricted key. No code needed, except for the optional payment wall.

  • Your key stays locked.

    A restricted key with eight permissions, encrypted in Supabase Vault. Revoke it in Stripe at any time.

  • No card numbers.

    Dunity never receives full card numbers or security codes.

  • One price.

    $29 a month or $299 a year, with every feature.

  • Leave when you like.

    Cancel from your dashboard. Retries already under way keep running for 5 days.

How much are failed payments costing you?

$10,000

Fails on the first try

$500/month

$6,000 a year

Dunity pays for itself at5.8% won back

$29 a month against $500 failing

See what you could win back on $500

Three steps, then it runs on its own.

  1. Connect Stripe.

    Create a restricted key with the permissions Dunity lists and paste it in. Dunity sets up its own webhook.

    Stripe setup guide

  2. Your customer hears from you.

    When a payment fails, Dunity emails the customer straight away with a secure link to update their card. You set the wording and the reply-to address.

  3. Retries timed to the decline.

    Dunity reads why the card was declined and schedules the retry to match: a day later by default, three days after insufficient funds. A hard decline, such as a stolen card, stops the retries.

    What each decline code means

Everything a failed payment needs

  • 72

    hours after insufficient funds, 24 otherwise

    Decline-aware retries

    Each retry is timed to the reason the card failed. A hard decline ends the retries, so the card isn’t charged again.

  • 1

    email the moment it fails

    Recovery emails

    An email the moment a payment fails, with your wording, your reply-to and a link to update the card.

  • 45

    days a signed link lasts

    Card update page

    A branded page where customers enter a new card on Stripe’s secure checkout. Each link is signed and expires.

  • 30 & 7

    days before a card expires

    Card expiry reminders

    An optional email 30 and 7 days before a card expires, so the customer can update it before a payment fails.

  • 1

    last offer when retries end

    Win-back offers

    If retries end without a payment, offer a discount credited to the unpaid invoice. Optional.

  • 10

    days, then access pauses

    Payment wall

    Show a customer with an unpaid invoice a notice, then a countdown, then block access. One script tag.

See what came back.

One dashboard shows what is at risk, what has been recovered, and which payments need a look.

Recovered in the last 30 days

$1,668

Example

Pricing

One plan. $29 a month.

Or $299 a year and save $49. Every feature, no sales call, cancel anytime.

Founding customers get 20% off their first 12 months.

Every feature included

  • Decline-aware retries
  • Recovery emails
  • Card update page
  • Card expiry reminders
  • Win-back offers
  • Payment wall

Questions founders ask

About setup, safety, Stripe’s own retries and cancelling.

How long does setup take?

A few minutes. You create a restricted key in Stripe with the permissions Dunity lists, paste it in, and Dunity sets up its own webhook. Only the optional payment wall needs a developer, and it is one script tag.

Is my Stripe account safe?

Dunity uses a restricted key with eight specific permissions, never your full secret key. The key is encrypted in Supabase Vault, never sent back to a browser, and you can revoke it in Stripe at any time.

Does Dunity replace Stripe’s Smart Retries?

No. Stripe keeps retrying on its own schedule, and Dunity adds its own retries timed to the decline reason, plus the email, payment wall and win-back offer. You don’t need to turn anything off in Stripe. If Stripe’s own failed-payment emails are on, your customer gets both.

What happens with a hard decline?

When Stripe reports a decline such as a stolen card, or one that needs the customer to authenticate, Dunity stops retrying and marks the payment failed instead of charging it again.

Can I cancel anytime?

Yes, from Manage billing in Settings, and you won’t be charged again. The current period isn’t refunded. Retries and emails keep running for 5 days so payments already in progress aren’t dropped.

Your next failed payment is already on its way.

Connect Stripe once, and Dunity handles it from the first email to the last retry.

$29 a month · Cancel anytime