ISO 8583 Financial Transaction Message Format

ISO 8583 message format is one of the most widely used format for financial messages. When a purchase is made at the point of sale or cash is withdrawn from an automated teller, its highly likely that an ISO 8583 formatted message has been used behind the scenes.

ISO 8583 is a complete specification which not only allows card originated transactions including purchase, withdrawal, deposit, refund, reversal, balance inquiry, payments and inter-account transfers but also defines system-to-system messages for secure key exchanges, reconciliation of totals, network sign-on/sign-off and other administrative messages.

The specification of the standard can be purchased from ISO directly at their website. The standard is officially titled Financial transaction card originated messages — Interchange message specifications and with its latest revision in 2003 (ISO8583:2003) has 3 parts. These are:

Part 1: Messages, data elements and code values
Part 2: Application and registration procedures for Institution Identification Codes (IIC)
Part 3: Maintenance procedures for messages, data elements and code values

There were two former versions ISO8583:1987 and ISO8583:1993. The most widely used version is still the ISO8583:1987 which is still used by biggest payment networks such as Visa and Mastercard.

An ISO 8583 message is structured as follows:
  • Message header
  • Message Type Identifier (MTI)
  • One or more bitmaps indicating which data elements are present in the message
  • Data elements, or fields

Header

Message type identifier

Primary bitmap
1

Secondary bitmap
0

Data elements


Message header
Message header is network specific thus Visa and Mastercard use a different message header structure.

Message Type Identifier
Message Type Identifier is one of the key element 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. The following example (MTI 0200) defines a Financial Transaction Request Message.


Bitmaps
The MTI is followed by the bitmap which indicates which elements are present in the body of the message. A bitmap is an 8-byte binary value (or 16-byte hexadecimal string) indicating the presence or absence of the data elements in the body of the message.

There is a mandatory first bitmap also known as the 'Primary bitmap' in the message which represents the first 64 data elements of the message. The second bitmap known as the 'Secondary bitmap' is present if any of the fields 65-128 are present in the message. The third bitmap known as the 'Ternary bitmap' is only present if any of the 128-192 fields are present in the message.

 Bitmap Binary value Defines presence of
 4210001102C04804 100001000010000000000000001000100000010110000000100100000000100 Fields 2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62

Please note that the first bit of each bitmap signifies the presence of the next bitmap. In the above primary bitmap example, the first bit is set which means a secondary bitmap will also be present.

Data Elements
The bitmap is followed by the a series of data elements or fields. The specific mode of data encoding varies from field to field.
There are up to 192 data elements in the ISO 8583 standard and the message can have a maximum of three bitmaps. Most of the data elements have a specific purpose in the standard, there are some data elements which are general purpose and their use varies from implementation to implementation.

The ISO 8583:1987 data elements are listed in the following table:

Bit

Name

Format

Representation

1

Bitmap Indicator

 

b 64

2

Primary account number (PAN)

LLVAR

n ..19

3

Processing code

 

n 6

4

Amount transaction

 

n 12

5

Amount settlement

 

n 12

6

Amount cardholder billing

 

n 12

7

Date and time transmission

MMDDhhmmss

n 10

8

Amount cardholder billing fee

 

n 8

9

Conversion rate settlement

 

n 8

10

Conversion rate cardholder billing

 

n 8

11

Systems trace audit number

 

n 6

12

Time local transaction

hhmmss

n 6

13

Date local transaction

MMDD

n 4

14

Date expiration

YYMM

n 4

15

Date settlement

MMDD

n 4

16

Date conversion

MMDD

n 4

17

Date capture

MMDD

n 4

18

Merchant type

 

n 4

19

Acquiring institution country code

 

n 3

20

Primary account number (PAN) extended country code

 

n 3

21

Forwarding institution country code

 

n 3

22

Point of service entry mode

 

n 3

23

Card sequence number

 

n 3

24

Function code

 

n 3

25

Point of service condition code

 

n 2

26

Point of service capture code

 

n 2

