Soft vs hard declines: which decline codes to retry

Retry a decline only when the code says the issuer might approve later or with better data: insufficient funds, issuer unavailable, system errors or a request for authentication. Never retry codes for lost, stolen, closed or invalid cards. Visa bans retries on its Category 1 codes and caps the rest, and Mastercard charges for retries after advice codes 03 and 21.

Topic
Approval rate
Published
Updated
Reading time
8 min

In 30 seconds

  • Retry only declines the issuer might approve later: insufficient funds, issuer unavailable, system errors, authentication requests.
  • Never retry lost, stolen, closed or invalid card codes; Visa bans retries on its Category 1 codes.
  • Visa caps the other categories and Mastercard charges for excess retries, so count attempts per card.
  • 5 sources cited
Talk to us
On this page7 sections

Every declined card payment comes back with a response code. Most teams read the code only to decide what to show the customer. The more valuable question is what the code says about the next attempt: will the same card, sent again, ever be approved? Answer that correctly and you recover payments without paying network fees for attempts that could never work. Answer it wrongly and you either give up on payments you could have saved, or you retry cards that are lost, stolen or closed, which costs money and looks like card testing.

This article is a reference for that decision. It explains the difference between soft and hard declines, shows how Visa and Mastercard classify their codes, lists the codes worth retrying and the ones you must never retry, and works through what a retry policy costs. For how to design the cascade itself, see our article on cascading and decline recovery.

What is the difference between a soft and a hard decline?

A soft decline describes a condition that can change: the account is short of funds today, the issuer’s system is unavailable, the issuer wants the cardholder to authenticate, or the issuer’s risk score was borderline. Another attempt, later, on another route or with more data, may be approved.

A hard decline describes the card or account itself: lost, stolen, closed, invalid or not allowed to make this kind of transaction. The issuer will give the same answer whoever sends the payment and whenever it arrives, because the problem is not the route or the timing.

The distinction is made through the response code in the authorization message. Stripe’s list of network decline codes shows how much detail is available: Visa alone has codes for refer to issuer (01), do not honor (05), invalid account number (14), lost card (41), stolen card (43), not sufficient funds (51), expired card (54), suspected fraud (59), exceeds amount limit (61), issuer or switch inoperative (91), system malfunction (96) and additional customer authentication required (1A), among many others.

How do Visa and Mastercard classify decline codes?

Both networks have turned the soft and hard distinction into rules, with fees attached.

Visa sorts its response codes into four categories. Primer’s documentation and PayPal’s May 2026 guidance describe them the same way:

Visa categoryMeaningExamplesReattempts
1Issuer will never approve04, 07, 12, 14, 15, 41, 43, 46, 57, R0, R1, R3Not allowed
2Issuer cannot approve at this time51, 59, 61, 62, 65, 75, 91, 93Allowed, within a cap
3Issuer cannot approve with these details54, 55, 70, 82, 1A, N7Allowed after updating data
4Generic responseAll other codes, including 05Allowed, within a cap

The sources differ on the cap for Categories 2 to 4: PayPal gives 20 reattempts in 30 days, Primer gives 15. They also place a few codes differently (Primer lists 96 in Category 4, PayPal in Category 2). Confirm the current figures with your acquirer, and build your policy so the cap is a setting rather than a constant.

Mastercard works differently. PayPal’s guidance says that under Mastercard’s transaction processing rules, codes 04, 14, 15, 41, 43 and 54 on card-not-present payments must not be retried with the same card number and expiry date at any time. For other declines, Mastercard adds a Merchant Advice Code (MAC) that tells the merchant what to do next:

MACMeaningWhat to do
01Updated information neededGet new card details before retrying
02Cannot approve now, try again laterRetry later (PayPal suggests after 72 hours)
03Do not try againStop; ask for another payment method
04Token requirements not met for this token typeFix the token data
21Payment cancellation, stop recurring requestsStop; do not resubmit
24 to 30Insufficient funds, retry after a set timeRetry after 1 hour, 24 hours, or 2, 4, 6, 8 or 10 days

The advice code matters more than the response code it travels with. Stripe’s table shows Mastercard returning the same response code, for example 05 do not honor, with MAC 01, 03 or 21, and each of those calls for a different action.

