Parse and inspect SWIFT MT and MX banking message structures.
When a bank in New York sends a billion dollars to a bank in London, they don't send a JSON payload over a standard REST API. They use the SWIFT network (Society for Worldwide Interbank Financial Telecommunication), an incredibly secure messaging system that connects over 11,000 financial institutions.
Created in the 1970s, the SWIFT MT format is heavily optimized for telex machines. An MT103 (Single Customer Credit Transfer) is composed of numeric tags like :20: (Sender's Reference) and :32A: (Value Date, Currency, Amount).
Because bandwidth was incredibly expensive when this protocol was designed, MT messages are highly compressed and completely unreadable to the untrained eye, relying heavily on character position limits rather than named fields.
The global financial system is currently migrating to the ISO 20022 standard, known in SWIFT as MX messages. Unlike the cryptic MT tags, MX messages are heavily structured XML documents.
While they consume significantly more bandwidth and storage, MX allows for much richer, nested data payloads (like full structured addresses, end-to-end IDs, and detailed remittance information). This rich data is essential for modern Anti-Money Laundering (AML) regulations and automated compliance screening, which MT messages fundamentally cannot support due to length limits.
Why does the legacy SWIFT MT format use cryptic tags like ':32A:' instead of readable JSON keys like 'transactionAmount'?