What ISO 8583 is

ISO 8583 is the international standard that defines the message format used by card-based payment systems. Published by ISO/TC 68 (financial services), it describes how terminals, acquirers, payment networks and issuers exchange authorizations, financial transactions, reversals, file updates, reconciliation and network management between each other. Virtually every card rail — including VISA, Mastercard, American Express, JCB, Discover, UPI as well as most domestic schemes — relies on an ISO 8583 dialect.

The spec does not mandate a transport (it is commonly carried over TCP, X.25 in legacy deployments, or HTTP tunnels) and does not impose a single character encoding. A single byte sequence can therefore be interpreted differently depending on the scheme profile (VISA BASE I / BASE II, Mastercard IPM / MIP) and the acquirer configuration.

Versions of the standard

ISO 8583:1987
The original release. Defines the MTI, primary and secondary bitmaps and 128 data elements. This is by far the most deployed version on production payment rails — most VISA and Mastercard traffic is still 1987-compatible.
ISO 8583:1993
Restructures some data elements, adds clarifications around file actions (class 3xx) and network management (class 8xx), and tightens the semantics of the repeat indicators. Many schemes adopted cherry-picked 1993 features while keeping the 1987 skeleton.
ISO 8583:2003
A structural modernization, notably widening several fields and updating cryptographic references. Rarely used end-to-end in card payments: the industry largely froze on 1987/1993-compatible profiles.

Message anatomy

Every ISO 8583 frame is a concatenation of the following blocks, in this order:

  1. Optional header — scheme- or carrier-specific (for example, VISA’s BASE I header, or an ISO network-management prefix). Not part of the ISO standard itself.
  2. MTI — four digits identifying the message. See MTI.
  3. Primary bitmap — 64 bits (8 bytes binary, or 16 hex characters when encoded as ASCII hex) indicating which of data elements 1 through 64 are present.
  4. Secondary bitmap — present when bit 1 of the primary bitmap is set; covers data elements 65 through 128.
  5. Data elements — concatenated in ascending order of their field number. Fixed-length fields consume exactly their declared length; variable-length fields (LLVAR, LLLVAR) start with a 2- or 3-digit length indicator.

Common encodings on the wire include pure binary, BCD (two digits per byte), ASCII and EBCDIC. A single message can mix encodings: for instance, the MTI may be BCD while the PAN (field 2) is ASCII digits.

Message Type Indicator (MTI)

The MTI is a four-digit code sitting at the very start of the ISO 8583 payload (after any carrier header). Each digit encodes one facet of the message.

Position 1 — ISO version

ValueMeaning
0ISO 8583:1987 (the most deployed version in production)
1ISO 8583:1993
2ISO 8583:2003
3–7Reserved by ISO
8Reserved for national use
9Reserved for private use

Position 2 — Message class

ValueMeaning
1xxAuthorization
2xxFinancial
3xxFile actions
4xxReversal / chargeback
5xxReconciliation
6xxAdministrative
7xxFee collection
8xxNetwork management (sign-on, sign-off, echo, key exchange)
9xxReserved by ISO

Position 3 — Message function

ValueMeaning
0Request
1Request response
2Advice
3Advice response
4Notification
5Notification acknowledgement
6Instruction
7Instruction acknowledgement

Position 4 — Transaction origin

ValueMeaning
0Acquirer
1Acquirer repeat
2Issuer
3Issuer repeat
4Other
5Other repeat

Common MTI values

MTINameDescription
0100Authorization requestCardholder-initiated request to authorize a transaction (e.g. card-present purchase).
0110Authorization responseIssuer reply to an authorization request, carrying the response code in field 39.
0120Authorization adviceAcquirer informs the issuer of an authorization decision it already took (e.g. stand‑in).
0130Authorization advice responseIssuer acknowledgement of an advice.
0200Financial transaction requestRequest combining authorization and posting in a single message (e.g. ATM withdrawal, completed purchase).
0210Financial transaction responseIssuer reply to a 0200.
0220Financial transaction adviceAdvice that a financial transaction has occurred.
0230Financial transaction advice responseIssuer acknowledgement of the 0220.
0400Reversal requestAcquirer requests cancellation of a previously approved authorization (e.g. timeout, partial reversal).
0410Reversal responseIssuer acknowledgement of the reversal.
0420Reversal adviceAcquirer advises the issuer of an already-performed reversal.
0430Reversal advice responseIssuer acknowledgement of a 0420.
0800Network management requestAdministrative message: sign-on, sign-off, key exchange, echo test.
0810Network management responseReply to a 0800, carrying the network management information code in field 70.
0820Network management adviceUnsolicited network event (e.g. cutover notification).
0830Network management advice responseAcknowledgement of a 0820.

