🏦 SWIFT MT Parser
Paste a SWIFT MT message to split its five blocks, check the 16R/16S skeleton against the message type, read status and reason codes in plain words, and see the T+n settlement cycle against VSDC's clock.
Splits {1:}…{5:} blocks, decodes headers & trailer, and breaks Block 4 into a field tree by 16R/16S sequences. The skeleton check pairs every 16R with its 16S (unclosed or misnamed blocks are flagged with their line), walks the mandatory sequence chain of the message type with a separate table per MT (540–543: GENL → TRADDET → FIAC → SETDET; 544–547 need ESET/ESTT; 578 needs REDE + PAYM) and the minimum mandatory fields of each sequence, then the settlement parties: exactly one SETPRTY with :95a::PSET, exactly one DEAG on receive messages and one REAG on deliver messages (578 follows :22H::REDE), each :95a: party in only one SETPRTY, exactly one :19A::SETT (or ESTT) in AMT for against-payment messages, and a cancellation (:23G:CANC) must carry exactly one :20C::PREV. Every field is checked against network rules: the 15d number format (decimal comma mandatory, ≤ 15 characters, decimals within the ISO 4217 minor unit of the currency, so VND has none), the SWIFT x character set (accented letters and đ are flagged per character; :70F:/:70G: of corporate action messages use the wider z set), calendar-valid :98A:/:98C: dates, the ISIN check digit in :35B: and 8/11-character BICs in :95P:. :25D: status and :24B: reason codes get a plain-language line; a code carrying a Data Source Scheme (:24B::REJT/VSDC/X01) is shown as that issuer's own code, not looked up in the ISO table; tables marked ⚠️ are still to be checked against SR 2024. With :98a::TRAD and :98a::SETT (ESET on confirmations) the T+n cycle is counted: Vietnamese business days with public holidays deducted when :95a::PSET is VSDC or absent, weekends only for other markets. VSDC's clock (complete 11:30, in the account by 13:00, usable from the afternoon session) is shown only for MT 541/543/545/547 with SETR//TRAD, naming the securities on the receive side and the sale proceeds on the deliver side. A message with only Block 4 (copied from a gateway log) can have its type picked manually. Amounts and quantities are formatted from the original string, so decimals and the N sign stay intact.