MT940 format explained
A plain-text SWIFT message that carries a single bank account statement — the de-facto import format for European bookkeeping software.
SWIFT MT940 Customer Statement Message
| Format type | Plain text (SWIFT FIN) |
|---|---|
| File extension | .940 / .sta / .txt |
| Standard body | SWIFT |
| Character set | SWIFT "X" charset |
| Successor | ISO 20022 CAMT.053 |
| Encoding | ASCII, CRLF line breaks |
What is MT940?
MT940 is a SWIFT message type that carries one customer account statement as structured plain text. Banks have used it for decades to deliver end-of-day statements to account holders, and across Europe it became the lingua franca that bookkeeping software reads to reconcile a bank account.
The file is human-readable but rigidly structured: a small set of numbered tags (":20:", ":25:", ":61:", ":62F:") in a fixed order. Because the structure is so stable, almost every accounting package in the Netherlands and Germany can import an MT940 file and match its transactions automatically.
It is not an export your bank always exposes directly — many banks only offer PDF statements to retail and small-business customers. That is the gap a PDF-to-MT940 converter fills: it rebuilds a valid MT940 file from the statement you already have.
Where it comes from
MT940 belongs to the SWIFT MT (Message Type) family, the FIN messaging standard introduced in the 1970s. The "9" category covers cash management and customer status; 940 is specifically the Customer Statement Message.
ISO 20022 — and its CAMT.053 XML statement — is the official successor, and banks are migrating to it under SEPA and PSD2. But MT940 remains entrenched: the installed base of bookkeeping software that reads it is enormous, so it will be a supported import format for years yet.
When to use it
Use MT940 when your accounting package lists it as a bank import option and your bank only gave you a PDF. It carries the statement-level balances that let the software verify nothing is missing.
MT940 structure & fields
An MT940 file is a sequence of tagged fields. Each tag is wrapped in colons (e.g. ":20:"). A statement opens with header tags, repeats a :61:/:86: pair for every transaction, and closes with a booked balance.
| Tag / element | Field | Required | Description |
|---|---|---|---|
| :20: | Transaction Reference Number | Mandatory | Reference for the statement message. NONREF is used when no reference is available. |
| :21: | Related Reference | Optional | Reference to a related message or request, when applicable. |
| :25: | Account Identification | Mandatory | The account the statement is for — typically the IBAN, optionally with currency. |
| :28C: | Statement Number / Sequence | Mandatory | Statement number, optionally followed by a sequence number for multi-message statements. |
| :60F: | Opening Balance (first) | Mandatory | Booked opening balance: D/C mark, date (YYMMDD), currency, amount. :60M: marks an intermediate opening balance. |
| :61: | Statement Line | Mandatory | One transaction: value date, entry date, debit/credit mark, amount, transaction type code (e.g. NTRF), and references. |
| :86: | Information to Account Owner | Optional | Free-text or structured narrative for the preceding :61: line — counterparty, IBAN, remittance info. Max 6 lines × 65 chars. |
| :62F: | Closing Balance (final) | Mandatory | Booked closing balance, same format as :60F:. Must equal opening balance plus the sum of all statement lines. |
| :64: | Closing Available Balance | Optional | Funds actually available to the account holder at closing. |
| :65: | Forward Available Balance | Optional | Available balance for a future value date. |
Example MT940 file
:20:STATEMENT001
:25:NL00INGB0001234567EUR
:28C:00001/001
:60F:C260601EUR1500,00
:61:260602D45,00NTRFNONREF//REF123
:86:/IBAN/NL11RABO0123456789/NAME/Acme Supplies B.V./REMI/Invoice 2026-0042
:61:260603C1200,00NTRFNONREF//SALARY
:86:/IBAN/NL22ABNA0987654321/NAME/Payroll/REMI/June salary
:62F:C260603EUR2655,00A minimal two-transaction MT940 statement. Note the comma decimal separator, the C/D credit-debit marks, and the structured :86: subfields (/IBAN/ /NAME/ /REMI/) that drive auto-matching in bookkeeping software.
Common MT940 pitfalls
The balance equation must tie
Importers reject an MT940 file if the closing balance (:62F:) does not equal the opening balance (:60F:) plus the sum of all :61: lines. A converter has to extract or derive the opening and closing balances correctly, not just the transactions.
Debit/credit marks, not signs
MT940 has no minus sign. Direction is encoded as a "D" or "C" mark before the amount on every :61: line and balance. Getting this wrong silently flips income and expenses.
Comma decimals and the SWIFT charset
Amounts use a comma as the decimal separator (1500,00) and the text must stay within the SWIFT "X" character set — diacritics are transliterated and "&" becomes "+". Raw UTF-8 narrative can break the import.
Structured :86: improves matching
A bare narrative still imports, but populating the /IBAN/, /NAME/ and /REMI/ subfields of :86: lets the software auto-match counterparties and invoices instead of leaving every line for manual coding.
Which software imports MT940
MT940 is accepted by most European bookkeeping and ERP packages, including:
QuickBooks and Xero do not import MT940 — they expect OFX/QBO or CSV. Convert to CSV for those tools instead.
Related format
CAMT.053 — CAMT.053 is the modern ISO 20022 XML successor to MT940.
MT940 — frequently asked questions
What is an MT940 file?
It is a SWIFT-format text file containing one bank account statement — header tags, one tagged line per transaction, and opening/closing balances — that European accounting software can import directly.
How do I open an MT940 file?
It is plain text, so any text editor opens it. But it is meant to be imported into bookkeeping software (Exact, SnelStart, Twinfield, e-Boekhouden) rather than read by hand. To work with the data in a spreadsheet, convert it to Excel or CSV.
What is the difference between MT940 and CAMT.053?
MT940 is the older SWIFT plain-text format; CAMT.053 is the ISO 20022 XML successor that carries the same statement with richer structured data. Most NL packages accept both — CAMT.053 generally gives better automatic matching.
Can I create an MT940 file from a PDF bank statement?
A PDF statement contains everything an MT940 file needs, so the conversion is possible in principle. BankFormats currently exports Excel and CSV rather than MT940 — many bookkeeping packages accept a CSV bank import as an alternative. If your software only accepts MT940, you need a converter that writes the SWIFT format directly.
Convert your PDF bank statement
BankFormats turns PDF bank statements into clean Excel and CSV — every transaction extracted, balances that tie out.
Convert a statementOther formats: CAMT.053