Reference⚙️ Card processing & networksAdvanced⏱ 22 min read

⚡ Authorization

How an authorization request travels end to end: ISO 8583 messages, response codes, pre-authorization, stand-in, reversals, and timeout handling

How an authorization request travels

Authorization is the request in which the acquirer asks the card issuer whether it agrees to pay for a specific transaction. It is the first step in a card transaction's life cycle, ahead of capture and then clearing. In under two seconds, the request leaves the terminal (or payment page), passes through the acquirer and the card network (scheme), and reaches the issuer. The answer comes back the same way. At this stage, no money moves: the issuer simply places a hold on the funds in the cardholder's account and commits, subject to conditions, to pay. Funds only move at clearing, after capture.

CustomercheckoutMerchant+ PSP / gatewayAcquirerthe merchant's bankSchemeCB · Visa · MCIssuerthe customer's bankpaysauthorizationISO 8583routingcode 00approvalapprovedconfirmationend-to-end authorization: ~1 to 2 secondsBatch / captureend of dayClearingscheme clearingSettlementnet payout D+1/D+2eveningThe merchant receives a net payout: gross amount − interchange − scheme fees − acquirer margin
Timeline of an in-person authorization (chip and PIN)
Cardholder
Inserts or taps the card and enters the PIN
The terminal talks to the EMV chip: application selection (AID), authentication, and generation of an ARQC cryptogram
POS terminal
Builds the authorization request
ISO 8583 message (or CB2A in France): PAN, amount, MCC, EMV data, terminal and merchant IDs
Acquirer
Checks and routes the request
Consistency checks and merchant limits, then routing to the network based on the BIN and the brand selected (Cartes Bancaires, Visa, Mastercard, etc.)
Scheme (network)
Switches the message to the issuer
The network switch identifies the issuing bank from its BIN tables and runs its own checks (velocity, format, STIP if needed)
Issuer
Decides in ~100 to 300 ms
Balance and open-to-buy, limits, fraud scoring, ARQC verification, card status → response code + authorization code
Notification
The response travels back down the chain
Scheme → acquirer → terminal: “APPROVED” or a decline reason is displayed. The funds are held at the issuer
< 2 s
typical end-to-end authorization response time
≈14B
CB transactions a year in France
GIE CB, 2024
100–300 ms
issuer decision budget (including scoring)
≈ 2-3 %
average decline rate for in-person payments (much higher in e-commerce)
🔑
Authorization ≠ debit
An approved authorization holds funds without moving them. Until the transaction is captured and then cleared, the merchant is not paid and the cardholder is not debited; the cardholder sees a “pending” transaction. An authorization that is never captured expires, and the issuer releases the hold.

ISO 8583 messages

The ISO 8583 standard defines the messages exchanged among acquirers, networks, and issuers. Every message starts with a 4-digit MTI (Message Type Indicator), which encodes the version (0xxx = 1987, 1xxx = 1993), the message class (x1xx = authorization, x2xx = financial, x4xx = reversal, x8xx = network management), the function (xx0x = request, xx1x = response, xx2x = advice), and the origin. In France, the CB2A protocol governs terminal-to-acquirer communication, using the same message logic.

MTI 0100bitmap: which DEs are presentData elements presentAcquirerIssuer0100: authorization requestfunds held, no money moves0110: response (DE39 + DE38)00 approved · 05 declined · 51 insufficient funds0420: reversal advicecancels the phantom authorization0430: reversal responseno acknowledgment: repeat as 0421 (store-and-forward)0200/0210: financial requestauthorization + capture in a single message (ATM withdrawal)0100 left unansweredtimeout: 30 to 60 s at the terminalNEVER assume a decline0400/0410 · online reversal0800/0810 · sign-on, echo testMost “double charges” are a phantom authorization that was never reversed, followed by a successful retry.A field exists only if its bit is set in the bitmap; a retry carries a new STAN.
MTIMessage formatRole
0100Authorization RequestAuthorization request (no movement of funds)
0110Authorization ResponseIssuer response (DE39 response code + DE38 authorization code)
0120 / 0130Authorization AdviceAfter-the-fact notification (e.g., authorization given in stand-in) and its response
0200 / 0210Financial Request / ResponseFinancial request (authorization and capture in one message, e.g., ATM withdrawal)
0400 / 0410Reversal Request / ResponseCancels a previous authorization
0420 / 0430Reversal Advice / ResponseCancellation sent as an advice, repeated until acknowledged
0800 / 0810Network ManagementTechnical messages: sign-on, sign-off, echo test, key exchange
Common MTIs (1987 version, the most widely used in card processing)

