Guides · File formats

MT940 format explained: every field, with a real example

Updated November 8, 2026 · 9 min read · By the Utilly team

An MT940 file is a bank statement written as tagged text lines: :20:, :25:, :60F:, :61:, :86:, :62F:. This page explains every field you'll find in one, takes a real statement line apart character by character, and shows how the balances prove the file is complete. The examples come from Utilly's fictional MT940 sample (a Dutch business account in euros), so you can open the same file and follow along.

Short answer: MT940 is the SWIFT customer statement message. Each statement starts with :20: (a reference), :25: (the account), :28C: (statement number) and :60F: (opening balance). Then come pairs of :61: (one booking: date, credit or debit, amount, type code, references) and :86: (the description, up to 6 lines of 65 characters). It ends with :62F: (closing balance) and optionally :64: and :65: (available balances). Dates are YYMMDD, amounts use a decimal comma and are never signed: C or D says which way the money went. Opening balance plus the bookings must equal the closing balance.

Open a real MT940 file

Utilly's fictional MT940 sample has two statements and 13 bookings, including card payments, SEPA direct debits and a reversed direct debit (RD). Download it to read the raw fields, or open it in the converter to see every booking as a spreadsheet row with the balance check done.

1. What an MT940 file looks like

This is the start of the sample file. Every field starts at the beginning of a line with a tag between colons; a field's text can run on to the next lines until the next tag.

:20:EX2610A
:25:NL00EXMP0123456789EUR
:28C:00010/1
:60F:C261001EUR8412,65
:61:261001D1850,00NTRFNONREF//EX26100100001
:86:/TRTP/SEPA OVERBOEKING/IBAN/NL00EXMP0000000011/BIC/EXMPNL2A/NAME/
Voorbeeld Vastgoed BV/REMI/Huur kantoor oktober 2026/EREF/NOTPROV
IDED
:61:2610051005D64,35NMSCNONREF//EX26100500003
:86:BEA Betaalpas Kantoorhandel Centrum Amsterdam 05.10.26
…
:62F:C261015EUR9480,61
-

A line with a single - ends one statement; the next one starts again with :20:. A file downloaded from online banking is usually just these lines, often named .sta, .940, .mt940 or .txt. A file that came over the SWIFT network itself is wrapped in an envelope: {1:F01…}{2:O940…}{4: before the first field and -} after the last one.

2. Every MT940 field

The format column uses SWIFT's notation: 16x means up to 16 characters, 6!n exactly 6 digits, 3!a exactly 3 letters, 15d an amount of up to 15 characters with a decimal comma, and 6*65x up to 6 lines of 65 characters.

