SWIFT MT Parser
Decode a SWIFT MT (FIN) message block by block, 100 % client-side. MT103, MT202, MT940 and more; headers, tags, trailer.
Paste a SWIFT MT message (block 1 first) to parse it.
How it works
A SWIFT MT (FIN) message is structured in five brace-delimited blocks,
each preceded by its numeric identifier (1 to 5).
The parser tokenises blocks respecting brace nesting, then interprets
each one per its own grammar:
- Block 1 — Basic Header, fixed size: application id
(
F), service id, LT address (12 characters), session number, sequence number. - Block 2 — Application Header. First character is the
direction (
Iinput orOoutput); next 3 are the message type (103, 202, 940…). - Block 3 — User Header, optional.
{key:value}sub-blocks: banking priority, MUR (Message User Reference), UETR End-to-End Reference (GPI). - Block 4 — Text. The application body. Each line
starts with
:tag:followed by the value (possibly multi-line). The trailing-marker closes the block. - Block 5 — Trailer. MAC, CHK, PDE, PDM, DLM sub-blocks for authentication, checksum, duplicate management.
Block structure
{1:F01BANKBEBBAXXX0000000000}
{2:I103BANKDEFFXXXXN}
{3:{108:MUR123456789}{121:cf3a4f5e-...}}
{4:
:20:REF12345
:23B:CRED
:32A:260516EUR1000,00
:50K:/12345678
ACME COMPANY LTD
:59:/12345678901234567890
BENEFICIARY NAME
:70:/INV/2026-001
:71A:OUR
-}
{5:{CHK:1234567890AB}} Common tags per message type
The envelope validator checks the presence of mandatory tags for the following MTs:
- MT103 — Single Customer Credit Transfer:
20(transaction reference),23B(bank operation code),32A(value date + currency + amount),50a(ordering customer),59a(beneficiary),71A(charge code). - MT202 — General Financial Institution Transfer:
20,21,32A,52a(ordering institution),58a(beneficiary institution). - MT900 / MT910 — Confirmation of Debit / Credit:
20,21,25,32A. - MT940 — Customer Statement Message:
20,25,28C,60a(opening balance),61(statement line),62a(closing balance). - MT942 — Interim Transaction Report:
20,25,28C,34F,90a.
Limits
-
The parser does not validate the syntax of amounts,
dates or IBANs inside tags. A malformed
:32A:is passed through as-is. - Sub-sequences (sequences A, B, C in MT564, MT566, etc.) are not reconstructed: the tag list stays flat.
- The CHK checksum and MAC are not verified; only their presence and raw value are surfaced.
- The tool does not handle MLLP framing: if you receive an encapsulated message, paste the text between the delimiters.
Privacy
Related documentation
- SWIFT MT — overview of the FIN standard, its history and ecosystem.
- ISO 20022 — the XML/JSON standard taking over (CBPR+, FIN → MX migration).
- SWIFT FIN User Handbook & Standards Release Guide — the official references; swift.com — Standards overview.