MT940 format explained: every field, with a real example
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.
| Tag | Name | Required? | Format | In the sample |
|---|---|---|---|---|
:20: | Transaction reference number: the bank's reference for this statement message | Yes | 16x | EX2610A |
:21: | Related reference: points to a request or earlier message; rare in downloaded statements | No | 16x | Not used |
:25: | Account identification: the account number or IBAN, sometimes with the currency or a bank code added | Yes | 35x | NL00EXMP0123456789EUR |
:28C: | Statement number / sequence number: which statement, and which page of it when one statement is split over several messages | Yes | 5n[/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 later | Yes | 1!a6!n3!a15d: C/D, date, currency, amount | C261001EUR8412,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 none | No | 6!n[4!n]2a[1!a]15d1!a3!c16x[//16x] + optional [34x] line | 261001D1850,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 instead | No | 6*65x | Counterparty, 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 message | Yes | 1!a6!n3!a15d | C261015EUR9480,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 yet | No | 1!a6!n3!a15d | Not used |
:65: | Forward available balance: the available balance expected on a future date. Can repeat | No | 1!a6!n3!a15d | Not 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
| Part | Format | Value | Meaning |
|---|---|---|---|
| Value date | 6!n | 261005 | October 5, 2026 (YYMMDD): when the money counts for interest |
| Entry date | [4!n] | 1005 | Booking date, MMDD, optional. The year comes from the value date; at New Year it can be the year before or after |
| Debit/credit mark | 2a | D | C 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 |
| Amount | 15d | 64,35 | 64.35, unsigned; the mark says the direction |
| Transaction type | 1!a3!c | NMSC | N + a 3-character code; MSC = miscellaneous (here a debit card payment). See type codes |
| Reference for the account owner | 16x | NONREF | Your reference, or NONREF when there isn't one |
| Bank's reference | [//16x] | //EX26100500003 | The 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:
| Style | What it looks like | Where you'll see it |
|---|---|---|
| Slash-coded (Dutch SEPA) | /TRTP/SEPA OVERBOEKING/IBAN/…/BIC/…/NAME/Voorbeeld Vastgoed BV/REMI/Huur kantoor oktober 2026/EREF/NOTPROVIDEDTRTP 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 name | German and Austrian banks |
| Keyword text | NAAM: … OMSCHRIJVING: … or similar labels | Some Dutch banks' older exports |
| Plain text | BEA Betaalpas Kantoorhandel Centrum Amsterdam 05.10.26 | Card 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:
| Code | Meaning | Code | Meaning |
|---|---|---|---|
NTRF | Transfer (credit transfer in or out) | NDDT | Direct debit |
NCHG | Charges (bank fees) | NCOM | Commission |
NINT | Interest | NSTO | Standing order |
NCHK | Cheque | NRTI | Returned item |
NFEX | Foreign exchange | NDIV | Dividend |
NCOL | Collection | NLBX | Lockbox |
NCMI | Cash management item | NMSC | Miscellaneous (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 1 | 8,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 15 | 9,480.61 |
:60F: opening balance of statement 2, Oct 16 | 9,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 31 | 11,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
| Format | What it is | How it differs from MT940 |
|---|---|---|
| MT940 | Customer statement: booked transactions for a day or period, with opening and closing balances | — |
| MT942 | Interim transaction report: intraday bookings so far | No 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 |
| MT950 | Statement message between banks | Same balance and :61: fields, but no :86: descriptions |
| camt.053 | ISO 20022 bank-to-customer statement, in XML | Same 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 guides
- camt.053 format explained: every XML element, with a real example
- QIF file format explained: every field, with a real example
- BAI2 codes list: every type code, what it means, credit or debit
- How to open an OFX, QFX or QIF file (Excel, Quicken, text)
- Free sample OFX file (bank and credit card), explained
- QBO vs IIF vs QIF: which file QuickBooks and Quicken actually need
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.