Anatomy of a decline
A payment decline is the negative response returned to an authorization request or to a payment order presented on a rail. The institution holding the payer’s funds makes the decision and transmits it as a two- or three-character code. That code almost never reveals the actual reason. What it mainly signals is what can be tried next. Handling a decline therefore turns on whether it is reversible, not on why it happened, which in most cases remains beyond the merchant’s reach.
A payment request passes through several links before it reaches the issuer, and any of them can reject it. The chain has six distinct rejection points, three of which sit with the merchant or its provider. The visible code doesn’t identify which link made the call. Attributing every decline to the issuer by default is the most common diagnostic error. A metric that rolls all six links into one average cannot tell them apart.
| Leg | What it rejects | What the merchant sees | What can be fixed |
|---|---|---|---|
| Merchant risk engine | Attempts its own rules flag as suspicious, before anything is sent to the network | An internal status, no network code | The rules themselves: the merchant alone decides |
| Gateway or PSP | Malformed messages, missing fields, currency not enabled, contract limit | An API error, often with in-house codes | The integration and account configuration |
| Acquirer | MCC not enabled, merchant suspended, deposit limit reached | A decline before routing, with an ISO or private code | The merchant agreement and its configuration |
| Network (scheme) | Unknown BIN, invalid format, issuer unreachable even with stand-in | 30, 91, 92 | Nothing directly: escalation goes through the acquirer |
| 3-D Secure ACS | Authentication failed, abandoned, or not possible | An authentication status, not an authorization response code | The checkout flow, the device data sent, the scope of exemptions |
| Issuer | Available funds, limits, risk score, card product status | The response code, sometimes with an instruction code | The data sent, the channel, the timing of the attempt |
You can measure how declines are split across these links, provided you instrument every stage of the funnel, not just its exit. A risk engine that blocks 6% of traffic before anything reaches the network mechanically raises the authorization rate the network reports. The blocked attempts never reach the issuer, and the corresponding revenue vanishes without any network code recording it. The merchant sees a flattering authorization rate alongside falling revenue, questions the acquirer, and loses two weeks. The rejection came from its own engine.
Soft and hard declines: a practitioners’ distinction
In practitioners’ vocabulary, “soft decline” and “hard decline” refer to a temporary decline and a permanent one. No standard defines them. The pair appears neither in ISO 8583 nor in Visa’s or Mastercard’s rules; it comes entirely from industry usage. It classifies declines by reversibility, which is not the same as the seriousness of the reason. A decline for insufficient funds is far more common than one for an expired card, yet the two call for opposite handling.
Three families are enough to cover the ground, whereas a two-way split lumps together declines that call for different actions. The first family covers declines that time alone will clear. The second covers those that require a change to the instrument or the message before anything is resent. The third covers those that no later attempt will clear.
- Reversible with time. The instrument is valid, and the payer may have the funds tomorrow. Card
51, direct debitAM04, insufficient mobile money balance. Schedule the next attempt; don’t replay it within the minute. - Reversible with an action. The instrument or the message must change before anything is resent. Card
54on a reissued card,65or1Awhen authentication is required,AC01on a mistyped account. Resending the same request reproduces the decline. - Irreversible. The decline holds for every route and every date. Card
41,43,59, direct debitAC04orMD07, a network instruction prohibiting retries. Every new attempt uses up a counter and incurs fees.
| Card type | Card examples | Non-card examples | The action to take, and only that |
|---|---|---|---|
| Reversible with time | 51 insufficient funds, 61 amount limit exceeded | AM04 in SEPA, R01 in US ACH | Scheduled re-presentment, timed to a pay cycle or a day of the month |
| Reversible with an action | 54 expired card, 65 or 1A authentication required, 14 invalid card number | AC01 incorrect account number, new mandate needed | Refresh the credentials or retry with 3-D Secure, but never resend unchanged |
| Irreversible | 41 lost card, 43 stolen card, 59 suspected fraud, 57 transaction not permitted | AC04 account closed, AC06 account blocked, MD07 account holder deceased | Stop, flag the instrument as unusable, ask for another payment method |
65 on Mastercard and 1A on Visa. Neither value says anything about the payer. Both carry a retry instruction: present the same transaction again with 3-D Secure. A payment engine that files them as hard declines gives up sales the issuer was ready to approve. Nothing in the merchant’s logs separates these lost sales from ordinary declines, and the customer sees an unexplained failure.These categories become a commercial issue as soon as a provider assigns them on the merchant’s behalf. A provider that returns a “soft decline” label without the original code imposes its own interpretation, and that interpretation can’t be audited. Two providers rarely put the same code in the same family. Classification is the merchant’s job, and to do it the merchant needs the raw data, intact.
ISO 8583: what the standard sets, and what networks rewrite
ISO 8583 is the international standard for the format of messages exchanged between payment systems during a card transaction. In an authorization message, the verdict sits in a single field, DE39, which the 1987 version defines as two alphanumeric characters. That version is still widely deployed. The ISO 8583-1:2003 revision extends the field to three characters. Both formats coexist in the global installed base, and converting between them is part of what processors do. The standard publishes a table of values but reserves ranges for private and national use, and every divergence has come from those ranges.
| Code | Standard label | What it means in practice |
|---|---|---|
00 | Approved or completed successfully | Approved. Must still be captured within the network’s deadlines |
01 | Refer to card issuer | The issuer wants a phone call: a holdover from the voice-authorization era, still in use |
03 | Invalid merchant | The merchant agreement, not the cardholder: the MCC or merchant ID is the problem |
05 | Do not honour | A discretionary decline with no reason given. The industry’s biggest catch-all |
12 | Invalid transaction | A message field is inconsistent with the requested operation |
14 | Invalid card number | The number doesn’t exist. In a burst, it signals card enumeration |
30 | Format error | The message was built incorrectly; the sender is at fault |
41 | Lost card | Instrument reported lost |
43 | Stolen card | Instrument reported stolen |
51 | Not sufficient funds | Insufficient funds at the time of the request |
54 | Expired card | The expiration date in the submitted data has passed |
55 | Incorrect PIN | Wrong PIN; 75 once the allowed tries are exhausted |
57 | Transaction not permitted to cardholder | The card product does not allow this use |
59 | Suspected fraud | Issuer risk decision, final |
61 | Exceeds withdrawal amount limit | An amount limit, not a balance issue |
65 | Exceeds withdrawal frequency limit | A frequency limit. See the Mastercard divergence below |
91 | Issuer or switch inoperative | Technical unavailability, not an issuer decision |
96 | System malfunction | Generic processing malfunction |
MTI : 0110 response to an authorization request
DE38 : ------ authorization code: empty if declined
DE39 : 05 response code: the verdict, two characters
DE44 : 2 M additional results: address check, CVV2
DE48 : ...84=02... private field: at Mastercard, the Merchant Advice Code
DE54 : ... balances returned by the issuer, when it provides them
DE62 : ... network private field: internal reasons, indicators
Always store alongside DE39:
the network that responded, the ISO version used (2 or 3 characters),
the instruction code if any, the 3-D Secure authentication result,
the attempt ID and the route ID.In the ISO table, 65 means an exceeded frequency limit. Mastercard repurposed that value for the strong customer authentication requirement introduced by PSD2. Visa took a different route with 1A, a value absent from the original numeric table and outside any range reserved for that meaning. The two networks thus answer the same regulatory need with two incompatible values, and merchants have to handle both.
A second layer of rewriting happens on the acquirer side, because many processors normalize responses before passing them on. The goal is a consistent set of codes across networks, but normalization erases the information that distinguishes 65 from 61, or 1A from 05. Standard practice is to have the acquirer state in writing whether it remaps codes, and to receive the original field alongside the normalized one.
Proprietary codes: every network speaks its own language
A proprietary code is a decline value defined by a card network outside the ISO table. Each scheme publishes its own table in its rules, for its members. No global dictionary brings them together, so a merchant accepting six brands deals with six vocabularies, some of them not public. The list below covers the networks an international acquirer encounters, with their operator and launch year.
| Network | Operator | Since | What catches integrators off guard |
|---|---|---|---|
| Visa | Visa Inc. | 1958 | The value 1A for authentication required, outside the ISO table; retry categories are defined in the Visa Rules, published twice a year |
| Mastercard | Mastercard Incorporated | 1966 | The verdict is in DE39 and the instruction in a subelement of the private field DE48: ignoring the second means ignoring half the response |
| American Express | American Express Company | 1958 | Three-party model: the issuer and the network are the same entity, and the code table doesn’t match those of the four-party schemes |
| Discover Network | Capital One Financial Corporation, since May 18, 2025 | 1985 | Moving Capital One portfolios onto this network shifts entire volumes to a code table few European teams have wired up |
| JCB (Japan Credit Bureau) | JCB Co., Ltd. | 1961 | Acceptance outside Asia relies largely on the reciprocal alliance with Discover Global Network: the decline may come from a network other than the brand on the card |
| UnionPay | China UnionPay Co., Ltd. | 2002 | Its own specification, far removed from the US dialect; most volume is domestic debit, with separate limit rules |
| RuPay | NPCI | 2012 | Same operator as UPI, but two different code sets: mixing up the RuPay and UPI tables is a classic mistake in the Indian market |
| Cartes Bancaires (CB) | Groupement des Cartes Bancaires CB | 1984 | Detailed reasons travel in private fields, which PSPs collapse into three or four in-house labels |
| Elo | Elo Serviços S.A. | 2011 | Brazil’s third scheme, which carries social program cards: a decline flow unlike any commercial portfolio |
| Mir | NSPK (Natsionalnaya Sistema Platezhnykh Kart) | 2015 | Its own table and unstable acceptance abroad; handling declines is as much a compliance issue as a technical one |
| TROY | BKM (Bankalararası Kart Merkezi) | 2016 | Fast-growing domestic scheme: a Turkish acquirer must wire in its table with the same priority as Visa’s and Mastercard’s |
| Verve | Verve International, a subsidiary of Interswitch | 2009 | Africa’s largest domestic scheme by cards issued; its declines pass through the Interswitch switch before any other link |
| Meeza | Egyptian Banks Company (EBC) | 2019 | Public-sector salary and subsidy cards: limit declines outnumber risk declines |
| Interac Debit | Interac Corp. | 1994 | Canadian domestic debit and the international application on the same card are two separate instruments, with two decline tables |
On top of the verdict, Mastercard provides an explicit instruction, the Merchant Advice Code, which tells the merchant what it is allowed to do after a failure. The value carries a retry instruction; it says nothing about the reason for the decline. It is the most directly actionable piece of data in the entire authorization response, and the one integrations most often ignore.
01signals that updated account information is available: query the updater service before any retry.02allows a retry later: the cause is temporary, and the retry schedule applies.03prohibits retries: any further attempt violates the rules and is billed.21signals that the recurring payment has been canceled: the merchant must stop the subscription, not just let it keep failing.
Beyond cards: ISO 20022, ACH, UPI, and push rails
Every non-card rail has its own set of decline codes. European direct debit rejects with four-character ISO 20022 codes. US ACH returns codes starting with the letter R, while UPI responds with NPCI-specific values. Pix uses ISO 20022 messages governed by the rules of the Banco Central do Brasil. None of these vocabularies maps exactly onto another.
| Rail | Operator | Where the decline appears | Examples | Operating hours |
|---|---|---|---|---|
| SEPA Direct Debit Core / B2B | European Payments Council (scheme) | R-transactions, ISO 20022 codes | AM04, AC04, AC06, AG01, MD01, MS03 | Reject before settlement; return in the following days; refund right of 8 weeks under Core |
| ACH Network | Nacha (rules), FedACH and EPN (clearing) | R return codes | R01 insufficient funds, R02 account closed, R03 no account found, R10 customer dispute, R29 corporate customer refusal | 60 calendar days for consumers, 2 business days for businesses |
| SEPA Instant Credit Transfer (SCT Inst) | European Payments Council | Negative pacs.002 | ISO 20022 codes published in the rulebook | A few seconds. No response within the time limit counts as a reject |
| Unified Payments Interface (UPI) | National Payments Corporation of India (NPCI) | NPCI response codes | Its own values, distinct from both ISO 8583 and ISO 20022 | Real time, distinguishing technical declines from business declines |
| Pix | Banco Central do Brasil, through the SPI infrastructure | ISO 20022 messages | Reason codes published by the central bank | Real time; a return of funds is a devolução, not a decline |
The US rail is the only one that explicitly caps the originator’s exposure with numerical ratios. The Nacha Operating Rules set an unauthorized return rate threshold of 0.5%, and review thresholds of 3% for administrative returns and 15% for overall returns. Enforcing these thresholds falls to the originating institution, which can shut off the rail at whatever notice it chooses, with no regulator involved. On this rail, the return rate is therefore a condition of access to the service, not a performance metric.
UPI poses a challenge because of the number of parties involved. A transaction passes through the third-party app, the sponsor bank, the NPCI switch, the payer’s bank, and the payee’s bank. The returned code doesn’t always identify which party caused the failure. That is why NPCI publishes decline statistics by bank, separating technical failures from business declines. The data shows the share of failures attributable to each bank, and no other rail currently offers anything comparable.
Payer-initiated push rails form a final family, in which the customer issues the payment order. PromptPay has been operated by National ITMX under a Bank of Thailand mandate since 2017, and PayNow by BCS on behalf of the Association of Banks in Singapore since the same year. DuitNow has been run by Payments Network Malaysia (PayNet) since 2018, with its DuitNow QR standard from 2019, while Bank Indonesia, together with ASPI, has mandated QRIS since 2019. On these rails, the merchant sends no authorization request. It presents a way to initiate payment, usually a QR code, and then waits for the settlement notification.
Retries: what the rules allow, and what they charge for
A retry is a new request submitted after a decline, on the same instrument and for the same amount due. Starting in 2021, the networks capped retries, quantified them, and began charging for them. The move followed years in which some merchants replayed hard declines dozens of times per card. The networks justify these limits by the authorization capacity each attempt consumes and by the strain repeated attempts put on the relationship between issuers and their customers.
WEB debit to a given account, the originating institution must verify that the account exists and is open. The decline is prevented rather than absorbed.| Rail | What the rule allows | What it charges | Who keeps count |
|---|---|---|---|
| Visa | 15 retries within a rolling 30-day window for a declined transaction, since April 17, 2021 | Per-attempt fees beyond the cap, passed on by the acquirer | The network, across all acquirers |
| Mastercard | Whatever the Merchant Advice Code says: 02 allows a delayed retry; 03 and 21 prohibit it | Penalty per excessive attempt raised from $0.10 to $0.50 in January 2026 | The network, on the card–merchant–amount combination |
| ACH (Nacha) | Up to two re-presentments after a return for insufficient funds | Return fees on each presentment, paid by the originator | The originating institution, under the network’s return-rate thresholds |
| SEPA Direct Debit | Re-presentment allowed within the limits of the EPC rulebook; never after AC04 or MD01 | Bank reject fees, often higher than the margin on the installment | The creditor’s bank, under the collection agreement |
| Instant payments (SCT Inst, Pix, UPI, PromptPay, PayNow, DuitNow) | No retry as such: you send a new request | Nothing billed, but a risk of irreversible double settlement | Nobody. Idempotency is the merchant’s responsibility |
- Count attempts per instrument and per merchant, across all providers. A multi-acquirer setup doesn’t reset any counter.
- Set an internal cap below the network’s, enforced in code rather than by team guidelines.
- Log the reason for each attempt, not just its outcome. Without it, no retry policy can be evaluated after the fact.
- Space out re-presentments on insufficient-funds declines. Replaying within the minute doesn’t change the account balance and uses up the quota.
- Separate technical retries, measured in seconds, from commercial retries, measured in days and owned by the product team.
91 and 96 and timeouts.What declines cost, and why no one sees it
The cost of a decline combines uncollected revenue and knock-on expenses. That makes declines the only payment cost that appears on no invoice: no statement, settlement advice, or fee line ever mentions them. At constant traffic, one extra point of authorization rate is worth one percent of collected revenue. A committee that spends six weeks negotiating two basis points of acquirer margin is therefore working on a variable often worth a tenth of what the authorization rate is worth.
The cost falls into four buckets, three of which escape payment reporting. The first is easy to read. The other three sit in product, marketing, and customer service, where no one has established the link to a response code.
Measurement: you can’t steer a rate, but you can steer a mix
Measuring declines relies on two distinct things: an overall rate and a distribution of codes. A change in the overall rate doesn’t point to any action on its own, since it tells you neither which segment moved, nor which code gained weight, nor whether the gap exceeds statistical noise. The code distribution, by contrast, identifies the segment and the code within the hour. A spike concentrated on 65 and 1A points to an exemption scope set too wide; a rise in 54 limited to subscriptions, to aging stored credentials; a burst of 14 on tiny amounts, to an attack.
Per attempt, stored as is:
original_code exact value returned, not remapped
network Visa, Mastercard, UnionPay, RuPay, TROY, Elo...
iso_version 2 or 3 characters: changes the meaning of the value
instruction_code Merchant Advice Code, or empty if the network produces none
auth_result 3-D Secure outcome, or no authentication
issuer_bin first 6 to 8 digits: the real diagnostic grain
issuing_country distinct from the customer's country
channel first transaction, stored credential, recurring, wallet
attempt_rank 1, 2, 3... on the same instrument and the same merchant
route acquirer and contract ID used
Derived ratios, calculated by code and by segment:
code_share weight in total declines
recovery_rate successful subsequent attempts / retried attempts
unmapped_share declines falling into the unknown state -- a debt, not a categoryThe minimum segmentation has six dimensions: issuer BIN, issuing country, card type, channel, amount band, and whether authentication was performed. An overall rate blends all six, so an anomaly confined to one segment shows up as a small wobble. A drop concentrated on two BINs, with every other segment flat, points to an issuer incident, whereas a drop across all segments at a specific time points to a deployment. The two profiles call for different responses, and an aggregate figure conflates them. Only segmentation tells them apart.
Improvement: the levers, ranked by return
Approval levers rank by increasing effort, and the order in which you pull them determines the result. Two are configuration changes that produce a measurable effect within weeks, while a third requires development work. The last involves setting up a legal entity and months of work, for the largest gain on international flows. Starting with that last lever ties up several months before any result, while the configuration levers could have been paying off in the meantime. It is the costliest mistake in the field.
| Lever | What it fixes | Effort | What to expect |
|---|---|---|---|
| Network tokens | 54 declines, reissued cards, unfavorable scoring on stored credentials | Configuration at the PSP | +2 to +3 authorization points claimed by the networks, and −28% fraud on tokenized flows (Visa, 2024) |
| Account updater services | 54 declines on the older base of stored cards | Configuration, plus basic reconciliation | Complements tokens: covers the part of the base that tokenization hasn’t absorbed |
| Automatic retry on `65` and `1A` | Authentication soft declines treated as failures | Development in the checkout flow | Recovers sales the issuer was ready to approve, without the customer re-entering anything |
| Quality of the data sent | Discretionary 05 declines, overly strict issuer scoring | Integration: readable merchant name, correct MCC, billing data | Varies by issuer, but no recurring cost |
| Correct initiator indicators | 12 and 05 declines on recurring and one-click payments | Integration, often a field filled in wrong from the start | Fixes declines nothing else fixes: the message itself was wrong |
| Re-presentment schedule | 51 and AM04 declines replayed too early | Product and billing | For subscriptions, the gap between the first-attempt rate and the final rate measures exactly the value created |
| Domestic acquiring | Declines caused by the setup: the issuer treats the flow as cross-border | A local entity or a provider that acquires locally; several months | The largest gain on an international flow, and the only lever that addresses the cause |
Two common practices backfire. The first is switching off authentication to “unblock” a flow. The authorization rate rises for a few days, then fraud and disputes climb, and the cost outweighs the gain before the quarter is out. The second is piling retries onto a structural decline, which recovers very few transactions and fills up the networks’ monitoring counters.
- Tackle concentrated declines first: two BINs carrying 20% of volume are worth as much as all the global settings combined.
- Measure every change against a control group. A rate that rises after a deployment doesn’t prove the deployment caused it.
- Set a minimum
nper segment before opening a ticket: a three-point gap on 200 transactions is not statistically meaningful. - Escalate issuer incidents through the acquirer, with the exact time, the BIN, and a comparison with the same hour seven days earlier.
- Revise the code mapping table every time a network publishes new rules, and date it.