Payments reference

ISO 8583 reference: MTI, bitmaps, data elements and response codes

ISO 8583 is the message standard behind card authorizations between terminals, acquirers, networks and issuers. This page explains how to read a message and lists the fields and codes you will meet most often.

Paste a message into the free decoder to see it broken down field by field.

Open the ISO 8583 decoder →

How an ISO 8583 message is built

Every message has three parts, in order: a four-digit Message Type Indicator (MTI), one or two bitmaps, and the data elements that the bitmap marks as present. The bitmap is what makes messages compact: only fields that are used are sent.

The standard defines up to 128 data elements (192 with a tertiary bitmap). Each element has a type and length rule, such as fixed length, LLVAR (two-digit length prefix) or LLLVAR (three-digit length prefix). Networks and acquirers then publish their own specifications, so two hosts can use the same field number differently.

Reading the Message Type Indicator

The MTI is four digits and each digit means something. Read it left to right.

DIGIT 1Version0 is the 1987 edition, 1 is 1993, 2 is 2003.
DIGIT 2Message class1 authorization, 2 financial, 3 file actions, 4 reversal, 5 reconciliation, 6 administrative, 7 fee collection, 8 network management.
DIGIT 3Function0 request, 1 request response, 2 advice, 3 advice response, 4 notification.
DIGIT 4Originator0 acquirer, 1 acquirer repeat, 2 issuer, 3 issuer repeat, 4 other.
MTINameTypical use
0100Authorization requestAcquirer asks the issuer to authorize an amount
0110Authorization responseIssuer answer to a 0100
0200Financial transaction requestRequest that posts funds, such as a purchase or withdrawal
0210Financial transaction responseIssuer answer to a 0200
0400Reversal requestAcquirer reverses a previous transaction, for example after a timeout
0410Reversal responseAnswer to a 0400
0420Reversal adviceNotification that a reversal was applied
0430Reversal advice responseAcknowledgement of a 0420
0500Reconciliation requestTotals exchanged to settle a period
0800Network management requestSign-on, sign-off, echo test, key exchange
0810Network management responseAnswer to a 0800

Bitmaps: which fields are present

The primary bitmap is 64 bits, sent as 8 bytes or 16 hex characters. Bit n set to 1 means data element n is in the message. If bit 1 is set, a secondary bitmap follows (another 64 bits) and covers elements 65 to 128. A 32-character hex bitmap therefore means primary plus secondary.

Example: a primary bitmap that starts with hex 7 has bits 2, 3 and 4 set, so the PAN, processing code and amount follow in that order. The decoder expands any bitmap you paste and labels each element.

Common data elements

These are the fields you will see in most card-present authorizations. Formats follow the 1987 edition; your network may differ.

DENameFormat
2Primary account number (PAN)LLVAR, up to 19 digits
3Processing code6 digits
4Transaction amount12 digits, minor units
7Transmission date and timeMMDDhhmmss
11System trace audit number (STAN)6 digits
12Local transaction timehhmmss
13Local transaction dateMMDD
14Expiration dateYYMM
18Merchant category code4 digits
22POS entry mode3 digits
23Card sequence number3 digits
25POS condition code2 digits
35Track 2 dataLLVAR, up to 37 characters
37Retrieval reference number12 characters
38Authorization identification response6 characters
39Response code2 characters
41Card acceptor terminal ID8 characters
42Card acceptor ID code15 characters
43Card acceptor name and location40 characters
49Transaction currency code3 digits
52PIN data8 bytes, encrypted
54Additional amountsLLLVAR
55ICC data (EMV chip data)LLLVAR, BER-TLV, network specific
64 / 128Message authentication code (MAC)8 bytes

Processing codes (DE 3)

The processing code has three two-digit parts: transaction type, from-account type and to-account type. Account types are commonly 00 unspecified, 10 savings, 20 checking and 30 credit. For example, 003000 reads as type 00 (purchase), from account 30 (credit), to account 00 (unspecified).

Type (digits 1-2)Meaning
00Purchase of goods or services
01Cash withdrawal
09Purchase with cashback
20Refund or return
21Deposit
30Balance inquiry
40Cardholder account transfer

Response codes (DE 39)

Data element 39 tells the terminal what the issuer or host decided. These are the codes you will see most. Networks add their own, and the meaning of a code can differ slightly by network, so treat this as a starting point and confirm against your specification.

CodeMeaning
00Approved
01Refer to card issuer
03Invalid merchant
05Do not honor
12Invalid transaction
13Invalid amount
14Invalid card number
30Format error
41Lost card, pick up
43Stolen card, pick up
51Insufficient funds
54Expired card
55Incorrect PIN
57Transaction not permitted to cardholder
58Transaction not permitted to terminal
61Exceeds withdrawal amount limit
62Restricted card
65Exceeds withdrawal frequency limit
75Allowable PIN tries exceeded
91Issuer or switch inoperative
96System malfunction

ISO 8583 questions

What is ISO 8583?

ISO 8583 is the international standard for financial transaction card messages. It defines how terminals, acquirers, networks and issuers exchange authorization, financial, reversal, reconciliation and network management messages. A message is a Message Type Indicator (MTI), one or more bitmaps, and the data elements the bitmap says are present.

What does the MTI mean in ISO 8583?

The Message Type Indicator is four digits. The first digit is the ISO 8583 version (0 is the 1987 edition), the second is the message class (1 authorization, 2 financial, 4 reversal, 5 reconciliation, 8 network management), the third is the function (0 request, 1 request response, 2 advice, 3 advice response) and the fourth is the originator (0 acquirer, 2 issuer). For example, 0200 is a financial request and 0210 is its response.

What is the bitmap in ISO 8583?

The primary bitmap is 64 bits that mark which of data elements 1 to 64 are present. If bit 1 is set, a secondary bitmap follows and covers elements 65 to 128. A 16-character hex bitmap is the primary alone; 32 characters means primary plus secondary.

What is the processing code in ISO 8583 (DE 3)?

Data element 3 is a six-digit processing code. The first two digits are the transaction type (for example 00 purchase, 01 cash withdrawal, 20 refund, 30 balance inquiry), the next two are the from-account type and the last two are the to-account type (00 unspecified, 10 savings, 20 checking, 30 credit). Exact values vary by network and acquirer specification.

What does the ISO 8583 response code in DE 39 mean?

Data element 39 carries the issuer or host response. 00 means approved, 05 do not honor, 14 invalid card number, 51 insufficient funds and 91 issuer or switch inoperative, among many others. Networks add their own codes, so always confirm against the specification for your acquirer or network.

Where is EMV chip data in an ISO 8583 message?

Chip data is carried in data element 55 as BER-TLV. Networks define which tags are required in requests and responses. You can decode the contents with the EMV TLV parser.

Are all ISO 8583 implementations the same?

No. ISO 8583 is a framework. Each network and acquirer publishes its own specification with its own field formats, private-use fields (such as 48, 60 and 63), encodings and response codes. That is why integrating with a new host is a project, and why host messages are part of every EMV Level 3 certification.