ISO 8583 Parser
online builder

ISO 8583 Message Builder

Pick an MTI, tick the fields you need and type the values. The bitmap, the secondary bitmap and every LLVAR / LLLVAR length prefix are computed for you — you never count characters by hand.

What this builds

A complete ISO 8583 message: four-digit MTI, primary bitmap (plus a secondary bitmap the moment you tick a field above 64), then every ticked field in ascending order, each with its length prefix if it is a variable-length field.

Before the message is shown it is fed straight back into the same parsing code that runs on the parser page. If a single byte does not come back identical, you get a red failure instead of a message.

Start from an example
0 / 0
DEFieldFormatValue
2PAN (Primary Account Number)n LL(≤19)
3Processing Coden FIX(6)
4Amount, Transactionn FIX(12)
5Amount, Settlementn FIX(12)
6Amount, Cardholder Billingn FIX(12)
7Transmission Date & Timen FIX(10)
8Billing Fee Amountn FIX(8)
9Settlement Conversion Raten FIX(8)
10Billing Conversion Raten FIX(8)
11STAN (System Trace Audit No.)n FIX(6)
12Local Transaction Timen FIX(6)
13Local Transaction Daten FIX(4)
14Expiration Daten FIX(4)
15Settlement Daten FIX(4)
16Conversion Daten FIX(4)
17Capture Daten FIX(4)
18Merchant Category Code (MCC)n FIX(4)
19Acquiring Country Coden FIX(3)
20PAN Extended Country Coden FIX(3)
21Forwarding Country Coden FIX(3)
22POS Entry Moden FIX(3)
23Card Sequence Numbern FIX(3)
24Function Code / NIIn FIX(3)
25POS Condition Coden FIX(2)
26POS PIN Capture Coden FIX(2)
27Auth Response Lengthn FIX(1)
28Transaction Feex+n FIX(9)
29Settlement Feex+n FIX(9)
30Transaction Processing Feex+n FIX(9)
31Settlement Processing Feex+n FIX(9)
32Acquiring Institution IDn LL(≤11)
33Forwarding Institution IDn LL(≤11)
34PAN Extendedns LL(≤28)
35Track 2 Dataz LL(≤37)
36Track 3 Dataz LLL(≤104)
37Retrieval Reference Number (RRN)an FIX(12)
38Authorization ID Responsean FIX(6)
39Response Codean FIX(2)
40Service Restriction Codean FIX(3)
41Terminal IDans FIX(8)
42Merchant IDans FIX(15)
43Merchant Name / Locationans FIX(40)
44Additional Response Dataan LL(≤25)
45Track 1 Dataan LL(≤76)
46Additional Data (ISO)an LLL(≤999)
47Additional Data (National)an LLL(≤999)
48Additional Data (Private)an LLL(≤999)
49Currency Code, Transactionn FIX(3)
50Currency Code, Settlementn FIX(3)
51Currency Code, Billingn FIX(3)
52PIN Data (PIN Block)b FIX(16)
53Security Control Infon FIX(16)
54Additional Amountsan LLL(≤120)
55ICC / EMV Datab LLL(≤999)
56Reserved (ISO)ans LLL(≤999)
57Reserved (National)ans LLL(≤999)
58Reserved (National)ans LLL(≤999)
59Reserved (National)ans LLL(≤999)
60Reserved (Private)ans LLL(≤999)
61Reserved (Private)ans LLL(≤999)
62Reserved (Private)ans LLL(≤999)
63Reserved (Private)ans LLL(≤999)
64MACb FIX(16)
66Settlement Coden FIX(1)
67Extended Payment Coden FIX(2)
68Receiving Country Coden FIX(3)
69Settlement Country Coden FIX(3)
70Network Mgmt Info Coden FIX(3)
71Message Numbern FIX(4)
72Message Number Lastn FIX(4)
73Action Daten FIX(6)
74Credits Numbern FIX(10)
75Credits Reversal Numbern FIX(10)
76Debits Numbern FIX(10)
77Debits Reversal Numbern FIX(10)
78Transfer Numbern FIX(10)
79Transfer Reversal Numbern FIX(10)
80Inquiries Numbern FIX(10)
81Authorizations Numbern FIX(10)
82Credits Processing Feen FIX(12)
83Credits Transaction Feen FIX(12)
84Debits Processing Feen FIX(12)
85Debits Transaction Feen FIX(12)
86Credits Amountn FIX(16)
87Credits Reversal Amountn FIX(16)
88Debits Amountn FIX(16)
89Debits Reversal Amountn FIX(16)
90Original Data Elementsn FIX(42)
91File Update Codean FIX(1)
92File Security Codean FIX(2)
93Response Indicatoran FIX(5)
94Service Indicatoran FIX(7)
95Replacement Amountsan FIX(42)
96Message Security Codeb FIX(16)
97Net Settlement Amountx+n FIX(17)
98Payeeans FIX(25)
99Settlement Institution IDn LL(≤11)
100Receiving Institution IDn LL(≤11)
101File Nameans LL(≤17)
102Account Identification 1ans LL(≤28)
103Account Identification 2ans LL(≤28)
104Transaction Descriptionans LLL(≤100)
105Reserved (ISO)ans LLL(≤999)
106Reserved (ISO)ans LLL(≤999)
107Reserved (ISO)ans LLL(≤999)
108Reserved (ISO)ans LLL(≤999)
109Reserved (ISO)ans LLL(≤999)
110Reserved (ISO)ans LLL(≤999)
111Reserved (ISO)ans LLL(≤999)
112Reserved (National)ans LLL(≤999)
113Reserved (National)ans LLL(≤999)
114Reserved (National)ans LLL(≤999)
115Reserved (National)ans LLL(≤999)
116Reserved (National)ans LLL(≤999)
117Reserved (National)ans LLL(≤999)
118Reserved (National)ans LLL(≤999)
119Reserved (National)ans LLL(≤999)
120Reserved (Private)ans LLL(≤999)
121Reserved (Private)ans LLL(≤999)
122Reserved (Private)ans LLL(≤999)
123Reserved (Private)ans LLL(≤999)
124Reserved (Private)ans LLL(≤999)
125Reserved (Private)ans LLL(≤999)
126Reserved (Private)ans LLL(≤999)
127Reserved (Private)ans LLL(≤999)
128MACb FIX(16)

