Decline code

Insufficient funds: what it means and what to do

The card doesn’t have enough money or credit for the payment. What Stripe says, whether to retry, and how Dunity times the first retry.

  • $29/month, flat
  • Cancel anytime
  • Restricted Stripe key only

What it means

Stripe returns insufficient_funds when the card issuer declines a payment because the card doesn’t have enough money or credit to cover it.

Stripe lists it among the most common reasons a card payment fails. Most declines come back from issuers as a generic decline, so a code that names the cause is a useful one.

From Stripe’s decline codes and card declines docs.

Should you retry it?

It isn’t on Stripe’s list of hard declines, so a later attempt can succeed. Stripe advises no more than eight retries on a charge that allows them, because card issuers may treat extra attempts as suspicious and decline legitimate charges more often.

From Stripe’s Smart Retries and card declines docs.

What to do about it

What the customer needs to do

  • Use a different card or payment method, which is Stripe’s advice for this code.
  • Or make sure the card has funds by the time of the next retry.

What you can do

  • Give the retry time to work rather than trying again straight away.
  • Make switching cards easy, with a link in your email to a page where the customer can add a new one.
  • Keep retries within Stripe’s guidance of eight or fewer.

What Dunity does

  • Dunity records the decline code and emails your customer once, with a link to update their card.
  • The first retry waits 72 hours after this decline instead of 24, since money often arrives by then. Later retries follow your normal delay (24 hours by default), up to 5 attempts. You can change all three numbers in Settings.
  • The dashboard files it under “Retry-worthy”.

What Dunity does is read from its code, not assumed. The whole flow is on how Dunity works, and every code is on the decline codes hub.

Insufficient funds questions

What people ask about this code.

Should I retry an insufficient_funds decline?

Yes, but give it time. It isn’t a hard decline, so a later attempt can succeed once the balance changes. Stripe recommends no more than eight retries on a charge, because issuers may see extra attempts as possible fraud.

Can I tell my customer their card had insufficient funds?

Stripe asks you to keep the reason back only for a few codes, such as a lost or stolen card. Dunity’s default email doesn’t give a reason at all. It says the payment didn’t go through and links to a page to update the card.