The message body is made up of numbered fields (Data Elements, or DEs), whose presence is flagged by one or more bitmaps. Key fields include DE2 (PAN), DE3 (processing code), DE4 (amount), DE11 (STAN), DE14 (expiration date), DE18 (MCC), DE22 (POS entry mode), DE37 (RRN), DE38 (authorization code), DE39 (response code), DE41/DE42 (terminal and merchant IDs), DE49 (currency), and DE55 (EMV data).

Authorization request 0100: key fields annotated
MTI  : 0100                authorization request
DE2  : 497010######1234    PAN (masked here; all 16 digits in clear on the network)
DE3  : 000000              processing code: purchase of goods/services
DE4  : 000000012550        amount: 125.50 (12 digits, 2 implied decimals)
DE7  : 0711123456          transmission date/time MMDDhhmmss (UTC)
DE11 : 001234              STAN - System Trace Audit Number
DE14 : 2812                expiration date YYMM (December 2028)
DE18 : 5812                MCC: restaurants
DE22 : 051                 entry mode: EMV chip + PIN
DE37 : 619214001234        RRN - Retrieval Reference Number
DE41 : 00012345            terminal ID (TID)
DE42 : 000000001234567     merchant ID (MID)
DE49 : 978                 transaction currency: EUR (ISO 4217 numeric)
DE55 : 9F2608A1B2C3D4...   EMV data: ARQC, ATC, TVR, UN... (TLV)
ℹ️
Each network speaks its own dialect
Visa (BASE I / V.I.P.), Mastercard (Banknet / CIS), and CB, France's domestic scheme (e-RSB), each implement their own variant of ISO 8583. The principles are the same, but private fields, subfields, and usage rules differ from network to network. Converting between variants is a large part of what processors do, and one reason switching platforms exist. An ISO 20022 version of authorization messaging has been specified, but ISO 8583 remains overwhelmingly dominant in 2026.

Response codes: reading a decline

The response code is the value the issuer uses to explain its decision, carried in field DE39 of the response message. It drives the retry strategy, because not every decline reason calls for the same action. Declines fall into two groups: hard declines (stolen card, invalid card) and soft declines (insufficient funds, authentication required). A soft decline can succeed if something about the transaction changes.

CodeMeaningTypeMerchant best practice
00ApprovedAcceptanceCapture within the time limit (see clearing)
03Invalid merchantHardCheck the acquiring contract and MCC setup
05Do not honor (generic decline)Soft/HardIssuer's catch-all decline; at most 1 retry, with 3DS
14Invalid card numberHardNever retry: the PAN does not exist (often card testing)
41Lost cardHardNever retry; fraud risk, do not ship
43Stolen cardHardSame as 41: permanent block, report it
51Insufficient fundsSoftRetry later (e.g., D+3, after payday); works well for subscriptions
54Expired cardSoftAsk for the new card or use the scheme's account updater
55Incorrect PINSoftCardholder re-enters the PIN; card blocked after 3 failed attempts (code 75)
57Transaction not permitted to cardholderHardCard not enabled for this use (e.g., e-commerce blocked); do not retry
59Suspected fraudHardIssuer suspects compromise; do not retry, do not ship
61Exceeds amount limitSoftOffer a lower amount or an installment option
65Exceeds frequency limit / SCA required (Mastercard)SoftAt Mastercard, 65 = resubmit the transaction with 3DS
1ASCA required (Visa / CB)SoftPSD2 soft decline: resubmit the transaction immediately with 3DS
75PIN tries exceededHardCard blocked after PIN failures; refer the cardholder to their bank
91Issuer unavailableSoftQuick technical retry (issuer or link down)
96System malfunctionSoftTechnical retry with backoff; monitor if it recurs
Most common ISO 8583 response codes (DE39)
⚠️
SCA soft declines: the 65/1A trap
Since PSD2, an issuer that requires strong customer authentication on an unauthenticated e-commerce transaction responds with 65 (Mastercard) or 1A (Visa/CB). This code is not a decline: it asks for the transaction to be resubmitted through 3DS. A PSP that does not implement this step-up lets transactions fail that the issuer would have approved after authentication. By contrast, retrying a code 14, 41, 43, or 59 triggers scheme penalties for excessive retries. Visa caps retries at 15 per card over 30 days and charges fees beyond that.

