Skip to content
LegacyFile
← Learn

What Is an MT940 File? SWIFT Bank Statements Explained

By LegacyFile ·

Your bank's portal offered a statement download called something like statement_0715.sta or EXPORT.940, you opened it, and got lines like :61:2607140714D1250,00NTRFINV-20260701//B4G7-0955. That's an MT940 file — the format banks around the world have used for end-of-day statements since the 1980s — and once you know how the tags fit together, it's entirely readable. This article explains what an MT940 file is, what every tag means, and the fastest way to get one into Excel.

What an MT940 file is

MT940 is a SWIFT message type — "MT" for message type, "9" for the cash-management category, "40" for customer statement. It's the standardized way a bank tells an account holder what happened in their account yesterday: opening balance, every transaction, and closing balance, one statement per day. It's the international sibling of BAI2, the format American banks use for the same job — if your bank is in Europe or Asia, you almost certainly get MT940 rather than BAI2.

An MT940 file is plain text. Every field starts with a tag — a colon, a number, a colon — and the file's whole meaning hangs off those tags. Banks deliver it with all sorts of extensions: .sta, .mt940, .940, .fin, or plain .txt.

Who sends and receives MT940 files

Banks generate them; businesses import them. Accounting and ERP packages across Europe — SAP, Exact, DATEV, Twinfield, Unit4 — ingest MT940 natively for bank reconciliation, and treasury systems consume it for multi-bank cash visibility. If your software doesn't speak MT940, the practical path is a MT940 to CSV converter that turns the statement into a spreadsheet.

What's inside an MT940 file

Here's a tiny but complete statement:

:20:STMT-2026-0715-A
:25:NL91ABNA0417164300
:28C:00135/001
:60F:C260713EUR18452,90
:61:2607140714D1250,00NTRFINV-20260701//B4G7-0955
:86:SEPA OVERBOEKING NAAM ACME OFFICE SUPPLIES BV
KENMERK INV-20260701
:62F:C260714EUR17202,90

Reading it tag by tag:

  • :20: — transaction reference. The statement's own reference number. A new :20: also marks where one statement ends and the next begins in multi-day files.
  • :25: — account identification. Whose account this is, usually an IBAN.
  • :28C: — statement number. Sequential statement and page number (00135/001).
  • :60F: — opening balance. Reads as: Credit balance, dated 260713 (July 13, 2026 — YYMMDD, no century), in EUR, of 18452,90. Yes, that comma is the decimal point — SWIFT uses the continental convention.
  • :61: — statement line. One transaction, packed tight: value date 260714, entry date 0714 (MMDD), Debit, amount 1250,00, transaction type NTRF (transfer), customer reference INV-20260701, and after the //, the bank's own reference.
  • :86: — information to account owner. The human-readable description, attached to the :61: above it, often spanning several lines.
  • :62F: — closing balance. Same shape as the opening balance; the end-of-day position. Some files add :64: (closing available) and :65: (forward available) balances after it.

Two more marks worth knowing on :61: lines: RD and RC are reversals — an RD reverses an earlier debit (money back in), an RC reverses a credit (money back out).

The :86: field: same tag, different dialects

The single messiest thing about MT940 is that SWIFT never standardized what goes inside :86:. German banks fill it with ?20/?21 structured subfields, Dutch banks write /TRTP/ and /IBAN/ blocks, UK banks often just write a sentence. Two statements from two banks are both valid MT940 and look completely different at the detail level. Any tool that reads MT940 has to treat :86: as free text — which is exactly what a good converter does, keeping the whole field intact instead of guessing at one bank's dialect.

You may also find the whole statement wrapped in SWIFT network envelopes — blocks like {1:F01...}{2:O940...}{4: before the tags and -} after them. That's just transport packaging around the same statement.

How to open an MT940 file in Excel

Excel can't parse MT940 natively, and there's nothing comma-separated to fake it with — one transaction is smeared across a packed :61: line and a multi-line :86: block. The practical path is the free MT940 to CSV converter here on LegacyFile. It runs entirely in your browser — the statement never leaves your device, which is the right bar for bank data — and flattens every statement into one row per transaction with ISO dates, signed amounts, and the full details text. The step-by-step guide walks through it.

MT940 today, and what's replacing it

MT940 is slowly being retired in favor of CAMT.053, the ISO 20022 XML statement format, as banks migrate off the old SWIFT MT messages — many banks currently offer both. But MT940 exports will keep coming out of banking portals for years, and decades of archived statements aren't going anywhere. When one lands on your desk, you now know exactly what you're looking at — and the fastest way to get it into Excel.