ISO8583 Terminal API
ISO 8583 is a standard defined by the International Organization for Standardization to facilitate information exchange for transactions using cards. ISO 8583 defines a message format so that different systems involved in a card transaction can exchange information in an interoperable manner. This standard has also evolved over the years to remain updated with newer and safer payment methods.
The ISO 8583 message contains the following sections:
- Message Type Indicator
- This is part of the message that indicates what the purpose of the message is. For example, a message could be initiated by an acquirer requesting that the payment for a purchase be authorized by the issuer. Or, a message could be a response from the issuer that the payment has been authorized or declined. Similarly, another example could be a message that was initiated by the issuer to reverse a payment (in case of a payment dispute). There are many such purposes covering simple financial information exchange, administrative tasks, and settlements. Each of these can be communicated using the message type indicator.
- The message type indicator also contains information about who originated the message (acquirer or issuer).
- Bitmap
- This part of the ISO 8583 message indicates which data elements are actually present. For the party receiving an ISO 8583 message, the bitmap informs what specific information is present or absent. The presence of a data element in a specific message is indicated by a one (1) in the assigned position; a zero (0) indicates the absence of a data element in the assigned position. A bitmap is simply an indexing technique and consists of 64 bits numbered from the left starting with bit 1.
- Data Elements
- This is the part of the message that contains actual data. There are up to 128 data elements specified in the original ISO 8583:1987 standard and up to 192 data elements in later releases. All these data fields put together cover all the use cases including payments, reversals, settlements, and even administrative activities.
- Information about the card number (called primary account number), card expiry date, payment amount, payment date and time, conversion rate, and message authentication code (a field that is relevant if the user was asked to enter a password or PIN) are all passed as data elements in ISO 8583 and each data element has a defined position (called data field) in the message where it should be present. Each data field can either be of a fixed or variable length.
Sample ISO8583 Message
MTI | BITMAP | DATA FIELDS(Incomplete demo data only for sample*) |
0100 | 3238048000C18A1B | 0000000012301116103008000001183008111600710034303230393938324D45D4352000101414944001441303030303030363135303030314554520007313030323539380840FFFF0610033245200001 |
MTI | 0100 | 0= ISO 8583 version: 1987 1= Message class: Authorization 0= Message function: Request 0= Message origin: Acquirer | Authorization request, from Acquirer to Card Issuer |
3238048000C18A1B(HEX)
|
0 | 10 | 20 | 30 | 40 | 50 | 60 |
1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234 |
0011001000 | 1110000000 | 0100100000 | 0000000000 | 1100000110 | 0010100001 | 1011 |
On this page
- ISO8583 Terminal API