ISO 8583 Parser
Free Β· ISO8583 Β· ~8 min read

Reading ISO 8583: MTI, Bitmaps & Fields

ISO 8583 is the international standard for card transaction messages. One message = MTI (message type) + bitmap (which fields are present) + data elements (the field values). Master these three and you can read almost any card message. Best learned alongside the parser tool on this site.

1. MTI β€” Message Type Indicator

Four digits, each position describing the message. For example 0200:

So 0200 = a financial request from the acquirer; its response is 0210. Authorizations are commonly 0100/0110, reversals 0400/0420.

2. The Bitmap

Right after the MTI, a string of bits where bit N = 1 means data element N is present. The primary bitmap is 64 bits (DEs 1–64). If bit 1 is set, a secondary bitmap follows (DEs 65–128). This keeps messages compact β€” only the fields actually used are carried.

Tip: the bitmap appears as 8 binary bytes or 16 hex chars. Expand the hex to binary, mark the 1-bits, and you get the list of present data elements. The tool on this site draws this bitmap for you.

3. Data Elements (DE)

The standard defines 128 data elements, laid out in order as the bitmap indicates. The most common ones:

DEMeaning
DE2Primary Account Number (card number)
DE3Processing code (txn type + accounts)
DE4Transaction amount (minor units)
DE11STAN (unique within a day)
DE39Response code (00=approved)
DE41 / 42Terminal ID / Merchant ID
DE49Currency code (ISO 4217)
DE55EMV chip data (TLV)

Each element has a fixed format (n numeric / an alphanumeric / b binary) and a length type: fixed (FIX) or variable with a 2/3-digit length prefix (LLVAR/LLLVAR). There's also encoding β€” ASCII, packed BCD, EBCDIC β€” which differs by scheme (VISA especially). That's the classic beginner trap.

Try it: open the parser tool, pick a scheme (e.g. Visa), paste a message and hit parse β€” it splits the MTI, draws the bitmap, lists every data element with plain-language notes, and breaks down EMV/DE55 TLV.

πŸ‘‰ Advanced: EMV Chip & DE55 Deep Dive (subscriber) β€” every EMV tag in DE55, the ARQC cryptogram, and TVR/CVM decision logic.