Decode and inspect ISO 8583 financial messages. Paste a raw message to see the MTI, bitmaps, and all data fields parsed.
Message Input
ISO 8583 is the international standard for financial transaction card-originated messages. It defines a common message format used across payment networks (Visa, Mastercard, UnionPay), ATM switches, and POS terminals to exchange transaction data between acquirers, issuers, and payment processors worldwide. Every time you swipe a card, tap to pay, or withdraw cash from an ATM, an ISO 8583 message is created and routed through the payment network.
Paste your raw ISO 8583 hex message into the input field above and click Parse. The decoder breaks your message into human-readable components:
You can also click Load Sampleto see a pre-built 0200 authorization request, or use the crosshair icon to highlight any field's position in the raw message. Results are available as both a decoded table and JSON output.
Every ISO 8583 message follows this structure. The MTI and primary bitmap are always present; the secondary bitmap and data fields depend on which bits are set.
| Component | Length | Description |
|---|---|---|
| MTI | 4 digits | Message Type Indicator — version + class + function + origin |
| Primary Bitmap | 16 hex chars (64 bits) | Indicates which of fields 1–64 are present |
| Secondary Bitmap | 16 hex chars (64 bits) | Present when bit 1 of primary bitmap is set; extends to fields 65–128 |
| Data Fields | Variable | Fixed-length, LLVAR (2-digit prefix), or LLLVAR (3-digit prefix) encoded |
| MTI | Description | Usage |
|---|---|---|
| 0100 | Authorization Request | Card present/not present auth from acquirer to issuer |
| 0110 | Authorization Response | Issuer approves or declines the authorization |
| 0200 | Financial Request | Purchase, cash advance, or balance inquiry |
| 0210 | Financial Response | Issuer response to the financial request |
| 0400 | Reversal Request | Undo a previous authorization or financial transaction |
| 0800 | Network Management Request | Sign-on, sign-off, echo test, key exchange |
MTI (Message Type Indicator) is a 4-digit code at the start of every ISO 8583 message. The first digit is the version (0=1987, 1=1993, 2=2003), the second is the message class (authorization, financial, reversal, etc.), the third is the function (request, response, advice), and the fourth is the origin (acquirer, issuer). For example, 0200 means ISO 8583:1987, Financial, Request, from Acquirer.
Your message is parsed server-side on a Cloudflare Worker and the result is returned in real time. No message data is persisted, logged, or transmitted to any third party. The entire request lifecycle is stateless.
The primary bitmap is a 64-bit field (16 hex characters) where each bit position maps to a data field number. If bit N is set to 1, field N is present in the message. If bit 1 is set, a secondary bitmap follows, extending the range to fields 65–128. For example, a bitmap of "F23C448000000000" means fields 1, 2, 3, 4, 7, 11, 12, 13, 14, 18, 22, 25 are active.
These are variable-length field encoding types. LLVAR uses a 2-digit length prefix (max 99 chars), LLLVAR uses a 3-digit prefix (max 999 chars). For example, a PAN field (field 2) with value "4761739001010119" would be encoded as "164761739001010119" where "16" is the LLVAR length prefix.
The field definitions follow the ISO 8583:1987 specification, which is the most widely used version in ATM/POS networks globally. The MTI decoder recognises all three versions (1987, 1993, 2003).
All ISO 8583:1987 message types — 0100/0110 (Authorization), 0200/0210 (Financial), 0400/0410 (Reversal), 0420/0430 (Reversal Advice), 0800/0810 (Network Management), and any other valid MTI. All 128 data fields are supported.
Yes. This tool is ideal for developers and QA engineers working on payment switches, ATM drivers, POS integrations, and acquiring/issuing host systems. Paste raw messages from your logs to quickly verify field values, bitmap flags, and MTI codes.