SWIFT message types
SWIFT messages consist of five blocks of data including three headers, message content, and a trailer. Message types are crucial to identifying content.
All SWIFT messages include the literal "MT" (Message Type). This is followed by a 3-digit number that denotes the message type, category, and group. Consider the following example, which is an order to buy or sell via a third party:
MT502The first digit (5) represents the category. A category denotes messages that relate to particular financial instruments or services such as Precious Metals, Syndications, or Travelers Checks. The category denoted by 5 is Securities Markets.
The second digit (0) represents a group of related parts in a transaction life cycle. The group indicated by 0 is a Financial Institution Transfer.
The third digit (2) is the type that denotes the specific message. There are several hundred message types across the categories. The type represented by 2 is a Third-Party Transfer.
Each message is assigned unique identifiers. A 4-digit session number is assigned each time the user logs in. Each message is then assigned a 6-digit sequence number. These are then combined to form an ISN (Input Sequence Number) from the user's computer to SWIFT or an OSN (Output Sequence Number) from SWIFT to the user's computer. It is important to remember that terminology is always from the perspective of SWIFT and not the user.
The Logical Terminal Address (12 character BIC), Day, Session and Sequence numbers combine to form the MIR (Message Input Reference) and MOR (Message Output Reference), respectively.
This section discusses the SWIFT field structure. A field is a logical subdivision of a message block A, which consists of a sequence of components with a starting field tag and delimiters.
A field is always prefaced by a field tag that consists of two digits followed, optionally, by an alphabetic character. The alphabetic character is referred to as an option. For example, 16R is a tag (16) with an option (R) that indicates the start of a block; 16S is a tag (16) with an option (S) that indicates the end of a block. A field is always terminated by a field delimiter. The delimiter depends on the type of field used in a message block.
There are two types of fields used in SWIFT messages: generic and non-generic. The type of field used in a SWIFT message block is determined by the Message Type. What follows is a discussion of these SWIFT field structures. For more on generic and non-generic fields and how to distinguish between them, see Part III, Chapter 3 of the SWIFT User Handbook
The structure of non-generic fields in SWIFT message blocks is as follows:
:2!n[1a]: data content<CRLF>
: = mandatory colon
2!n = numeric character, fixed length
[1a] = one optional alphabetic character, letter option
: = mandatory colon
data content = the data content, which is defined separately for every tag
<CRLF> = field delimiter
The following is an example of a non-generic field:
:20:1234<CRLF> :32A:...<CRLF>Note:In some cases (such as with the tag 15A... n), the data content is optional.
The structure of generic fields in SWIFT messages is as follows:
:2!n1a: = same format as non-generic fields, except that 1a is mandatory
: = mandatory second colon (required in all generic fields)
4!c = qualifier
'/' = first delimiter
[8c] = issuer code or Data Source Scheme (DSS)
'/' = second delimiter
data content = See Part III, Chapter 3 of the SWIFT User Handbook for the format definitionNote:Non-generic fields and generic fields cannot share the same field tag letter option letter. In order to distinguish between them easily, a colon is defined as the first character of the column Component Sequence. Generic fields are defined in the same section (Part III, Chapter 3 of the SWIFT User Handbook) as the non-generic fields.
The following character restrictions apply to generic field data content:
- Second and subsequent lines within the data content must start with the delimiter CRLF.
- Second and subsequent lines within the data content must never start with a colon (:) or a hyphen (-).
- The data content must end with the delimiter CRLF.