Bitmaps

A bitmap is a fixed-width binary map that declares which data elements are present in the message. The primary bitmap is 64 bits wide and covers fields 1 to 64: each bit set to 1 means the corresponding field is present, each bit set to 0 means it is absent.

Bit 1 of the primary bitmap is special: when set, it signals that a secondary bitmap — another 64 bits — follows immediately and covers fields 65 to 128. That is why the Bitmap itself is declared as data element 1 in the field table below.

Example. A primary bitmap of 7234054128C08000 (hex) decodes as binary 0111 0010 0011 0100 0000 0101 0100 0001 0010 1000 1100 0000 1000 0000 0000 0000, which means the following fields are present: 2, 3, 4, 7, 11, 12, 14, 22, 24, 26, 32, 35, 37, 41, 42, 49. Bit 1 is 0, so no secondary bitmap follows.

The ISO standard also defines a tertiary bitmap carried in field 65 when even finer field ranges are needed, but it is extremely rare on card rails.

Data elements (fields 1–128)

The base ISO 8583 field catalog. Individual schemes and acquirers can — and do — override lengths, tighten formats or attach private meaning to the reserved fields (48, 62, 63, 120–127). Always consult the scheme-specific specification before relying on a wire definition in production.

#NameFormatLengthNotes
1Bitmapb64Secondary bitmap indicator. Present when bit 1 of the primary bitmap is set.
2Primary account number (PAN)nLLVAR ..19
3Processing coden6
4Amount, transactionn12
5Amount, settlementn12
6Amount, cardholder billingn12
7Transmission date & timen10MMDDhhmmss, UTC.
8Amount, cardholder billing feen8
9Conversion rate, settlementn8
10Conversion rate, cardholder billingn8
11System trace audit number (STAN)n6
12Time, local transactionn6hhmmss.
13Date, local transactionn4MMDD.
14Date, expirationn4YYMM.
15Date, settlementn4
16Date, conversionn4
17Date, capturen4
18Merchant type / merchant category code (MCC)n4
19Acquiring institution country coden3
20PAN extended country coden3
21Forwarding institution country coden3
22Point-of-service entry moden3
23Card sequence number (PAN sequence)n3
24Network international identifier (NII) / function coden3
25Point-of-service condition coden2
26Point-of-service capture coden2
27Authorizing identification response lengthn1
28Amount, transaction feex+n9Signed, 'C' (credit) or 'D' (debit) + 8 digits.
29Amount, settlement feex+n9
30Amount, transaction processing feex+n9
31Amount, settlement processing feex+n9
32Acquiring institution identification codenLLVAR ..11
33Forwarding institution identification codenLLVAR ..11
34Primary account number, extendednsLLVAR ..28
35Track 2 datazLLVAR ..37
36Track 3 datanLLLVAR ..104
37Retrieval reference numberan12
38Authorization identification responsean6
39Response codean2
40Service restriction codean3
41Card acceptor terminal identificationans8
42Card acceptor identification codeans15
43Card acceptor name/locationans40Name 1–23, city 24–36, country 37–38 (ISO‑3166‑1 alpha‑2).
44Additional response dataanLLVAR ..25
45Track 1 dataanLLVAR ..76
46Additional data — ISOanLLLVAR ..999
47Additional data — nationalanLLLVAR ..999
48Additional data — privateanLLLVAR ..999
49Currency code, transactiona/n3ISO‑4217 numeric.
50Currency code, settlementa/n3
51Currency code, cardholder billinga/n3
52PIN datab64
53Security-related control informationn16
54Additional amountsanLLLVAR ..120
55ICC data — EMV TLV (reserved for ISO)bLLLVAR ..999EMV tags (chip transactions).
56Reserved for ISOnLLLVAR ..999
57Reserved for national useansLLLVAR ..999
58Reserved for national useansLLLVAR ..999
59Reserved for national useansLLLVAR ..999
60Reserved for national (advice reason, POS data, etc.)ansLLLVAR ..999
61Reserved for national (POS data)ansLLLVAR ..999
62Reserved for private useansLLLVAR ..999
63Reserved for private useansLLLVAR ..999
64Message authentication code (MAC)b64
65Extended bitmap indicator (tertiary bitmap)b1Rarely used; present when bit 65 of the secondary bitmap is set.
66Settlement coden1
67Extended payment coden2
68Receiving institution country coden3
69Settlement institution country coden3
70Network management information coden3
71Message numbern4
72Message number, lastn4
73Date, actionn6YYMMDD.
74Credits, numbern10
75Credits, reversal numbern10
76Debits, numbern10
77Debits, reversal numbern10
78Transfer numbern10
79Transfer, reversal numbern10
80Inquiries numbern10
81Authorizations, numbern10
82Credits, processing fee amountn12
83Credits, transaction fee amountn12
84Debits, processing fee amountn12
85Debits, transaction fee amountn12
86Credits, amountn16
87Credits, reversal amountn16
88Debits, amountn16
89Debits, reversal amountn16
90Original data elementsn42
91File update codean1
92File security coden2
93Response indicatorn5
94Service indicatoran7
95Replacement amountsan42
96Message security codeb64
97Amount, net settlementx+n17
98Payeeans25
99Settlement institution identification codenLLVAR ..11
100Receiving institution identification codenLLVAR ..11
101File nameansLLVAR ..17
102Account identification 1ansLLVAR ..28
103Account identification 2ansLLVAR ..28
104Transaction descriptionansLLLVAR ..100
105Reserved for ISO useansLLLVAR ..999
106Reserved for ISO useansLLLVAR ..999
107Reserved for ISO useansLLLVAR ..999
108Reserved for ISO useansLLLVAR ..999
109Reserved for ISO useansLLLVAR ..999
110Reserved for ISO useansLLLVAR ..999
111Reserved for ISO useansLLLVAR ..999
112Reserved for national useansLLLVAR ..999
113Reserved for national useansLLLVAR ..999
114Reserved for national useansLLLVAR ..999
115Reserved for national useansLLLVAR ..999
116Reserved for national useansLLLVAR ..999
117Reserved for national useansLLLVAR ..999
118Reserved for national useansLLLVAR ..999
119Reserved for national useansLLLVAR ..999
120Reserved for private useansLLLVAR ..999
121Reserved for private useansLLLVAR ..999
122Reserved for private useansLLLVAR ..999
123Reserved for private useansLLLVAR ..999
124Reserved for private useansLLLVAR ..999
125Reserved for private useansLLLVAR ..999
126Reserved for private useansLLLVAR ..999
127Reserved for private useansLLLVAR ..999
128Message authentication code (MAC)b64