Which decline codes are worth retrying?

Codes that describe a temporary state, a technical failure or missing authentication. A practical reference, using Visa codes and the meanings in Stripe’s list:

CodeMeaningVisa categoryRetry?How
05Do not honor4OnceDifferent route or with 3-D Secure
51Not sufficient funds2LaterWait; follow MAC 24 to 30 on Mastercard
61Exceeds approval amount limit2Later or smallerLower amount or another method
65Exceeds withdrawal frequency limit2LaterWait for the issuer’s limit to reset
91Issuer or switch inoperative2YesRetry shortly or fail over
96System malfunction2 or 4YesRetry or fail over
1AAdditional customer authentication required3YesRetry with 3-D Secure
54Expired card3Only with new dataAsk for updated card details
N7CVV2 failure3Only with new dataAsk the customer to re-enter

Three of these deserve a closer look.

Code 1A is the clearest soft decline in Europe. Adyen’s help centre describes its Authentication required response as the issuer mandating strong customer authentication, and treats it as a soft decline. The fix is to run 3-D Secure, not to send the same unauthenticated request to another acquirer. Note that Mastercard can also use code 65 for an Identity Check soft decline, according to Stripe’s list.

Code 51 looks retryable, and it is, but not immediately and not on another route. The account is the problem, and every acquirer checks the same account. Mastercard’s advice codes 24 to 30 exist precisely to tell merchants when to try again.

Code 05 is the hardest call. It is generic by design, and some issuers use it even when the real reason is permanent. One retry on a different route, or with authentication, is reasonable. A loop is not. Our do not honor entry covers it in more detail.

Which decline codes must you never retry?

Codes that describe the card itself, and codes that tell you to stop:

  • Lost, stolen or pick-up: 04, 07, 41, 43. Stripe advises presenting lost and stolen card declines to the customer as a generic decline, without revealing the reason. Treat them as a fraud signal for the account.
  • Invalid or closed: 14 invalid account number, 15 no such issuer, 46 closed account.
  • Not permitted: 57 transaction not permitted to cardholder, and 12 invalid transaction.
  • Stop orders: R0 stop this payment, R1 stop all future payments, R3 stop all merchants. Primer notes that Visa adds a Stop Payment Service fee of EUR 1 per retry after these codes, on top of the excess retry fee.
  • Mastercard MAC 03 and 21, whatever response code they come with.

Two codes sit in Visa’s retryable categories but should not be cascaded in practice. Code 59, suspected fraud, is Category 2, yet sending it to a second acquirer to find one that approves is what card testing looks like. Code 93, violation of law, is also Category 2, and retrying it on another route invites exactly the problem the issuer is flagging. Keep both out of automatic retries.

What do excessive retries cost?

PayPal’s May 2026 summary gives these figures, which change from time to time:

  • Visa: any retry on a Category 1 code, and any retry beyond the cap on Categories 2 to 4, costs USD 0.10 for a domestic transaction or USD 0.25 for a cross-border one.
  • Mastercard, soft declines: fees apply after 10 retries in 24 hours or 35 in 30 days for the same account, card acceptor and amount. The fee per excess retry varies by region, for example EUR 0.55 in Europe, USD 0.40 in the Middle East and Africa, USD 0.50 in Latin America outside Brazil, and BRL 2.00 in Brazil.
  • Mastercard, advice codes: a fee applies when a payment declined with MAC 03 or 21 is reattempted within 30 days and declined again with 03 or 21.

The bigger cost is usually indirect. Your own provider may charge per authorization attempt, and a pattern of repeated attempts on dead cards makes your traffic look riskier to issuers.

Worked example: classifying a month of declines

Example figures, for illustration only.

A merchant receives 4,000 card declines in a month, with these codes:

GroupCodesDeclinesPolicy
Technical91, 96400Retry or fail over once
Authentication1A300Retry with 3-D Secure
Generic051,300One retry on another route
Funds and limits51, 61, 651,000Retry later or offer another method
Data54, N7200Ask the customer for new details
Never retry04, 14, 41, 43, 46, 57, R0 to R3600Stop; block if fraud related
Fraud and law59, 93200Stop; review