How each field is encoded

A field's entry in the dictionary is four things: its name, whether it is fixed-length (FIX) or variable-length (LLVAR / LLLVAR), its maximum length, and its data type (n numeric, an alphanumeric, ans alphanumeric + special, b binary, z track data). Those four decide how the value is written on the wire, and the encoding you pick decides the rest.

EncodingMTILength prefixNumeric & binary fieldsText fields
ASCII4 characters2 or 3 decimal charactersone character per digitone character per character
Hex / BCD4 hex characters2 or 3 decimal digits, written as hex characterspacked: two digits per byte, counted in hex characterstwo hex characters per character
EBCDIC4 EBCDIC bytes2 or 3 EBCDIC digitsbinary fields stay hexone EBCDIC byte per character

The bitmap is written as hex characters in all three, which is what the parser on this site expects. Some real interfaces put the bitmap on the wire as eight raw bytes instead — same 64 bits, half the characters.

Length counting in Hex / BCD mode

In Hex / BCD mode a numeric field is packed two digits to a byte, so lengths are counted in digits, not bytes: a 19-digit PAN is 19 in the LLVAR prefix and occupies 19 hex characters — nine and a half bytes. A field with an odd digit count therefore leaves the stream half a byte out of step, and the builder says so under the message. Real scheme specifications pad such fields to a byte boundary, and each one states which side the padding goes on; that padding is a per-interface decision, so it is not added for you.

What the bitmap does

Each bit of the 64-bit primary bitmap says whether one field is present: bit 2 = DE2, bit 3 = DE3, and so on. Tick a field above 64 and bit 1 turns on, which means a second 64-bit bitmap follows the first and covers fields 65–128. That is the single most common thing hand-built messages get wrong — a 0400 reversal carrying DE90 needs the secondary bitmap, so its first hex character is F, not 7. The bitmap calculator takes the same bitmap apart from the other direction.

What the builder does not do

Where the example values come from

The six starting points are the annotated messages from ISO 8583 message examples, field for field. Load one, change the amount or the STAN, and you have a test message that differs from a known-good message in exactly the way you meant.