ISO8583 financial transaction message format
ISO8583
ISO8583 format
ISO8583 standard
eft
When is about card initiated transactions is about ISO 8583 financial transaction message format standard.
Introduction
Usually, a card initiated transaction travels from a point-of-sale terminal (POS) or an automated teller machine (ATM), using a series of networks to the card issuer entity for authorization against the card holder's account. The transaction data contains information from the card (PAN, expiry date), from the terminal (transaction number, merchant data) and information added dynamically during the process and by the intervening systems. The card issuer entity will authorize or decline the transaction and generate a response message which must be delivered back to the POS or ATM within a predefined time period (usual this period is 30 sec).
In this chain of systems from the terminal (POS or ATM) to the card issuer entity and back usually is used ISO 8583 message format. Although ISO 8583 defines a common standard, different systems may use the fields in different ways because only some fields are standards fields and the meaning is the same for all systems. Some of the fields are generic and can be used by each entity in a custom way.
There are few versions of the ISO 8583 standard: ISO 8583:1987, ISO 8583:1993, ISO 8583:2003. 1987 and 1993 versions are very similar and version 2003 is very different and was created to be more generic. In this tutorial, I will concentrate on ISO 8583:1987 version, as is still the most widely used. The main idea is the same for all versions. The differences are on fields levels and meanings.
Message Format
An ISO 8583 message is made of the following parts:
- Message type indicator (MTI)
- One or more bitmaps, indicating which data elements are present.
- Data elements, the fields of the message.
Message type identifier |
Primary bitmap |
Secondary bitmap |
Data elements |
Message Type Identifier (MTI)
Message Type Identifier is a key element which classifies the function of the message. MTI is a 4 digits long field and each digits have its own meaning:
- First digit: ISO 8583 version;
- Second digit: Message Class;
- Third digit: Message Function;
- Fourth digit: Message Origin.
ISO 8583 version
Currently there are 3 versions.
Position | Meaning |
0xxx | ISO 8583:1987 |
1xxx | ISO 8583:1993 |
2xxx | ISO 8583:2003 |
Message Class
Position two of the MTI specifies the purpose of the message.
Position | Meaning | Usage |
---|---|---|
x0xx | Reserved by ISO | |
x1xx | Authorization message | Determine if funds are available, get an approval but do not post to account for reconciliation. |
x2xx | Financial messages | Determine if funds are available, get an approval and post directly to the account. |
x3xx | File Actions Message | Used for hot-card, TMS and other exchanges |
x4xx | Reversal and Chargeback Messages | Reverses the action of a previous authorization. |
x5xx. | Reconciliation Message | Transmits settlement information message. |
x6xx | Administrative Message | Transmits administrative advice. |
x7xx | Fee Collection Messages | |
x8xx | Network Management Message | Used for secure key exchange, logon, echo test and other network functions |
x9xx | Reserved by ISO |
Message function
Position three of the MTI specifies the message function.
Position | Meaning |
---|---|
xx0x | Request |
xx1x | Request response |
xx2x | Advice |
xx3x | Advice Response |
xx4x | Notification |
xx5x | Notification Acknowledgement |
xx6x | Instruction (ISO 8583:2003 only) |
xx7x | Instruction Acknowledgement (ISO 8583:2003 only) |
xx8x | Reserved for ISO use. |
xx9x | Reserved for ISO use. |
Message origin
Position four of the MTI defines the message source within the payment chain.
Position | Meaning |
---|---|
xxx0 | Acquirer |
xxx1 | Acquirer Repeat |
xxx2 | Issuer |
xxx3 | Issuer Repeat |
xxx4 | Other |
xxx5 | Other Repeat |
Examples
Here is a list with some MTI and the usage.
MTI | Meaning | Usage |
---|---|---|
0100 | Authorization Request | Request from a point-of-sale terminal for authorization a purchase |
0110 | Request Response | Request response to a point-of-sale terminal for authorization a purchase |
0101 | Authorization Request Repeat | If the Authorization Request times out |
0200 | Acquirer Financial Request | Request for funds, e.g. from an ATM. |
0210 | Issuer Response to Financial Request | Issuer response to request for funds |
0220 | Acquirer Financial Advice | Used to complete transaction initiated with authorization request |
0221 | Acquirer Financial Advice repeat | If the advice times out |
0230 | Issuer Response to Financial Advice | Confirmation of receipt of financial advice |
0400 | Acquirer Reversal Request | Reverses a transaction |
0820 | Network Management Advice | Keychange |
Bitmaps
Next area in the ISO8583 message is bitmaps area. A bitmap is a field indicates which data elements may be present or not in the message. A message will contain at least one bitmap, called the Primary Bitmap which indicates which of Data Elements 1 to 64 are present. A secondary bitmap may also be present as data element one and indicates which of data elements 65 to 128 are present. Also, a third bitmap can be used to indicate the presence or absence of fields 129 to 192.
Example
Bitmap | Binary value | Defines presence of |
7200000008C00000 | 01110010000000000000000000000000 00001000110000000000000000000000 | Fields 2, 3, 4, 7, 37, 41, 42 |
Note: the first bit of each bitmap signifies the presence of the next bitmap.
Data Elements
Data elements are all the fields that contain the transaction information. ISO8583:1997 contains up to 128 data elements (the message will have up to 2 bitmap fields). The later versions contain up to 192 data elements (the message will have up to 3 bitmaps fields). Each field (data element) has a specific meaning and format: some are for general purpose or system related fields or country specific fields.
Format
Each field is described in a standard format which defines the content format or the field length.
Abbreviation | Meaning |
a | Alpha, including blanks |
n | Numeric values only |
s | Special characters only |
an | Alphanumeric |
as | Alpha & special characters only |
ns | Numeric and special characters only |
ans | Alphabetic, numeric and special characters. |
b | Binary data. |
z | Tracks 2 and 3 code set as defined in ISO/IEC 7813 and ISO/IEC 4909. |
. or .. or ... | variable field length indicator, each. indicating a digit. |
x or xx or xxx | fixed length of the field or maximum length in the case of variable length fields. |
ISO-defined data elements
Data Field | Type | Usage |
1 | b 64 | Bit map (b 128 if secondarily is present and b 192 if tertiary is present) |
2 | n ..19 | Primary account number (PAN) |
3 | n 6 | Processing code |
4 | n 12 | Amount, transaction |
5 | n 12 | Amount, settlement |
6 | n 12 | Amount, cardholder billing |
7 | n 10 | Transmission date & time |
8 | n 8 | Amount, cardholder billing fee |
9 | n 8 | Conversion rate, settlement |
10 | n 8 | Conversion rate, cardholder billing |
11 | n 6 | System trace audit number (STAN) |
12 | n 6 | Time, local transaction (hhmmss) |
13 | n 4 | Date, local transaction (MMDD) |
14 | n 4 | Date, expiration |
15 | n 4 | Date, settlement |
16 | n 4 | Date, conversion |
17 | n 4 | Date, capture |
18 | n 4 | Merchant type |
19 | n 3 | Acquiring institution country code |
20 | n 3 | PAN extended, country code |
21 | n 3 | Forwarding institution. country code |
22 | n 3 | Point of service entry mode |
23 | n 3 | Application PAN sequence number |
24 | n 3 | Function code (ISO 8583:1993)/Network International identifier (NII) |
25 | n 2 | Point of service condition code |
26 | n 2 | Point of service capture code |
27 | n 1 | Authorizing identification response length |
28 | x+n 8 | Amount, transaction fee |
29 | x+n 8 | Amount, settlement fee |
30 | x+n 8 | Amount, transaction processing fee |
31 | x+n 8 | Amount, settlement processing fee |
32 | n ..11 | Acquiring institution identification code |
33 | n ..11 | Forwarding institution identification code |
34 | ns ..28 | Primary account number, extended |
35 | z ..37 | Track 2 data |
36 | n ...104 | Track 3 data |
37 | an 12 | Retrieval reference number |
38 | an 6 | Authorization identification response |
39 | an 2 | Response code |
40 | an 3 | Service restriction code |
41 | ans 8 | Card acceptor terminal identification |
42 | ans 15 | Card acceptor identification code |
43 | ans 40 | Card acceptor name/location (1-23 address 24-36 city 37-38 state 39-40 country) |
44 | an ..25 | Additional response data |
45 | an ..76 | Track 1 data |
46 | an ...999 | Additional data - ISO |
47 | an ...999 | Additional data - national |
48 | an ...999 | Additional data - private |
49 | a or n 3 | Currency code, transaction |
50 | a or n 3 | Currency code, settlement |
51 | a or n 3 | Currency code, cardholder billing |
52 | b 64 | Personal identification number data |
53 | n 16 | Security related control information |
54 | an ...120 | Additional amounts |
55 | ans ...999 | Reserved ISO |
56 | ans ...999 | Reserved ISO |
57-60 | ans ...999 | Reserved national |
61-63 | ans ...999 | Reserved private |
64 | b 16 | Message authentication code (MAC) |
65 | b 1 | Bitmap, extended |
66 | n 1 | Settlement code |
67 | n 2 | Extended payment code |
68 | n 3 | Receiving institution country code |
69 | n 3 | Settlement institution country code |
70 | n 3 | Network management information code |
71 | n 4 | Message number |
72 | n 4 | Message number, last |
73 | n 6 | Date, action (YYMMDD) |
74 | n 10 | Credits, number |
75 | n 10 | Credits, reversal number |
76 | n 10 | Debits, number |
77 | n 10 | Debits, reversal number |
78 | n 10 | Transfer number |
79 | n 10 | Transfer, reversal number |
80 | n 10 | Inquiries number |
81 | n 10 | Authorizations, number |
82 | n 12 | Credits, processing fee amount |
83 | n 12 | Credits, transaction fee amount |
84 | n 12 | Debits, processing fee amount |
85 | n 12 | Debits, transaction fee amount |
86 | n 16 | Credits, amount |
87 | n 16 | Credits, reversal amount |
88 | n 16 | Debits, amount |
89 | n 16 | Debits, reversal amount |
90 | n 42 | Original data elements |
91 | an 1 | File update code |
92 | an 2 | File security code |
93 | an 5 | Response indicator |
94 | an 7 | Service indicator |
95 | an 42 | Replacement amounts |
96 | b 64 | Message security code |
97 | x+n 16 | Amount, net settlement |
98 | ans 25 | Payee |
99 | n ..11 | Settlement institution identification code |
100 | n ..11 | Receiving institution identification code |
101 | ans ..17 | File name |
102 | ans ..28 | Account identification 1 |
103 | ans ..28 | Account identification 2 |
104 | ans ...100 | Transaction description |
105-111 | ans ...999 | Reserved for ISO use |
112-119 | ans ...999 | Reserved for national use |
120-127 | ans ...999 | Reserved for private use |
128 | b 64 | Message authentication code |