27

Authorisation identification response length

 

n 1

28

Amount transaction fee

 

n 8

29

Amount settlement fee

 

n 8

30

Amount transaction processing fee

 

n 8

31

Amount settlement processing fee

 

n 8

32

Acquiring institution identification code

LLVAR

n ..11

33

Forwarding institution identification code

LLVAR

n ..11

34

Primary account number extended

LLVAR

n ..28

35

Track 2 data

LLVAR

z ..37

36

Track 3 data

LLLVAR

z ..104

37

Retrieval reference number

 

an 12

38

Authorization identification response

 

an 6

39

Response code

 

an 2

40

Service restriction code

 

an 3

41

Card acceptor terminal identification

 

ans 16

42

Card acceptor identification code

 

ans 15

43

Card acceptor name/location

 

ans 40

44

Additional response data

LLVAR

an ..25

45

Track 1 data

LLVAR

an ..76

46

Additional data ISO

LLLVAR

an ..999

47

Additional data national

LLLVAR

an ..999

48

Additional data private

LLLVAR

an ..999

49

Currency code transaction

 

an 3

50

Currency code settlement

 

an 3

51

Currency code card holder billing

 

a 3

52

Personal identification number (PIN) data

 

b 16

53

Security related control information

 

n 18

54

Additional amounts

LLLVAR

an ..120

55-56

Reserved for ISO use

LLLVAR

ans ..999

57-59

Reserved for national use

LLLVAR

ans ..999

60-63

Reserved for private use

LLLVAR

ans ..999

64

Message authentication code (MAC) field

 

b 16

65

Reserved for ISO use

 

 

66

Settlement code

 

n 1

67

Extended payment code

 

n 2

68

Receiving institution country code

 

n 3

69

Settlement institution country code

 

n 3

70

Network management information code

 

n 3

71

Message number

 

n 4

72

Data record

LLLVAR

ans ..999

73

Date action

YYMMDD

n 6

74

Credits number

 

n 10

75

Credits reversal number

 

n 10

76

Debits number

 

n 10

77

Debits reversal number

 

n 10

78

Transfer number

 

n 10

79

Transfer reversal number

 

n 10

80

Inquiries number

 

n 10

81

Authorisations number

 

n 10

82

Credits processing fee amount

 

n 12

83

Credits transaction fee amount

 

n 12

84

Debits processing fee amount

 

n 12

85

Debits transaction fee amount

 

n 12

86

Credits amount

 

n 15

87

Credits reversal amount

 

n 15

88

Debits amount

 

n 15

89

Debits reversal amount

 

n 15

90

Original data elements

 

n 42

91

File update code

 

an 1

92

File security code

 

n 2

93

Response indicator

 

n 5

94

Service indicator

 

an 7

95

Replacement amounts

 

an 42

96

Message security code

 

an 8

97

Amount net settlement

 

n 16

98

Payee

 

ans 25

99

Settlement institution identification code

LLVAR

n ..11

100

Receiving institution identification code

LLVAR

n ..11

101

File name

LLVAR

ans ..99

102

Account identification 1

LLVAR

ans ..28

103

Account identification 2

LLVAR

ans ..28

104

Transaction description

LLLVAR

ans ..999

105-111

Reserved for ISO use

 

 

112-119

Reserved for national use

 

 

120-127

Reserved for private use

 

 

128

Message authentication code (MAC) field

 

b 16


Data Element Representations

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 respectively


Some data elements in the ISO message can be used to hold sub-elements either in sub-bitmap or TLV format. The sub-bitmap works exactly like the message bitmaps discussed above but at a data element level. The TLV (Tag length value) as specified in ISO 8825 is another method where multiple sub-fields can be grouped under a data element. The structure of a TLV field is as follows:

Dataset identifier

1-byte

Dataset length

2-bytes

T1 L1 V1  T2 L2 V2 ....Tn Ln Vn

Tag is 1 or 2 bytes
Length is 1 or 2 bytes
Value is n bytes



Comments