A blind policy that retries every decline once sends 4,000 extra authorizations. Of those, 800 (the never-retry and fraud groups) can only fail. If the 600 Category 1 declines are all on Visa cards and half of them are cross-border, the Category 1 retries alone cost about 300 × USD 0.25 plus 300 × USD 0.10, or USD 105 a month in Visa fees, before any provider fees, and they add 800 attempts that look like card testing.

A code-aware policy sends at most 2,000 immediate retries (technical, authentication and generic), schedules 1,000 later retries for funds and limits, and sends nothing for the 800 dead or suspicious cards. Whatever it recovers, it recovers without paying for attempts that could never succeed. Our approval rate calculator shows what each recovered percentage point is worth on your own volumes.

How do you put a decline-code policy into practice?

  1. Keep the raw network code. Providers translate codes into their own vocabulary. Store the original network code and, for Mastercard, the advice code alongside the provider’s label.
  2. Map every provider’s codes to one set of actions: retry now, retry with authentication, retry later, update data, stop. Review the mapping against outcomes every quarter.
  3. Count attempts per card across all providers. The networks do.
  4. Make the caps settings. Network limits and fees change; your rules should not need a release to follow them.
  5. Separate retries from cascades. Cascading suits technical errors and generic soft declines; scheduled retries suit funds and limits.
  6. Measure recovery by code. A code that recovers almost nothing on retry should leave the retry list. Our guide on how to calculate approval rate explains why recovery should be measured on payment intents, not raw attempts.

How does Omno handle declines?

In Omno, cascading is part of the routing rule: if a provider is unavailable or rejects the request, the payment moves to the next provider in the rule until one accepts it. The routing-decision log keeps the response code for every attempt, so recovery can be measured per code, provider and country. The smart routing and cascading page explains the rules.

Key facts

  • Visa groups decline codes into four categories and allows no reattempts on Category 1, which includes codes 04, 14, 15, 41, 43, 46 and 57 (PayPal, May 2026; Primer docs).
  • PayPal's May 2026 guidance gives Visa's cap for Categories 2 to 4 as 20 reattempts in 30 days; Primer's documentation gives 15 (PayPal; Primer).
  • Visa's excess retry fee is USD 0.10 per domestic and USD 0.25 per cross-border transaction, according to PayPal (May 2026).
  • Mastercard charges after 10 soft-decline retries in 24 hours or 35 in 30 days, for example EUR 0.55 per excess retry in Europe and BRL 2.00 in Brazil (PayPal, May 2026).
  • Mastercard Merchant Advice Codes 24 to 30 tell the merchant to retry an insufficient funds decline after 1 hour, 24 hours, or 2, 4, 6, 8 or 10 days (PayPal; Primer).
  • Visa response code 1A means additional customer authentication is required (Stripe network decline codes).

Changelog

  • First published.
  • Made the answer on retry limits across acquirers match what the source says.

Frequently asked questions

Is do not honor (code 05) a soft or a hard decline?

Visa puts 05 in Category 4, the generic group, so a limited number of reattempts is allowed. In practice it behaves like a soft decline that sometimes hides a permanent reason, so retry it once, ideally on a different route or with 3-D Secure, and then stop.

Should insufficient funds be cascaded to another provider?

Rarely. Code 51 describes the cardholder's account, and a second acquirer checks the same account. A later retry, a smaller amount or another payment method works better. For Mastercard, follow the retry timing in advice codes 24 to 30 when the issuer sends them.

Do retry limits count attempts across all my acquirers?

Plan as if they do. PayPal's guidance says Mastercard's thresholds apply to the same account, card acceptor and amount, but it does not say whether attempts through different acquirers add up. The safe choice for a merchant using several providers is one attempt counter per card across all of them.

Does switching from a token to the card number count as a new credential?

For Visa's excess retry fee, PayPal's guidance says that if a token is declined and the merchant then tries the card number, no fee is charged. That is a fee rule, not a reason to retry a hard decline; the issuer's answer about the account will not change.

esc
↑↓ to move ↵ to open All results