North Metric

    expired_card: ask for a new card.

    Customers rarely notice; their new card arrived in the post months ago, so a friendly update link works better than a warning.

    expired_cardDECLINE CODE · UPDATE CARD
    RECOVERYHIGHRETRYNo, update firstCUSTOMER ACTIONUpdate card

    What does expired_card mean in Stripe?

    It means the card on file has passed its expiry date. Every retry on it will fail until the customer adds the new card.

    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, 7Fails ×4
    M✕
    T
    W✕
    T
    F✕
    S
    S✕
    M
    T
    W
    T
    F
    S
    S
    The same expired card, four times. The customer only hears about it in a cancellation notice.
    Stripe + North MetricNote · day 14
    M
    T
    W
    T
    F
    S
    S
    M
    T
    W
    T
    F
    S
    S
    North Metric drafts a card-update note with its own link, at once if Stripe can’t retry the card, or when its retries end. You approve it first.

    What it means

    Stripe’s card updater fixes many of these automatically, but cards from smaller banks often slip through. 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": "expired_card",
        "decline_code": "expired_card",
        "message": "Your card was declined."
      }
    }

    Why it happens

    •The card passed its expiry date and the customer never added the new one.•The bank sent a replacement with a new expiry date, and the update never reached Stripe.•An annual plan renewed after the card on file had lapsed, with no charge in between to catch it.

    What to do

    01Don’t add retriesThe same details will fail every time, so a new card is the fix.
    02Send a hosted update linkOne click, card form prefilled, no login needed.
    03Collect on the new cardOnce a new card is saved, the open invoice can be paid with it.
    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

    Be direct and short: the card on file needs updating, here’s the link, nothing else changes.

    From: Maya at AcmeSubject: Your card on file needs a quick update
    Hi Sam, The card we have for Acme looks out of date, so this month’s payment didn’t go through. You can update it here. Everything else stays the same. Maya
    SEND AT ONCE IF STRIPE CAN’T RETRY, OR WHEN ITS RETRIES END

    What not to do

    ✕Retry the same card on a schedule.✕Ask the customer to log in before they can update.✕Pause the account before they’ve had a chance to fix it.
    01RELATED CODES

    Same type,same playbook.

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

    incorrect_cvcThe security code didn’t matchHIGHOpen code →incorrect_numberThe card number is wrongHIGHOpen code →invalid_expiry_yearThe expiry year isn’t validHIGHOpen code →
    All decline codes →
    02FAQ

    Questions aboutthis decline.

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

    Neither, exactly: a retry alone won’t work, but the customer can fix it (update card).

    AFTER STRIPE’S RETRIES

    Know who’s at riskafter a decline.

    Actions off until you turn them on