Format abbreviations

CodeMeaning
aAlphabetic characters (A–Z, a–z).
nNumeric digits (0–9). Often BCD‑encoded on the wire.
sSpecial characters (punctuation, separators).
anAlphanumeric (letters + digits).
asAlphabetic + special.
nsNumeric + special.
ansAlphanumeric + special — the most permissive text format.
bBinary data. Lengths are expressed in bits.
zMagnetic stripe track data (with field separator 0xD for Track 2).
x+nSigned amount: one character 'C' (credit) or 'D' (debit) followed by n digits.
LLVARVariable length. The first 2 digits hold the length of the remaining value (e.g. 'LLVAR ..19' → up to 19 bytes).
LLLVARVariable length with a 3‑digit length prefix (up to 999 bytes of value).

VISA vs Mastercard specifics

Both VISA and Mastercard inherit the ISO 8583 skeleton but layer their own semantics on top of it.

  • VISA runs the BASE I (authorization) and BASE II (clearing) profiles over VIP. Private fields — especially 48, 62 and 63 — carry VISA-proprietary subfields. Lengths for certain fields are tightened (for example field 22 — POS entry mode — and field 44 — additional response data).
  • Mastercard uses the IPM (Integrated Product Message) format for clearing and MIP for the network transport layer. Mastercard makes heavy use of PDS (Private Data Subelements) packed inside fields 48, 124 and 127, each with its own tag/length/value encoding.

Because the two schemes disagree on the format of several private and national fields, the same raw bytes can decode cleanly under one profile and break alignment under the other. That is exactly what ISOParser highlights: paste your message into the parser and compare the VISA and Mastercard interpretations side by side.

References