If you’re looking at a SWIFT message for the first time, it can be a bit daunting. To the untrained eye the whole SWIFT message structure can look like gobbledygook. But actually, there is a bit of a method to the madness. Whether you are receiving, processing or constructing an MT101 or an MT940 message it is important to what you’re dealing with, and what needs to go where. Let me explain…..
SWIFT Message Structure
A SWIFT MT message consists of the following blocks or segments:
- {1:} Basic Header Block
- {2:} Application Header Block
- {3:} User Header Block
- {4:} Text Block
- {5:} Trailer Block
To keep it very simple I’ve not included any data at this point – but to highlight the SWIFT message structure will appear something like the following:
{1:}{2:}{3:}{4:
-}
{5:}
A header example, would be something like:
{1:F01YOURCODEZABC1234567890}{2:I101YOURBANKXJKLU3003}{3:{113:SEPA}{108:ILOVESEPA}}{4:
Now, let’s break this example down and explain each component of it…:
SWIFT Message Structure: Basic Header Block
This will provide information on the contents of the Basic Header Block – the bit that starts {1:
It will typically consist of something like: {1:F01YOURCODEZABC1234567890} where:
- {1: – Identifies the Block – i.e. the Basic Header Block
- F – Indicates the Application Id – in this case, FIN
- 01 – Indicates the Service Id
- 01 = FIN
- 21 = Acknowledgement (ACK) or Negative Acknowledgement (NAK)
- YOURCODEZABC – The Logical Terminal Address – which is typically your BIC 8 (YOURCODE) + Logical Terminal Code (Z) + Branch Code
- I know YOURCODE is an invalid BIC – but lets go with it…
- 1234 – Session Number – Ask SWIFT or your Service Bureau how they want you to populate this – this is not very interesting for corporates
- 567890 – Sequence Number – As above, ask your SWIFT people how they want this populated
- } – Indicated the end of the Basic Header Block
SWIFT Message Structure: Application Header Block
The Application Header Block will always starts {2:
And will look something like: {2:I101YOURBANKXJKLU3003} where:
- {2: – Indicates the start of the Application Header block
- I – Informs you that you’re in Input mode (i.e. the Sender), O would indicate Output mode – so you would be the recipient of the message
- 101 – Message type – in this case, an MT101
- YOURBANKXJKL – The recipients BIC, consisting of their BIC (YOURBANK) + Recipients Logical Terminal Code (X) + Recipients Branch Code (JKL)
- U – Message Priority:
- U – Urgent
- N – Normal
- S – System
- 3 – Delivery Monitoring – Ask your SWIFT contacts or Service Bureau how you should populate this, if at all – Optional
- 003 – Non-delivery notification period – again, ask your SWIFT contacts how to populate this, if at all – Optional
- } – Indicated the end of the Application Header Block
SWIFT Message Structure: User Header Block
The User Header Block will always starts {3:
And will look something like: {3:{113:SEPA}{108:ILOVESEPA}} where:
- {3: – Indicates the start of the User Header Block
- {113:SEPA} This is an optional 4 alphanumeric bank priority code
- {108:ILOVESEPA} – Indicates the Message User Reference (MUR) value, which can be up to 16 characters, and will be returned in the ACK
- } – Indicated the end of the User Header Block
SWIFT Message Structure: Text Block
The Text Block will always starts {4:
And will look something like: {4:
Followed by the details of the message you’re sending. In this case, it is a MT101 – as indicated in Application Header Block message type. For this piece, I strongly recommend that you find and read the appropriate SWIFT message specification – in this instance SWIFT MT101 Format Specifications – and then work with your bank(s) to understand their specific message requirements.
Finally ending with -}
SWIFT Message Structure: Trailer Block
The Trailer Block will always starts {5:
This can be added by you or the system. Work with your SWIFT contacts to know if you need to indicate this block.
And ends with }
Sources:
- IBM SWIFT Message Block Structure
- Anatomy of a SWIFT Message
- SWIFT by Paras