French issuers also respond with CB-specific codes carried in private fields, which PSPs roll up into categories such as “bank decline,” “technical decline,” and “fraud.” Managing the approval rate requires the PSP to return the raw DE39 codes for every transaction, because these aggregated categories lump together reasons that call for opposite responses.

Pre-authorization and capture: one-step and two-step sales

A card sale involves two separate operations: authorization, which secures the issuer's commitment, and capture, which submits the final amount for settlement. Depending on the business, the two happen at the same time or at different times. In a one-step sale, authorization and capture happen together, and the authorized amount goes into clearing unchanged the same evening (typical of in-store retail). In a two-step sale, the steps are separate: a pre-authorization holds an estimated amount. The capture then sets the amount actually owed, sometimes several days later; it can be partial or supplemented by incremental authorizations.

CriterionOne-step saleTwo-step sale (pre-auth + capture)
When the account is debitedCleared the same evening (D/D+1)At capture, which may come several days later
AmountFinal at authorizationEstimated at pre-auth, adjusted at capture (≤ authorized amount, unless incremental)
Use caseRetail, restaurantsHotels, car rental, fuel, e-commerce with delayed shipping
Cardholder's fundsHeld, then debitedHeld (sometimes for a long time); released if not captured
Merchant riskLowAuthorization expires if captured too late → risk of decline at settlement
One-step vs. two-step sale
🏨
Hotels
Pre-auth at check-in (room nights plus deposit), incremental authorizations for extras, capture at check-out. The schemes allow extended validity (up to ~30 days).
⛽
Fuel (automated fuel dispensers)
Pre-auth for a maximum amount (e.g., €120–150 in France), then partial capture of the amount actually pumped and immediate release of the balance (partial reversal).
📦
E-commerce with delayed shipping
Scheme rules allow capture only when the order ships. If shipping takes longer than the authorization remains valid, the merchant must reauthorize (with the risk of a decline in the meantime).
🚗
Car rental
Pre-auth for the deposit plus the estimated rental; final capture adjusted (fuel, damage). “Surprise” charges after the vehicle is returned are a recurring source of chargebacks.
⚠️
How long an authorization stays valid
An authorization is valid for a limited time, set by each network. As a rule it lasts about 7 days, and up to 30/31 days for hotels and car rental at Visa and Mastercard. Capturing after that window counts as late presentment: the issuer can refuse settlement or dispute the transaction (chargeback). The schemes also charge misuse-of-authorization fees to acquirers whose merchants let authorizations expire without capturing or reversing them.
  • Partial capture: capturing less than the authorized amount (the balance must be released with a partial reversal).
  • Multiple captures: several captures against a single authorization (split shipments), supported depending on the scheme and acquirer.
  • Incremental authorization: increasing the amount held without a new transaction (hotels, car rental).
  • Zero-amount authorization (account verification): checking that a card is valid without holding funds. This is the proper way to save a card on file, instead of €1 pre-auths.

Stand-in processing: when the issuer does not respond

Stand-in processing is the mechanism by which the network makes the authorization decision on behalf of an issuer it cannot reach because of an outage, maintenance, or a timeout. Visa calls it STIP, Mastercard calls it Stand-In, and in the CB ecosystem it is known as backup processing. The scheme applies parameters agreed in advance with the issuer: limits by MCC and time period, checks against blocked card lists, and velocity checks. It can even validate the cryptogram if the issuer has shared its keys.

