Stripe decline code
insufficient_fundsThe card does not have enough available balance or credit to cover the charge at the moment the transaction was attempted.
Type
Recoverable
Frequency
Very Commoninsufficient_funds is a soft decline, meaning the card itself is valid and active. The charge failed because the customer temporarily did not have enough funds or credit available. This is the most common decline code on Stripe, accounting for roughly 35-40% of all failed subscription payments. Because the payment method is still good, these failures are highly recoverable without asking the customer to do anything.
Retry on common payroll or credit-cycle dates rather than a fixed interval. For most consumer cards, that means retrying near the 1st or 15th of the month. For business cards, retry at the start of the next billing cycle. Retrying within 24 hours of the original failure recovers less than 20% because the underlying cash shortage has not resolved. Waiting 3-7 days and aligning with paydays recovers 60-75%.
Do not send an alarming "update your card" email on the first insufficient_funds failure. The card is fine. A short heads-up that the payment did not go through, with the next retry date, is enough. Only escalate the tone after 2-3 retries fail.
Temporary issue. The card is still valid. High recovery rate with proper retry timing.
No. Retrying within hours rarely succeeds because the underlying cause (empty balance) has not changed. Wait at least 72 hours, and ideally align the retry with a common payday like the 1st or 15th of the month.
Three to four retries over 7-14 days is the standard. Beyond that, the recovery rate per additional retry drops sharply and it is more effective to contact the customer.
Soft declines like insufficient_funds do not count against your Stripe risk score the way hard declines or fraud declines do. However, excessive retries on the same card in a short window can trigger card network warnings.
How Rebounce handles insufficient_funds
Rebounce classifies every failed payment by its Stripe decline code and applies the optimal recovery strategy automatically. For insufficient_funds, that means intelligent retries at the right times. Multi-channel follow-up through email, SMS, WhatsApp, and in-app banners ensures the customer actually sees the message.
generic_declineSoft declineThe card issuer declined the charge but did not provide a specific reason. This is a catch-all soft decline used when the bank will not say why.
card_declinedSoft declineA generic decline from the card issuer. Very similar to generic_decline: the bank said no without giving a specific reason.
withdrawal_count_limit_exceededSoft declineThe card has reached its daily transaction count limit.