North Metric

    insufficient_funds: let Stripe retry.

    Debit cards and prepaid cards return it far more often than credit cards, so a customer’s card type hints at how soon a retry can work.

    insufficient_fundsDECLINE CODE · RETRY LATER
    RECOVERYHIGHRETRYYes, let Stripe retryCUSTOMER ACTIONNone

    What does insufficient_funds mean in Stripe?

    It means the card is valid but the account didn’t have enough money when the invoice ran. Nothing is wrong with the card; the timing is.

    What happens next

    The same decline, handled two ways: a fixed retry ladder, and Stripe Smart Retries with North Metric following up once they end. North Metric never retries a card; its part in failed payment recovery starts when Stripe stops.

    THE NEXT 14 DAYS · EXAMPLE✕FAILED RETRYACTIONPAID
    Fixed retry ladder · day 1, 3, 5, 7Maybe · day 7
    M✕
    T
    W✕
    T
    F✕
    S
    S✕
    M
    T
    W
    T
    F
    S
    S
    Four attempts, three “payment failed” emails. Whether one lands depends on when money comes in, not on the ladder.
    Stripe + North MetricPaid · Stripe retry
    M
    T
    W
    T
    F
    S
    S
    M
    T
    W
    T
    F
    S
    S
    Stripe’s retries clear it, so North Metric sends nothing. A note is drafted only if the retries end unpaid.

    What it means

    It is the most common Stripe decline on subscriptions, and the most recoverable: the card still works, so Stripe’s retries often clear it. Stripe returns it as a decline_code inside a card_error, so your integration sees the charge fail and the reason sits in this field.

    {
      "error": {
        "type": "card_error",
        "code": "card_declined",
        "decline_code": "insufficient_funds",
        "message": "Your card was declined."
      }
    }

    Why it happens

    •The account balance was lower than the invoice on the day it ran.•Other payments drew down a debit or prepaid card before the renewal.•A bigger charge than usual, such as an annual renewal or an upgrade, was more than the customer had available.

    What to do

    01Don’t email yetThe customer did nothing wrong. A warning now only adds noise.
    02Let Stripe’s retries runSmart Retries pick the timing. Stripe’s recommended default is 8 tries within 2 weeks (Stripe docs, Oct 2026).
    03Follow up when the retries endIf the invoice is still unpaid, send one short personal note with a card-update link.
    See which customers with a failed payment are at risk, in your own Stripe.Actions off until you turn them onGet your free churn report →

    What to tell the customer

    Usually nothing while Stripe retries. If the retries end unpaid, send one short, human note, not a red banner.

    From: Maya at AcmeSubject: A quick note about your Acme invoice
    Hi Sam, Your card didn’t go through for this month’s Acme invoice, and the automatic retries have ended. You can update it or use a different card here. Everything else stays the same. Maya
    SEND ONLY AFTER STRIPE’S RETRIES END

    What not to do

    ✕Retry on a fixed day 1, 3, 5, 7 ladder.✕Send a “payment failed” email on the first decline.✕Add your own retries on top of Stripe’s.
    01RELATED CODES

    Same type,same playbook.

    Codes Stripe returns for the same underlying reason. Each one opens its own guide.

    card_velocity_exceededThe card hit its spending or transaction limitHIGHOpen code →withdrawal_count_limit_exceededToo many charges on the card in a short periodHIGHOpen code →processing_errorSomething went wrong while processing the cardHIGHOpen code →
    All decline codes →
    02FAQ

    Questions aboutthis decline.

    Short answers. The full list of codes is one click away.

    Soft. The card is fine; a well-timed retry usually succeeds.

    AFTER STRIPE’S RETRIES

    Know who’s at riskafter a decline.

    Actions off until you turn them on