ISO 8583 :: MTI

As it's name suggests, the message type indicator provides information about the type of message we are dealing with. The MTI consists of four components describing version, class, function and originator of the message. Typically, the four MTI components are encoded as two bytes, with each half-byte or nibble representing one of the components. For example, a message beginning 0x01 0x00 has the version info set to 0, the class set to 1, and function and originator fields both set to 0.


This is the first piece of information contained in the message, indicating the ISO standard version the message is based on. The following version values are defined:

Value Version
0 1987
1 1993
2 2003
3-9 Reserved for ISO use

Message Class

the next position of the MTI provides information about the message class that the message is categorized as:

Value Message Class
0 Reserved for ISO use
1 Authorization
2 Financial presentment
3 File action
4 Reversal/Chargeback
5 Reconciliation
6 Administrative
7 Fee collection
8 Network management
9 Reserved for ISO use

At this point, one could asked oneself naively, what exactly do these classes mean? How are 'Financial Presentment' and 'Financial Presentment' different? What about the difference between the 'Administrative' and 'Network management' classes? It turns out that those are very good questions and not everybody using 8583 to create a protocol came up with identical answers. A semantically identical message marked 'Authorization' in one protocol may be 'Financial Presentment' in another. So vaguely, the classes should mean roughly what you think they mean, but you need to check the description of the protocol you're talking about to be certain.

Message Function

The following table contains the possible values of the message function component of the MTI. Note that here again the precise meaning of these functions are dependent on the flavor of ISO you're using.

Value Message Function
0 Request
1 Request response
2 Advice
3 Advice response
4 Notification
5 Notification acknowledgment
6 Instruction
7 Instruction acknowledgment
8,9 Reserved for ISO use

Again, don't ask what the difference is between an 'Advice', a 'Notification' and an 'Instruction'. The answer is: it depends.

Transaction Originator

The final component is information about who initiated the transaction. The possible values are:

Value Message Function
0 Acquirer
1 Acquirer Repeat
2 Card Issuer
3 Card Issuer Repeat
4 Other Originator
5 Other Originator Repeat
6-9 Reserved for ISO

An important aspect to note is the existence of 'Repeat' messages. In case no response was received, it's usually possible to resend the identical message with the originator information set to 'Repeat'.

MTI example

A typical message a new terminal sends out when first connected might be an 0800 message. Looking up the information above, we see the terminals protocol is old'ish (1987). The message class is 'Network Management', the message's function is a 'Request' and it's being sent by the 'Acquirer'. You could argue about the sense of claiming the acquirer sent the message when in fact it's being sent by a terminal at the merchant.

If the host the terminal is trying to communicate with answers, it would send back a 0810 message. The message type is identical, apart from being a 'response' and not a 'request'. But, if the terminal doesn't receive an answer from the host, the terminal may try to resend the message, this time as a 0801 message, indicating the message to be a repeat.

When the answer from the host finally arrives, the terminal will be able to tell apart delayed answers to the first (0810) message and answers to the repeat (0811).


Comment on this page: