SWIFT MT validator libraries is a java SDK that will help you build a payments or trade financing or SWIFT in India application or just about any type of SWIFT MT application that will always be compliant with the latest SWIFT standards. You need to parse SWIFT messages? Just add a jar to your project and start using the rich and full proof methods to parse, build or validate SWIFT MT messages. The SWIFT MT parser will parse the messages to a java object that you use in your project.

SWIFT validation is not an easy task. This is why our SWIFT MT validator produces multiple error messages per tag. This way you can use the libraries to process all your message formatting for your online application. The rich error message object it produces, will report swift error code, swift error description, swift tag name, sequence number, line number. No need to spend endless weeks reading and understanding the SWIFT rulebooks to handle SWIFT validation messages. The libraries will help you deliver your new project on time and on budget with a fraction of that cost.

The swift validation errors produced are information rich, including:

  • Multiple errors per message validated
  • swift error ID so that you can easily localize
  • Validation object carries information such as swift tag name, swift error message, line (for multi-line tags), tag occurrence (if the tag shows more than once in a message), sequence (if the tag is in repetitive sequence) so you can now highlight your erroneous field on your screen.

The SWIFT MT reporter uses jasper reports to produce PDF or HTML printouts for your SWIFT messages. You can fully customize reports using the provided jasper source file. You can test aplonReporter. here using the "Generate PDF Report " button.

If you want to test the validator, the free download button to the right will lead you to a demo package that validates MT101.

Development Weeks


There are three types of licenses you can buy. Single, Cloud and Unlimited
They are all one-off perpetual licenses. This means you buy it only once and you can use it forever. They are for unlimited users, TRXs or CPUs. Single is for a single installation of a single application. Cloud is for a single cloud application while unlimited is for selected customers.
To keep your libraries updated with the latest rules, you need to buy an annual maintenance contract
Maintenance contracts (we call them value contracts) are annual and are priced at 25% of the purchased license cost. Along with continuous improvements and compliance releases, value contract entitles you to free and unlimited technical support!
Pricing the SWIFT MT products
The SWIFT MT libraries include the following products. SWIFT_MTvalidator and aplonReporter.These products can be purchased for one or more of the nine message categories, MT1xx, MT2xx, MT3xx, MT4xx, MT5xx, MT6xx, MT7xx, MT8xx, MT9xx. You can purchase the whole SWIFT MT validator or aplonReporter as suites that include all categories in a discount price.

What is SWIFT MT?

SWIFT stands for Society for Worldwide Interbank Financial Telecommunication. Actually, SWIFT is member-owned cooperative that provides communications platform, products and services that allow users to connect and exchange financial information securely and reliably. The transmission of information is achieved by SWIFT messages that are actually 'financial messages' of defined structure through which financial and non-financial institutions transfer financial transactions.

About SWIFT MT message format
All SWIFT messages conform to a defined block structure. Each message block contains data of a particular type and is used for a particular purpose. Furthermore, each block is sub-divided into a number of tags followed by their values that hold the particular information (e.g. Message date, Bank Name, Beneficiary name etc). All the tags are defined in the SWIFT manual and may have one or more lines of information. Also, depending on the message type, the tags may exist (one or more times) or not in a block.

In order to be accepted and transferred from the SWIFT network, there are several rules (both syntax and semantics) that a message must be compliant to. When a message arrives to its destination, is a large strictly formatted string. This string needs to be parsed so that someone can use its impended information. At that point SwiftMsgProcessor component of PaymentComponents SWIFT MT library can be a great help.

A typical SWIFT MT message format may consist of the following five blocks:
Basic Header block
The Basic Header is given in Block 1 of a SWIFT message and is the only header that appears on all messages. This header provides the fundamental reference for any particular message and has the same format for both input and output messages. However, the information contained in the Basic Header is relative to the sender when the message is input and relative to the receiver when the same message is output.

The following is an example of a basic input header:


The components are separated and we can now distinguish the Block Identifier, Application Identifier, Service Identifier, LT Identifier, Session Number, Sequence Number (ISN or OSN) :

{ 1: F 01 ABCDGRA0AXXX 0057 000289 }
Application Header block
The Application Header of a SWIFT message provides information about the message itself. This header is given in Block 2 of a SWIFT message and it differs whether is part of an input or an output message. For input messages, the Application Header describes the type of message, its addressee and how it should be sent, while for output messages it defines the type of message, who sent it and when, and when it was delivered.

The following is an example of an input Application Header :


The components are separated and we can now distinguish the Block Identifier, Input/Output Identifier, Message Type, Receiver's Address, Message Priority, Delivery Monitoring and Obsolescence Period:

{ 2: I 103 DDDDGRA0AXXX U 3 003}

User Header block
The User Header is an optional header available within FIN for user-to-user messages only. It appears in Block 3 of a SWIFT message, and allows users to provide their own reference within the headers for a particular message.

The following is an example of an input User Header Block:


The components are separated and we can now distinguish the Block Identifier, Banking Priority and the Message User Reference (MUR):

{ 3: {113:xxxx} {108:abcdefgh12345678} }

Text block
Where applicable, the text of a SWIFT message is given in Block 4.

An example of a Text Block follows:

:59:S.T JANSSENcrlf

Trailer block
One or more trailers may appear in Block 5 of a SWIFT message. As a matter of fact, trailers are added to a message for control purposes as well as to indicate that special circumstances apply to the handling of the message. Moreover, they may convey special or additional information and may be added by the user or by the system.

An example of a Text Block follows:


SWIFT MT messages categories
SWIFT MT message formats are identified in a consistent manner and are grouped by the financial service they relate to. All the messages start with the literal "MT" which stands for Message Type and are followed by a 3-digit number. The first digit of the 3-digit represents the Category. PaymentComponents SWIFT MT libraries support all relevant categories. Namely:
Customer Payments and Cheques – MT1xx
MT101, MT102, MT103, MT104, MT105, MT107, MT110, MT111, MT112, MT190, MT191, MT192, MT195, MT196, MT198, MT199
Financial Institution Transfers – MT2xx
MT200, MT201, MT202 , MT203, MT204, MT205, MT207, MT210, MT256, MT290, MT291, MT292, MT295, MT296, MT298, MT299
Treasury Markets – Foreign Exchange - Money Markets MT3xx
MT300, MT303, MT304, MT305, MT306, MT307, MT320, MT321, MT330, MT340, MT341, MT350, MT360, MT361, MT362, MT364, MT365, MT370, MT380, MT381, MT390, MT391, MT392, MT395, MT396, MT398, MT399
Collection and Cash Letters – MT4xx
MT400, MT410, MT412, MT416, MT420, MT422, MT430, MT450, MT455, MT456, MT490, MT491, MT492, MT495, MT496, MT498, MT499
Securities Markets – MT5xx
MT500, MT501, MT502, MT503, MT504, MT505, MT506, MT507, MT508, MT509, MT510, MT513, MT514, MT515, MT516, MT517, MT518, MT519, MT524, MT526, MT527, MT530, MT535, MT536, MT537, MT538, MT540, MT541, MT542, MT543, MT544, MT545, MT547, MT548, MT549, MT558, MT559, MT564, MT565, MT566, MT567, MT568, MT569, MT574, MT575, MT576, MT577, MT578, MT579, MT581, MT586, MT590, MT591, MT592, MT595, MT596, MT598, MT599
Treasury Markets - Metals and Syndications – MT6xx
MT600, MT601, MT604, MT605, MT606, MT607, MT608, MT609, MT620, MT643, MT644, MT646, MT649, MT670, MT671, MT690, MT691, MT692, MT695, MT696, MT698, MT699
Documentary Credits and Guarantees MT7xx
MT700, MT701, MT705, MT707, MT710, MT711, MT720, MT721, MT730, MT732, MT734, MT740, MT742, MT747 , MT750, MT752 , MT754, MT756, MT760, MT767, MT768, MT769, MT790 , MT791, MT792, MT795, MT796, MT798, MT799
Travelers Cheques – MT8xx
MT800, MT801, MT802, MT824, MT890, MT891, MT892, MT895, MT896, MT898, MT899
Cash Management and Customer Status – MT9xx
MT900, MT910, MT920, MT935, MT940, MT941, MT942, MT950, MT970, MT971, MT972, MT973, MT985, MT986, MT990, MT991, MT992, MT995, MT996, MT998, MT999