Why payments fail
Stripe payments can fail for many reasons, most of which have nothing to do with your product. Identifying the root cause is the first step to recovering that lost revenue.
1. Expired card
The most common reason. The customer got a new card but never updated their billing details. Stripe returns the card_expired code.
How to recover: Send an automated email with a payment update link within 24 hours. Recovery rates on this failure type are consistently high.
2. Insufficient funds
The charge failed due to a lack of funds. Stripe returns insufficient_funds. This type of failure is often temporary.
How to recover: Wait 3–5 days and retry. Recovery rates on this failure type exceed 60%.
3. Card blocked by the bank
The bank declined the transaction due to suspected fraud. Code: card_declined. A simple check with the bank is often enough to unblock the situation.
4. 3DS authentication required
Some European banks enforce strong authentication. If your payment flow doesn't handle 3DS correctly, the charge is silently declined.
5. Lost or stolen card
The customer reported their card lost or stolen. In this case, only a new payment method will allow you to recover the subscription.
Takeaway
Each of these failures can be recovered with the right automation strategy. That's exactly what Dunlo does for you.