Authorization given in stand-in
Acquirer
Sends the 0100 to the network
Normal routing to the issuer
Scheme
Detects that the issuer is unavailable
Issuer link timeout or explicit sign-off
Scheme (STIP)
Decides based on the issuer's parameters
MCC limits, exception file (blocked cards), activity limits
Scheme
Returns a 0110 to the acquirer
A flag shows that the response came from stand-in
Scheme
Notifies the issuer after the fact
0120 advice: the issuer posts the transaction as soon as it is back online
ℹ️
Who bears the risk?
An authorization given in stand-in binds the issuer, within the parameters it accepted. If STIP followed the rules, the issuer must honor the payment even if the account turns out to have insufficient funds. Stand-in limits are therefore conservative, often tens to a few hundred euros depending on the MCC. Issuers also keep their exception file up to date: the list of cards to block even while the issuer is offline.

Stand-in is also a deliberate business continuity tool. Some issuers hand overnight decisions or very low-risk transactions to the network to smooth their load. Conversely, a transaction declined in stand-in (code 91 or a parameter-based decline) is worth retrying once the issuer is back online: the decline came from the network's parameters, not from an issuer decision on that account.

Reversals, voids, timeouts, and repeats

A reversal (0400/0420 messages) cancels all or part of an authorization before clearing, and the issuer releases the held funds immediately. A refund is a separate operation: a reverse financial transaction processed after clearing. In PSP terminology, a void is a third operation: canceling a transaction that has been captured but not yet submitted for clearing.

authorizationcaptureclearingcreatedintent, no debitauthorizedfunds on holdcapturedsubmitted for clearingsettledpaid out, net of feesfaileddeclined, no moneyvoidedauthorization releasedrefundedmoney returneddisputedchargeback pendingdecline (05 / 51)voidrefundchargeback, even after a refundvoid: free, instantrefund: 3 to 10 days, fees lostasynchronous refund: can failforbidden: settled → voidedforbidden: failed → capturedNo transition triggered by the browser's back buttononly a signed webhook, or a server-side read, is authoritativeauthorized, reversiblevoidable at no costirreversible money movementA payment that is authorized but never captured expires: the authorization drops and the sale never happens.
TransactionTimingCardholder impactMerchant cost
Reversal (0400/0420)After authorization, before captureFunds released in near real timeNone (no clearing)
Void / cancellationAfter capture, before submission to clearingThe cardholder only sees a pending charge that disappearsNone or minimal
RefundAfter clearingCredit visible within 2 to 5 business daysProcessing fees; the original interchange is not always returned
Void vs. reversal vs. refund

A timeout occurs when the terminal or PSP has sent a 0100 and received no 0110 within the allowed time, typically 30 to 60 seconds on the terminal side. The issuer may have approved or declined the transaction, and the sender has no way of knowing which, so it must never treat a missing response as a decline. Instead, the system sends a reversal advice (0420) to cancel any phantom authorization, then repeats it (0421, the repeat mechanism) until it receives a 0430 acknowledgment, usually through a store-and-forward (SAF) queue.

Reversal advice after a timeout, annotated
t0        : send 0100 (STAN 001234, RRN 619214001234)
t0 + 45 s : no 0110 received -> TIMEOUT
t0 + 45 s : send 0420 (reversal advice)
            DE90 = original data: MTI 0100, STAN 001234,
                   date/time DE7, acquirer/issuer IDs
            reason (DE25/DE22 depending on dialect) = "timeout / unable to complete"
t0 + 75 s : no 0430 -> repeat as 0421 (same content)
...         repeats at intervals (SAF) until 0430 acknowledgment
result    : if the issuer had approved, the hold is released;
            if it had received nothing, the 0420 is simply ignored.
⚠️
Double charges almost always start here
Most “double charges” that cardholders notice come from a phantom authorization that was never reversed after a timeout, followed by a successful retry. Two holds on the funds then coexist for a few days. The fix is to log every 0100 that went unanswered and make sure the matching reversal is sent and repeated. The retry must carry a new STAN, because resending the original message unchanged risks duplicates in clearing.
  • Full reversal: releases the entire authorization (cart abandoned after authorization, timeout).
  • Partial reversal: brings the hold down to the actual amount (fuel, partial capture).
  • Advice vs. request: the 0420 (advice) is fire-and-forget with repeats, suited to post-incident cleanup; the 0400 (request) waits for a synchronous response.
  • Idempotency: on the PSP/API side, every payment creation request must be idempotent (idempotency key) so it survives HTTP timeouts without duplicating the authorization.