When a payment fails, most SaaS tools do one thing: retry.
But I've been thinking about this differently.
There are exactly two types of failed payments:
The card is fine. The customer has money.
They just need to be charged at the right moment.
Stripe's smart retry works here.
No amount of retrying will ever recover these.
The card is gone. Someone has to tell the customer.
Retries alone won't work — outreach is the only path.
The mistake most founders make is treating both the same.
One email sequence. Same retry cadence. For every failure.
But an expired card and an insufficient funds failure need completely different responses.
DunnAI reads the decline code behind every failure, classifies it into the right bucket, and reaches out in your product's own voice - only when outreach is actually the answer.
Free until $49 is recovered.
Curious if others have thought about this split.
What's your current approach to failed payments?