HSM KitHSM Kit
English

ISO 8583 Message Parser: MTI, Bitmap & Data Elements

Payment Security# ISO 8583# Message Parser# Bitmap# ATM
Last Updated: May 21, 20266 min readBy HSM Kit Team
Need to calculate this now?
Use our free online Message Parser Tool tool.

ISO 8583 is the global standard for financial transaction messaging. It's the protocol behind card payments, ATM transactions, and inter-bank communications. This guide explains the message structure, MTI, bitmap, data elements, and how to parse these messages in practice.

What is ISO 8583?

ISO 8583 defines a message format for exchanging financial transaction information between systems. It's used by:

  • Payment card networks (Visa, Mastercard)
  • ATM networks
  • Point-of-sale systems
  • Bank switches
  • Payment processors

Why ISO 8583 Matters

Every time you use a card:

  1. Terminal sends ISO 8583 message to acquirer
  2. Acquirer routes to card network
  3. Network sends to issuer
  4. Issuer responds with ISO 8583 message
  5. Response flows back to terminal

This happens in milliseconds, billions of times daily worldwide.

Message Structure

An ISO 8583 message consists of:

+------------------+
| MTI              |  Message Type Indicator (4 digits)
+------------------+
| Bitmap           |  8 or 16 bytes indicating present fields
+------------------+
| Data Elements    |  Variable number of fields
+------------------+

Message Type Indicator (MTI)

The MTI identifies the message type and version.

MTI Structure

The MTI is a 4-digit number:

Position 1: Version
Position 2: Message Class
Position 3: Message Function
Position 4: Message Origin

Version Codes

CodeVersion
0ISO 8583:1987
1ISO 8583:1993
2ISO 8583:2003

Message Classes

CodeClassDescription
1AuthorizationCard authorization requests
2FinancialFinancial transactions
3File ActionsBatch processing
4ReversalTransaction reversals
5ReconciliationSettlement
8Network ManagementSystem messages

Message Functions

CodeFunctionDescription
0RequestInitial request
1Request ResponseResponse to request
2AdviceNotification (no response expected)
3Advice ResponseResponse to advice
4NotificationInformational
8ReservedReserved for ISO use

Message Origins

CodeOriginDescription
0AcquirerFrom acquiring bank
1Acquirer RepeatRepeat of acquirer message
2IssuerFrom issuing bank
3Issuer RepeatRepeat of issuer message

Common MTIs

MTIDescription
0100Authorization Request
0110Authorization Response
0200Financial Transaction Request
0210Financial Transaction Response
0220Financial Transaction Advice
0230Financial Transaction Advice Response
0400Reversal Request
0410Reversal Response
0800Network Management Request
0810Network Management Response

Bitmap

The bitmap indicates which data elements are present in the message.

Primary Bitmap

8 bytes (64 bits) — each bit represents one data element:

Bit 1: Data Element 1
Bit 2: Data Element 2
...
Bit 64: Data Element 64

If bit is set to 1, that data element is present.

Secondary Bitmap

If bit 1 is set, a secondary bitmap follows:

Bit 1 set → Secondary bitmap present
Secondary bitmap covers elements 65-128

Reading the Bitmap

Example bitmap: 723C048000000000

Convert to binary:

7 = 0111
2 = 0010
3 = 0011
C = 1100
...

Each '1' indicates the corresponding field is present.

Data Elements

ISO 8583 defines up to 128 data elements.

Common Data Elements

FieldNameFormatLength
2Primary Account Number (PAN)LLVARup to 19
3Processing CodeN6
4Transaction AmountN12
7Transmission Date/TimeN10
11System Trace Audit NumberN6
12Local Transaction TimeN6
13Local Transaction DateN4
14Expiration DateN4
22POS Entry ModeN3
25POS Condition CodeN2
35Track 2 DataLLVARup to 37
37Retrieval Reference NumberAN12
38Authorization Identification ResponseAN6
39Response CodeAN2
41Card Acceptor Terminal IDANS8
42Card Acceptor ID CodeANS15
43Card Acceptor Name/LocationANS40
52PIN BlockB8
53Security Related Control InfoN16
55ICC System Related DataLLVARup to 999
64Message Authentication CodeB8

Data Formats

CodeFormatDescription
NNumericDigits only (0-9)
ANAlphanumericLetters and numbers
ANSAlphanumeric + SpecialLetters, numbers, special chars
BBinaryRaw binary data
ZTrack 2Track 2 data format

Length Encoding

TypeEncodingExample
FixedNo length prefix"HELLO" always 5 chars
LLVAR2-digit length prefix"05HELLO"
LLLVAR3-digit length prefix"005HELLO"

Practical Examples

Authorization Request (0100)

MTI: 0100
Bitmap: 723C048000000000

Fields present:
- 2: PAN (4123456789012345)
- 3: Processing Code (000000)
- 4: Amount (000000010000)
- 7: Date/Time (0115103000)
- 11: STAN (123456)
- 14: Expiry (2512)
- 22: POS Entry Mode (051)
- 41: Terminal ID (TERM0001)
- 42: Merchant ID (MERCH0001)

Authorization Response (0110)

MTI: 0110
Bitmap: 7230000002000000

Fields present:
- 2: PAN (echo)
- 3: Processing Code (echo)
- 4: Amount (echo)
- 7: Date/Time (echo)
- 11: STAN (echo)
- 38: Auth Code (ABC123)
- 39: Response Code (00)

ATM NDC Format

NDC (NCR Diebold Compatible) is a subset of ISO 8583 used by ATMs.

NDC-Specific Elements

FieldNDC Usage
52PIN Block (ISO 9564)
53Key Management Info
55EMV Chip Data
61ATM Terminal Data
62ATM Financial Data
63ATM Network Data

Wincor Format

Wincor (now Diebold Nixdorf) ATMs use a similar but distinct format.

Wincor Differences

  • Different field assignments for some elements
  • Proprietary extensions in fields 60-63
  • Different message routing conventions

Parsing ISO 8583 Messages

Step-by-Step Parsing

  1. Read MTI (first 4 bytes or characters)
  2. Read bitmap (next 8 or 16 bytes)
  3. For each set bit in bitmap:
    • Read data element according to format
    • Handle length prefix if LLVAR/LLLVAR
  4. Validate all required fields present

Common Parsing Issues

IssueCauseSolution
Wrong field countBitmap misreadVerify bitmap parsing
Truncated messageLength calculation errorCheck LLVAR/LLLVAR handling
Invalid charactersFormat mismatchVerify N/AN/ANS format
Binary data issuesBCD vs binaryConfirm encoding

Best Practices

  1. Always parse bitmap first — it determines which fields exist
  2. Handle both primary and secondary bitmaps — check bit 1
  3. Respect length prefixes — LLVAR/LLLVAR must be parsed correctly
  4. Validate field formats — numeric fields should only contain digits
  5. Log raw messages — essential for debugging

Try It Yourself

Use our Message Parser tool to:

  • Parse ISO 8583 messages
  • Extract MTI and bitmap
  • Decode individual data elements
  • Understand message structure

The tool supports various formats including ATM NDC and Wincor.

The tool runs entirely in your browser — no data leaves your device.

Related Tool
Message Parser Tool