ISO 8583
ISO 8583 Standard for Financial Transaction Card Originated Messages - Interchange message specifications is the International Organization for Standardization standard for systems that exchange electronic transactions made by cardholders using payment cards.
Message Type Indicator (MTI)
This is a 4 digit numeric field which classifies the high level function of the message. A Message Type Indicator includes the ISO 8583 version, the Message Class, the Message Function and the Message Origin, each described briefly in the following sections.
ISO 8583 Version
Position one of the MTI specifies the versions of the ISO 8583 standard which is being used to transmit the message.
Position | Meaning |
---|---|
0xxx | ISO 8583-1:1987 version |
1xxx | ISO 8583-2:1993 version |
2xxx | ISO 8583-1:2003 version |
9xxx | Private usage |
Message Class
Position two of the MTI specifies the overall purpose of the message.
Position | Meaning | Usage |
---|---|---|
x1xx | Authorization Message | Determine if funds are available, get an approval but do not post to account for reconciliation, Dual Message System (DMS) system, awaits file exchange for posting to account |
x2xx | Financial Message | Determines if funds are available, get an approval and post directly to the account, Single Message System (SMS), no file exchange after this |
x3xx | File Actions Message | Used for hot-card, TMS and other exchanges |
x4xx | Reversal Message | Reverses the action of a previous authorization |
x5xx | Reconciliation Message | Transmits settlement information |
x6xx | Administrative Message | Transmits information about message failures |
x7xx | Fee Collection Message | |
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 which defines how the message should flow within the system. Requests are end-to-end messages (eg, from acquirer to issuer and back with timeouts and automatic reversals in place), while advices are point-to-point messages (eg, from terminal to acquirer, from acquirer to network, from network to issuer, with transmission guaranteed over each link, but not necessarily immediately).
Position | Meaning |
---|---|
xx0x | Request |
xx1x | Request Response |
xx2x | Advice |
xx3x | Advice Response |
xx4x | Notification |
xx8x | Response acknowledgment |
xx9x | Negative acknowledgment |
Message Origin
Position four of the MTI defines the location of 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
Bearing each of the above four positions in mind, an MTI will completely specify what a message should do, and how it is to be transmitted around the network. Unfortunately, not all ISO 8583 implementations interpret the meaning of an MTI in the same way. However, a few MTI's are relatively standard:
MTI | Meaning | Usage |
---|---|---|
0100 | Authorization request | Request from a point-of-sale terminal for authorization for a cardholder purchase |
0101 | Repeat Request | |
0200 | Acquirer Financial Request | Request for funds, typically from an ATM |
0400 | Acquirer Reversal Request | Reverses a transaction |
0401 | Reversal Repeat Message | |
0420 | Acquirer Reversal Advice | Advises that a reversal has taken place |
0800 | Network Management Request | Echo test, logon, log off etc |
Bitmaps
Within ISO 8583, a bitmap is a field or subfield within a message which indicates which other data elements or data element subfields may be present elsewhere in a 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, generally as data element one and indicates which of data elements 65 to 128 are present. Similarly, a tertiary, or third, bitmap can be used to indicate the presence or absence of fields 129 to 192, although these data elements are rarely used.
The bitmap may be transmitted as 8 bytes of binary data, or as 16 bytes of hexadecimal characters 0-9, A-F in the ASCII or EBCDIC character sets.
Ї=== Examples ===efasdfaasfdasfd
Bitmap | Defines presence of |
---|---|
4210001102C04804 | Fields 2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62 |
7234054128C28805 | Fields 2, 3, 4, 7, 11, 12, 14, 22, 24, 26, 32, 35, 37, 41, 42, 47, 49, 53, 62, 64 |
8000000000000001 | Field 1, 64 |
0000000000000011 (secondary bitmap) |
Fields 124, 128 |
Data Elements
Data Elements are the individual fields which carrying the substantive information about the transaction itself. There are up to 128 data elements specified in the original ISO 8583:1987 standard, and up to 192 data elements in later releases. The 1993 revision added new definitions, deleted some, while leaving the message format itself unchanged.
While each data element has a specified meaning and format, the standard also includes some general purpose data elements and system- or country-specific data elements which vary enormously in use and form from implementation to implementation.
Each data element is described in a standard format which defines the permitted content of the field (numeric, binary, etc) and the field length (variable or fixed), according to the following table:
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 4909 and ISO 7813. |
Additionally, each field may be either fixed or variable length. If variable, the length of the field will be preceded by a length indicator.
Type | Meaning |
---|---|
Fixed | Fixed length |
LVAR or (..x) | Where x < 10, means one leading digit specifies the field length |
LLVAR or (..xx) | Where xx < 100, means two leading digits specify the field length |
LLLVAR or (..xxx) | Where xx < 1000, means three leading digits specify the field length |
Examples
Field Definition | Meaning |
---|---|
n6 | Fixed length field of six digits |
n. .6 | LVAR numeric field of up to 6 digits in length |
a. .11 | LLVAR alphanumeric field of up to 11 characters in length |
b. .999 | LLLVAR binary field of up to 999 bytes in length |