Académique Documents
Professionnel Documents
Culture Documents
Introduction[edit]
The ISO 8583 specification has three parts:
Message format[edit]
A card-based transaction typically travels from a transaction-acquiring device, such as a point-of-
sale terminal or an automated teller machine (ATM), through a series of networks, to a card
issuing system for authorization against the card holder's account. The transaction data contains
information derived from the card (e.g., the account number), the terminal (e.g., the merchant
number), the transaction (e.g., the amount), together with other data which may be generated
dynamically or added by intervening systems. Based on this information, the card issuing system
will either authorize or decline the transaction and generate a response message which must be
delivered back to the terminal within a predefined time period.
An ISO 8583 message is made of the following parts:
Code Meaning
3xxx
4xxx
6xxx
7xxx
Message class[edit]
Position two of the MTI specifies the overall purpose of the message.
x3xx
File actions
Used for hot-card, TMS and other exchanges
message
Reversal (x4x0 or x4x1): Reverses the action of a previous
Reversal and
x4xx
authorization.
chargeback
Chargeback (x4x2 or x4x3): Charges back a previously cleared
messages
financial message.
x5xx
Reconciliation
Transmits settlement information message.
message
x6xx
Administrative Transmits administrative advice. Often used for failure
message messages (e.g. message reject or failure to apply).
x7xx
Fee collection
messages
Network
x8xx
Used for secure key exchange, logon, echo test and other
management
network functions.
message
Message function[edit]
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 (e.g., from acquirer to issuer and
back with time-outs and automatic reversals in place), while advices are point-to-point messages
(e.g., from terminal to acquirer, from acquirer to network, from network to issuer, with
transmission guaranteed over each link, but not necessarily immediately).
xx0x Request
xx2x Advice
xx4x Notification
xx5x
Notification
acknowledgement
xx6x Instruction
xx8x
Some implementations[which?] use for positive
acknowledgment.[citation needed]
Reserved for ISO use
xx9x
Some implementations[which?] use for negative
acknowledgment.[citation needed]
Message origin[edit]
Position four of the MTI defines the location of the message source within the payment chain.
Code Meaning
xxx0 Acquirer
xxx2 Issuer
xxx4 Other
xxx6
Reserved by ISO
xxx7
xxx8
xxx9
Examples[edit]
Given an MTI value of 0110, the following example lists what each position indicates:
0130
Issuer Response to
Confirmation of receipt of authorization advice
Authorization Advice
Issuer Response to
0210 Issuer response to request for funds
Financial Request
e.g. Checkout at a hotel. Used to complete transaction
0220 Acquirer Financial Advice
initiated with authorization request
0221
Acquirer Financial Advice
If the advice times out
Repeat
Issuer Response to
0230 Confirmation of receipt of financial advice
Financial Advice
0810
Network Management Hypercom terminals initialize response. Echo test, logon,
Response logoff etc.
Network Management
0820 Key change
Advice
Bitmaps[edit]
In ISO 8583, a bitmap is a field or subfield within a message, which indicates whether other data
elements or data element subfields are present elsewhere in the message.
A field is considered to be present only when the corresponding bit in the bitmap is set. For
example, a byte with value 0x82 (decimal 130) is binary 1000 0010, which means
fields 1 and 7 are present in the message and fields 2, 3, 4, 5, 6 and 8 are not.
The bitmap may be represented as 8 bytes of binary data, or as sixteen hexadecimal characters
(0-9, A-F) in the ASCII or EBCDIC character sets. A message will contain at least one bitmap,
called the primary bitmap, which indicates which of data elements 1 to 64 are present. The
presence of an optional secondary bitmap is also indicated by bit 1 of the primary bitmap. If
present, the secondary bitmap indicates whether data elements 65 to 128 are present. Similarly,
a tertiary bitmap can be used to indicate the presence of fields 129 to 192, although these data
elements are rarely used.
Examples[edit]
Given a bitmap value of 42 10 00 11 02 C0 48 04,
0x42 = 0100 0010 (counting from the left, the second and seventh bits are 1, indicating
that fields 2 and 7 are present)
0x10 = 0001 0000 (the first bit corresponds to field 9, so the fourth bit here indicates
field 12 is present)
0x00 = 0000 0000 (no fields present)
0x11 = 0001 0001 (fields 28 and 32 are present)
0x02 = 0000 0010 (field 39 is present)
0xC0 = 1100 0000 (fields 41 and 42 are present)
0x48 = 0100 1000 (fields 50 and 53 are present)
0x04 = 0000 0100 (field 62 is present)
0 10 20 30 40 50 60
nth
bit
12345 12345 12345 12345 12345 12345 12
67890 67890 67890 67890 67890 67890 34
Bit
01000 01000 00000 01000 11000 00100 01
ma 01000 00000 00100 00010 00001 00000 00
p
Data elements[edit]
Data elements are the individual fields carrying the transaction
information. 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
an Alphanumeric
b Binary data
Type Meaning
Examples[edit]
Field
Meaning
Definition
Data
Type Usage
field
1 b 64 Bitmap
4 n 12 Amount, transaction
5 n 12 Amount, settlement
14 n4 Expiration date
15 n4 Settlement date
17 n4 Capture date
39 an 2 Response code
57 ans ...999
59 ans ...999
66 n1 Settlement code
71 n4 Message number
74 n 10 Number of credits
76 n 10 Number of debits
78 n 10 Transfer number
80 n 10 Number of inquiries
81 n 10 Number of authorizations
93 an 5 Response indicator
94 an 7 Service indicator
95 an 42 Replacement amounts
98 ans 25 Payee
Processing code[edit]
The following is a table specifying the message type and
processing code for each transaction type.
Authorization 00 a0 0x
0100
Balance inquiry 31 a0 0x
Sale 00 a0 0x
Cash 01 a0 0x
0200
Void 02 a0 0x
Mobile topup 57 a0 0x
Return code[edit]
The following table shows response codes and their
meanings.[4]
Code Meaning
04 Pickup
05 Do not honor
06 General error
09 Request in progress
10 Partial approval
11 VIP approval
12 Invalid transaction
15 No such issuer
16 Insufficient funds
17 Customer cancellation
19 Re-enter transaction
20 Invalid response
22 Suspected Malfunction
Unable to locate record in file, or account number is
25
missing from the inquiry
30 Format error
51 Insufficient funds
52 No checking account
53 No savings account
54 Expired card
55 Incorrect PIN
59 Suspected fraud
63 Security violation
65 Activity count limit exceeded
94 Duplicate transmission
95 Reconcile error
N0 Force STIP
P6 Unsafe PIN
XD Forward to issuer
Z3 Unable to go online