TagNameRequired?FormatIn the sample
:20:Transaction reference number: the bank's reference for this statement messageYes16xEX2610A
:21:Related reference: points to a request or earlier message; rare in downloaded statementsNo16xNot used
:25:Account identification: the account number or IBAN, sometimes with the currency or a bank code addedYes35xNL00EXMP0123456789EUR
:28C:Statement number / sequence number: which statement, and which page of it when one statement is split over several messagesYes5n[/5n]00010/1 (statement 10, page 1)
:60F: / :60M:Opening balance. F = first opening balance of the statement; M = intermediate, the carried-over balance on page 2 and laterYes1!a6!n3!a15d: C/D, date, currency, amountC261001EUR8412,65 = credit balance of EUR 8,412.65 on Oct 1, 2026
:61:Statement line: one booking. Repeats once per transaction; a statement with no bookings has noneNo6!n[4!n]2a[1!a]15d1!a3!c16x[//16x] + optional [34x] line261001D1850,00NTRFNONREF//EX26100100001 (see below)
:86:Information to account owner: the description of the booking just above it. A :86: after the last balance describes the whole statement insteadNo6*65xCounterparty, IBAN, payment description, end-to-end reference (see below)
:62F: / :62M:Closing balance (booked funds). F = final closing balance; M = intermediate, when the statement continues in the next messageYes1!a6!n3!a15dC261015EUR9480,61 = EUR 9,480.61 on Oct 15, 2026
:64:Closing available balance: what you could actually use, after funds the bank hasn't released yetNo1!a6!n3!a15dNot used
:65:Forward available balance: the available balance expected on a future date. Can repeatNo1!a6!n3!a15dNot used

Two things trip people up. First, amounts are never negative: D1850,00 is a debit of 1,850.00, and a debit balance (an overdrawn account) is written D in :60F: or :62F:. Second, the decimal separator is always a comma, even from a US bank, and there is no thousands separator: 8412,65 is 8,412.65.

3. Field :61: piece by piece

The statement line packs everything about one booking into a single run of characters with no separators until the references. Taking apart the third booking in the sample:

:61:2610051005D64,35NMSCNONREF//EX26100500003
PartFormatValueMeaning
Value date6!n261005October 5, 2026 (YYMMDD): when the money counts for interest
Entry date[4!n]1005Booking date, MMDD, optional. The year comes from the value date; at New Year it can be the year before or after
Debit/credit mark2aDC credit (money in), D debit (money out), RC reversal of a credit (money out), RD reversal of a debit (money in)
Funds code[1!a](none)Optional: the third letter of the currency code, e.g. R for EUR, when the bank includes it
Amount15d64,3564.35, unsigned; the mark says the direction
Transaction type1!a3!cNMSCN + a 3-character code; MSC = miscellaneous (here a debit card payment). See type codes
Reference for the account owner16xNONREFYour reference, or NONREF when there isn't one
Bank's reference[//16x]//EX26100500003The bank's own reference, after two slashes
Supplementary details[34x](none)Optional extra line under :61:, for example the original amount or a short text

The reversal marks matter for the balance. The last booking of the sample's second statement is a returned direct debit:

:61:261030RD129,99NDDTNONREF//EX26103000013

RD means the earlier 129.99 energy direct debit (:61:261007D129,99NDDT…) was reversed, so 129.99 comes back into the account. Read RD as a debit and the statement won't add up.

4. Field :86: the description

:86: is free text of up to 6 lines of 65 characters, and the lines break at exactly 65 characters, in the middle of a word if need be (NOTPROV / IDED in the sample). Join the lines with nothing in between before you read it. Banks fill it in one of a few ways:

StyleWhat it looks likeWhere you'll see it
Slash-coded (Dutch SEPA)/TRTP/SEPA OVERBOEKING/IBAN/…/BIC/…/NAME/Voorbeeld Vastgoed BV/REMI/Huur kantoor oktober 2026/EREF/NOTPROVIDED
TRTP transaction type, NAME counterparty, REMI payment description, EREF end-to-end reference, CSID creditor ID and MARF mandate reference on direct debits
Dutch banks, and others using the same structured layout
Question-mark subfields (German)A 3-digit business transaction code, then ?00 booking text, ?20–?29 purpose (often with EREF+, MREF+, SVWZ+ for the actual description), ?30 bank code or BIC, ?31 account or IBAN, ?32–?33 counterparty nameGerman and Austrian banks
Keyword textNAAM: … OMSCHRIJVING: … or similar labelsSome Dutch banks' older exports
Plain textBEA Betaalpas Kantoorhandel Centrum Amsterdam 05.10.26Card payments, bank fees, many smaller banks

Which style you get is up to the bank, not the MT940 standard. That's why the same "MT940" from two banks can look so different in a spreadsheet, and why a converter has to know the common layouts to pull out a clean payee and description.

5. Transaction type codes (NTRF, NDDT, NCHG…)

The four characters after the amount in :61: say what kind of booking it is. The first letter is N for most bank-statement bookings, S followed by a SWIFT message type for a SWIFT transfer (for example S103), or F for a first advice. The common N codes:

CodeMeaningCodeMeaning
NTRFTransfer (credit transfer in or out)NDDTDirect debit
NCHGCharges (bank fees)NCOMCommission
NINTInterestNSTOStanding order
NCHKChequeNRTIReturned item
NFEXForeign exchangeNDIVDividend
NCOLCollectionNLBXLockbox
NCMICash management itemNMSCMiscellaneous (card payments and anything else)

The code describes the booking; it never changes the sign. Money in or out always comes from the C/D/RC/RD mark. Banks also use a few codes of their own, so treat this as the usual set, not a closed list. (US BAI2 files use numeric type codes instead; those are on the BAI2 codes list.)

6. Balances and the balance check

An MT940 proves itself: the opening balance plus the credits minus the debits must equal the closing balance. For the sample's two statements:

:60F: opening balance, Oct 18,412.65
+ credits (2 bookings: 2,420.00 + 1,180.50)3,600.50
− debits (5 bookings: 1,850.00 + 64.35 + 129.99 + 450.00 + 38.20)2,532.54
:62F: closing balance, Oct 159,480.61
:60F: opening balance of statement 2, Oct 169,480.61
+ credits, including the RD reversal (3,150.00 + 875.00 + 129.99)4,154.99
− debits (2,210.00 + 15.75 + 312.40)2,538.15
:62F: closing balance, Oct 3111,097.45

Each statement's closing balance should also be the next statement's opening balance, as 9,480.61 is here. When a statement doesn't tie, the usual causes are a reversal (RC/RD) read the wrong way round, a statement split over several messages where only some pages were exported (look for :60M:/:62M: and the page number in :28C:), or a file cut off before its last :62F:. :64: and :65: are available balances; they aren't part of this check.

7. MT940 vs MT942, MT950 and camt.053

FormatWhat it isHow it differs from MT940
MT940Customer statement: booked transactions for a day or period, with opening and closing balances—
MT942Interim transaction report: intraday bookings so farNo opening or closing booked balance (:60F:/:62F:); has :34F: floor limit, :13D: date and time, :90D:/:90C: counts and totals of debits and credits. Can't be balance-checked the same way
MT950Statement message between banksSame balance and :61: fields, but no :86: descriptions
camt.053ISO 20022 bank-to-customer statement, in XMLSame idea, richer data: tagged XML instead of text lines, no 65-character limit, separate fields for counterparty and remittance. Many banks now offer it next to or instead of MT940; its elements are explained on camt.053 format, and CAMT.053 to CSV converts it

8. How to open or convert an MT940 file

An MT940 is plain text, so any text editor opens it, which is fine for reading a few lines. Excel doesn't understand the format: opening it puts each tag on its own row in one column. Accounting systems import it in their own way; in SAP, for example, MT940 comes in through the electronic bank statement import (FF_5), with the field mapping set up in your bank-statement configuration.

To get a spreadsheet, MT940 to CSV turns every :61:/:86: pair into a row with the date (the entry date when there is one), the counterparty and description pulled out of :86:, a reference and a signed amount (C and RD positive, D and RC negative). It checks every statement from :60F: to :62F: as above and adds a running balance only when they all tie. The sample's first booking comes out as:

Date,Description,Reference,Amount,Balance
2026-10-01,Voorbeeld Vastgoed BV - Huur kantoor oktober 2026,EX26100100001,-1850.00,6562.65

The same preview also downloads OFX, QuickBooks .QBO or .IIF and Quicken .QIF, keeping the euro currency. Utilly reads MT940 files; it doesn't write MT940, and it doesn't read MT942 interim reports.

Sources, checked November 8, 2026: SWIFT's MT940 Customer Statement Message field specifications (category 9 standards) as republished in bank MT940 implementation guides (ING, ABN AMRO, Rabobank and Deutsche Bank formats for :86:), and the German DFÜ agreement's :86: subfield layout. Field names and formats are as published; the explanations and the sample file are ours.

FAQ

What is the MT940 format?

MT940 is the SWIFT customer statement message: a bank statement written as tagged text lines. Each statement has :20: (reference), :25: (account), :28C: (statement number), :60F: (opening balance), then a :61: line for each booking with its :86: description, and :62F: (closing balance), optionally followed by :64: and :65: available balances. Banks offer it as a download, often as a .sta, .940 or .txt file.

What does field 61 mean in MT940?

Field :61: is the statement line, one per booking. It packs the value date (YYMMDD), an optional entry date (MMDD), the mark C, D, RC or RD, an optional funds code, the unsigned amount with a decimal comma, a transaction type such as NTRF or NDDT, your reference (or NONREF) and, after two slashes, the bank's reference. An optional extra line holds supplementary details.

What does field 86 mean in MT940?

Field :86: is information to the account owner: the description of the booking in the :61: line above it, up to 6 lines of 65 characters. Banks structure it differently: Dutch banks use slash codes such as /NAME/ and /REMI/, German banks use ?20 to ?33 subfields, and many banks just write plain text. A :86: after the closing balance describes the whole statement.

What is the difference between 60F and 60M?

60F is the first opening balance of a statement. 60M is an intermediate opening balance, used when one statement is split over several messages: page 2 and later start with 60M, the balance carried over from the previous page. Closing balances work the same way: 62M on pages that continue, 62F on the last one.

What do C, D, RC and RD mean in MT940?

They are the debit/credit mark in field :61:. C is a credit (money in) and D a debit (money out). RC is a reversal of a credit, so money goes out, and RD is a reversal of a debit, such as a returned direct debit, so money comes back in. Amounts in MT940 are never signed, so this mark is the only thing that gives the direction.

What is the difference between MT940 and MT942?

MT940 is the end-of-day or period statement with booked opening and closing balances, so it can be checked from :60F: to :62F:. MT942 is an interim, usually intraday, report of bookings so far: it has no opening or closing booked balance, and instead carries a floor limit (:34F:), a date and time (:13D:) and debit and credit totals (:90D:, :90C:).

How do I convert an MT940 file to Excel?

Excel can't read MT940 directly; it puts each tag on its own row. Convert it to CSV first. An MT940 to CSV converter turns each :61: and :86: pair into a row with the date, payee and description, reference and signed amount, checks each statement balance, and gives a CSV that opens in Excel. Utilly's does this in the browser preview and also downloads OFX, QBO, IIF or QIF.

Related tools

  • Bank reconciliation checker: compare a bank statement to your books and list missing, duplicate and mismatched transactions.
  • Receipt to CSV: turn PDF or photo receipts and invoices into CSV, Excel, or QuickBooks and Xero bill imports.