SWIFT MT Validator
Parse and validate SWIFT FIN (MT) messages — header blocks, UETR, field formats and the x character set, BIC and IBAN checks, ISO 4217 amounts and the MT 103 network-validated rules.
Follows SWIFT Standards MT · ISO 13616 IBAN · ISO 9362 BICSWIFT IBAN Registry v101 (89 countries) · ISO 4217·verified Oct 2026· double-checked Oct 2026— FIN header blocks by direction, field formats, x character set, UETR, currency decimals, MT 103 rules C1 and C4–C9; IBAN length, BBAN and mod-97 checked against python-stdnum and schwifty
Checks: block structure; block 1/2 header layout and BICs (input: block 1 = sender, block 2 = receiver; output: block 1 = receiver, block 2 MIR = sender); UETR (field 121, mandatory in MT 103/202/205 since November 2018) as a lower-case UUID v4; each field against its SWIFT format (e.g. :20: 16x, :32A: 6!n3!a15d, :50K:/:59: [/34x] + 4*35x, :23E: 4!c[/30x]) and the x character set; :13C: time and UTC offset; slash rules for :20:/:21:; dates; ISO 4217 currency and its decimal places as written (C03 — JPY 100,00 fails); :71A: OUR/SHA/BEN; mandatory fields and allowed options for MT 103, 202, 940 and n99; MT 103 rules C1 and C4–C9. BICs are checked as ISO 9362 / FIN 4!a2!a2!c[3!c] with an ISO 3166 country (XK accepted); IBANs against SWIFT IBAN Registry v101 (89 countries; territories such as GP or JE use the FR / GB prefix) for length and BBAN format, plus ISO 13616 check digits 02–98 and mod-97 (national check digits are not checked). Not checked: BIC existence in the BIC directory, CBPR+ / market-practice rules, field order. Swift ended MT/MX coexistence for cross-border payment instructions on 22 November 2025, so they are now sent in ISO 20022 (CBPR+); MT 103 and 202 remain in use in other contexts.