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 typePlain text (SWIFT FIN)
File extension.940 / .sta / .txt
Standard bodySWIFT
Character setSWIFT "X" charset
SuccessorISO 20022 CAMT.053
EncodingASCII, 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 / elementFieldRequiredDescription
:20:Transaction Reference NumberMandatoryReference for the statement message. NONREF is used when no reference is available.
:21:Related ReferenceOptionalReference to a related message or request, when applicable.
:25:Account IdentificationMandatoryThe account the statement is for — typically the IBAN, optionally with currency.
:28C:Statement Number / SequenceMandatoryStatement number, optionally followed by a sequence number for multi-message statements.
:60F:Opening Balance (first)MandatoryBooked opening balance: D/C mark, date (YYMMDD), currency, amount. :60M: marks an intermediate opening balance.
:61:Statement LineMandatoryOne transaction: value date, entry date, debit/credit mark, amount, transaction type code (e.g. NTRF), and references.
:86:Information to Account OwnerOptionalFree-text or structured narrative for the preceding :61: line — counterparty, IBAN, remittance info. Max 6 lines × 65 chars.
:62F:Closing Balance (final)MandatoryBooked closing balance, same format as :60F:. Must equal opening balance plus the sum of all statement lines.
:64:Closing Available BalanceOptionalFunds actually available to the account holder at closing.
:65:Forward Available BalanceOptionalAvailable 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,00

A 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:

Exact (Online & Globe)Imports MT940 as a standard bank statement file.
e-Boekhouden.nlAccepts MT940 uploads for bank reconciliation.
SnelStartNative MT940 import.
TwinfieldImports MT940 (and structured MT940 for better matching).
AFASBank import via MT940.
MoneybirdSupports MT940 import alongside CSV.
King / Reeleezee / YukiCommon NL packages that ingest MT940.

QuickBooks and Xero do not import MT940 — they expect OFX/QBO or CSV. Convert to CSV for those tools instead.

Related format

CAMT.053CAMT.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 statement

Other formats: CAMT.053

MT940 format explained | BankFormats