ValidateFin
Back to blog
MT940 → camt.0536 min readBy Eliel Nicaise

MT940 to camt.053: Read & Convert SWIFT Statements

MT940 is being phased out as SWIFT migrates to ISO 20022. Learn the MT940 format tag by tag, how it maps to camt.053, and how to convert it free in your browser.

Validate your file right now

Free, instant and 100% in your browser - no file is ever uploaded.

Open the MT940 Viewer & Converter

What is an MT940 file?

MT940 is the SWIFT "Customer Statement Message": a plain-text, tag-delimited format that banks have used for decades to deliver end-of-day account statements to ERP and treasury systems. Each statement is a set of fields introduced by a colon-wrapped tag — :20: for the transaction reference, :25: for the account, :60F: for the opening balance, :61: for each transaction line, :86: for the free-text details, and :62F: for the closing balance.

The format is compact and human-readable, but rigid: it carries little structured data compared with modern XML statements, the debit/credit direction is encoded in a one- or two-letter mark, amounts use a comma as the decimal separator, and the :86: remittance information is largely unstructured free text that varies from bank to bank. That flexibility is exactly what makes MT940 hard to parse reliably across institutions.

MT940 has no schema. Unlike an XML file validated against an XSD, the only built-in integrity check is arithmetic: the opening balance plus the net of all transactions must equal the stated closing balance. A statement that does not reconcile has almost certainly lost, duplicated or mis-signed a line.

The tags inside an MT940 statement

An MT940 statement is built from a handful of tags that always appear in the same order. Here are the ones that carry the account, the balances and the transactions.

:20: — Transaction reference

Opens the statement. A reference assigned by the bank to this statement message.

:25: — Account identification

The account the statement is for, usually the IBAN or the bank/account number.

:60F: — Opening balance

The balance at the start of the statement: a debit/credit mark (C or D), the date (YYMMDD), the currency and the amount (comma decimal). :60M: is an intermediate opening balance for continued statements.

:61: — Statement line

One record per transaction: value date, optional entry date (MMDD), debit/credit mark (C, D, or RC/RD for reversals), amount, a 4-character SWIFT transaction type (NTRF, NDDT, NMSC…) and the reference.

:86: — Information to account owner

The remittance information / description attached to the preceding :61: line. Often wraps across several lines and is mostly free text.

:62F: — Closing balance

The balance at the end of the statement, in the same layout as :60F:. :64: optionally carries the closing available balance.

How MT940 maps to ISO 20022 camt.053

camt.053 (Bank-to-Customer Statement) is the ISO 20022 XML replacement for MT940. Where MT940 packs a balance into a single line like C231231EUR1000,00, camt.053 expresses the same information as a structured <Bal> element with an explicit type code (OPBD for opening, CLBD for closing), an amount with a currency attribute, a credit/debit indicator and a date. A camt.053 statement can carry almost 1,600 possible fields, against a few dozen for MT940 — richer, unambiguous and machine-validated against an official XSD.

The mapping is direct for the essentials: :25: becomes the account identifier, :60F: and :62F: become the OPBD and CLBD balance blocks, and every :61:/:86: pair becomes an <Ntry> (booked entry) with its amount, credit/debit indicator, booking and value dates, the SWIFT transaction type carried as a proprietary bank transaction code, and the :86: text as remittance information. A reversal (RC/RD) flips the economic direction — a reversed credit is booked as a debit — so the converted statement stays consistent.

This is why the migration matters in practice: SWIFT's November 2025 deadline applied to cross-border payment messages; the coexistence period for the MT9xx statement messages (MT940/MT942/MT950) has been extended beyond that date, with retirement expected around 2027-2028. ERP and treasury systems (SAP, Sage, and others) increasingly import camt.053 only, so finance teams sitting on MT940 feeds need a reliable way to convert them.

Converting MT940 to camt.053 without uploading your data

A conversion is only useful if the output is a valid camt.053 that your ERP will actually accept. The key is to carry the real opening and closing balances straight from :60F:/:62F:, keep the debit and credit entries in the same statement (an MT940 mixes both, unlike a payment-initiation file), map each SWIFT transaction type faithfully, and split the :61: reference into the customer reference and the bank reference so nothing is lost.

Just as important is what you do NOT send anywhere. A bank statement is sensitive data: account numbers, counterparties, amounts. ValidateFin parses and converts MT940 entirely in your browser — the file never leaves your machine, there is no upload, and nothing is stored on a server. That is the difference between a quick paste-and-convert and emailing a statement to a third-party service.

Before you convert, the tool also reconciles the statement: opening balance plus the net turnover must equal the closing balance. If they disagree, you get a warning rather than a silently broken camt.053 — the same arithmetic check a careful treasury analyst would do by hand.

Convert your MT940 to camt.053 now

Drop your MT940 file into the ValidateFin MT940 viewer to see the balances and transactions, then export a valid camt.053.001.02 statement — entirely in your browser. No MT940 file is ever uploaded to a server.

Open the MT940 viewer & converter

Frequently Asked Questions

What replaced MT940?

The ISO 20022 XML statement camt.053 (Bank-to-Customer Statement) replaced MT940. SWIFT's November 2025 ISO 20022 deadline covered cross-border payment messages; the MT9xx statement messages remain available for now (retirement expected around 2027-2028), but most ERP and treasury systems already import camt.053.

Can I convert MT940 to camt.053 for free?

Yes. The ValidateFin MT940 tool reads an MT940 file and exports a valid camt.053.001.02 statement for free, entirely in your browser. No signup and no upload.

Is my bank statement uploaded to a server?

No. The MT940 file is read, parsed and converted entirely in your browser using JavaScript. No statement data is ever sent to or stored on a server.

What are the main MT940 tags?

:20: transaction reference, :25: account, :28C: statement number, :60F: opening balance, :61: transaction line, :86: transaction details, :62F: closing balance.

How does an MT940 :61: line encode a debit or a credit?

By a debit/credit mark after the dates: C for credit, D for debit. Reversals are marked RC (reversed credit) and RD (reversed debit), which flip the economic direction of the amount.

How do I know an MT940 file is correct?

MT940 has no schema, so the core check is arithmetic: the opening balance plus the net of all transactions must equal the closing balance. If it does not reconcile, a line has been lost, duplicated or mis-signed.

Why is MT940 being replaced by camt.053?

MT940 is a rigid text format with limited structured data. camt.053 is XML, validated against an official ISO 20022 schema, and carries far richer, unambiguous data — which is why the global ISO 20022 migration is moving statements from MT940 to camt.053.

Does the converter handle files with several statements?

Yes. The parser reads every statement in the file; the viewer shows each one, and the camt.053 export covers the first statement — the common one-file-one-account migration case.