A subscription renewal fails on Monday, and by Friday the card has been charged after all. Who decided to try again, and why didn’t the customer pay twice? A payment retry is a new authorization attempt for a payment that was declined. Whether it is allowed, when it should happen and how often depend on what the card issuer said the first time.

That makes “retry payment” two different things. For a customer, it is usually a button in an app after a failed charge. For a merchant, it is a schedule of automatic reattempts governed by card network rules and the payment provider’s settings.

The decline tells you whether to retry

Every card decline comes back with codes. Stripe’s card declines guide describes two from the network: a decline code giving the reason, and a network advice code giving guidance on what to do next. Mastercard calls the second one a Merchant Advice Code. Stripe adds its own advice_code with three values: do_not_try_again, try_again_later and confirm_card_data.

Visa sorts declines into four categories. Adyen’s mapping of Visa system integrity fee categories summarizes them:

Visa category Typical codes What a merchant may do
1. Issuer will not approve 04 pickup card, 41 lost, 43 stolen, 46 closed account Do not retry; Visa charges a fee for reattempts
2. Issuer cannot approve at this time 51 insufficient funds, 91 issuer inoperative, 96 system malfunction Up to 15 retries in 30 days
3. Issuer cannot approve with these details 54 expired card, N7 CVV2 failure Correct the data; up to 15 in 30 days
4. Generic responses 05 do not honor, and anything else Up to 15 retries in 30 days

Mastercard’s advice codes are more direct. Adyen’s list of Merchant Advice Codes includes 03 “Do not try again,” 21 for a cancelled recurring agreement, and a ladder from 24 to 30 that tells the merchant to retry after 1 hour, 24 hours, or 2, 4, 6, 8 or 10 days for insufficient funds. Adyen notes that retries after code 03 or 21 can be subject to Mastercard penalty fees.

Visa’s own developer documentation for its Cybersource platform gives a conservative default in its field reference: if a decline carries no merchant advice code, do not retry.

How many times, and when

Stripe’s guide says plainly that “card networks limit the number of times you can reattempt a single charge,” and recommends a maximum of eight retries for charges that permit them. It adds that issuers can read extra retries as potential fraud, which can raise declines on legitimate charges.

For subscriptions, Stripe Billing’s Smart Retries picks the timing with a model and lets the business cap the policy at a number of tries within one week, two weeks, three weeks, one month or two months. The recommended default is 8 tries within 2 weeks. A custom schedule is limited to three retries, each a set number of days after the previous attempt.

Timing matters as much as count. A system outage (Visa category 2, code 96) may clear in minutes. Insufficient funds may clear on payday, which is why Mastercard’s codes run out to ten days. An expired card will not clear at all until the customer supplies new details.

A retry should never become a second charge

A declined authorization moves no money, so retrying it is safe. The risk sits in the gray zone: a timeout where the merchant does not know whether the first attempt succeeded.

Two safeguards cover that case. The first is an idempotency key. Stripe’s idempotent requests let a client resend the same request with the same key so the server returns the first result instead of creating a second charge. Our explainer on API idempotency covers how those keys work and where they stop.

The second is to check before retrying. Stripe’s decline codes include duplicate_transaction, returned when “a transaction with identical amount and card information was submitted very recently,” with the advice to check whether a recent payment already exists.

The distinction for a design review is simple: an automatic retry after a clear decline creates a new attempt on purpose; a resend after a timeout should reuse the original key so that it cannot.

What a customer sees

When an app shows “retry payment,” it is usually asking the customer to authorize the same charge again, sometimes after updating the card. Stripe’s guide recommends prompting a customer who is present to try again or use another payment method, and notifying an absent customer by email or in-app message. Where Strong Customer Authentication applies, as in Europe, an off-session retry may fail with authentication_required and need the customer to return and authenticate.

Merchant settings decide whether and when a failed subscription is retried automatically, so the answer to “will this service retry my payment?” is in that service’s billing terms, not in the card network rules.

Reporting & Sources

Stripe: card declines; Stripe: decline codes; Stripe Billing: Smart Retries; Stripe API: idempotent requests; Adyen: mapping to Visa system integrity fee categories; Adyen: raw responses and Mastercard Merchant Advice Codes; Visa Acceptance (Cybersource): merchant advice code field. All reviewed October 10, 2026. Visa and Mastercard limits are cited from these processors’ published summaries of network rules; the design guidance is analysis based on them. Not legal or compliance advice.