The MT940 file format is a SWIFT standard for end-of-day bank account statements, structured as a plain-text file with numbered tags that accounting and ERP systems can read automatically. Banks generate the file after the business day closes and deliver it through a corporate banking portal or an automated SWIFT channel. Receiving software parses the tags, posts the transactions, and matches them against open invoices without manual re-keying. It has been the workhorse of automated bank reconciliation for decades.
What’s Inside an MT940 File
Every MT940 is built from a fixed sequence of numbered SWIFT tags. The tags always appear in the same order, and each one holds a specific piece of information. Reading a raw file, or figuring out why one won’t import, starts with knowing what each tag carries.
- Tag 20 is the transaction reference number the sending bank assigns to the statement itself. It functions as a tracking number for the file.
- Tag 25 holds the account identification, usually an IBAN or domestic account number, so the receiving system knows which account the statement belongs to.
- Tag 28C is the statement number and sequence number. The sequence counter tracks parts when a single statement is split across multiple messages.
- Tag 60F is the opening balance. It carries a debit or credit indicator, the date in YYMMDD format, the three-letter ISO currency code, and the amount.
- Tag 61 is the statement line, one per transaction. Each line packs in the value date, the entry date (MMDD only), a credit or debit marker, the amount, and a SWIFT transaction type code identifying what the entry represents.
- Tag 86 is an optional information block tied to the preceding Tag 61 line. It can hold up to six lines of 65 characters, often broken into labeled subfields like /EREF/ for the end-to-end reference and /REMI/ for remittance information.
- Tag 62F is the closing balance, formatted the same way as Tag 60F. The opening balance plus all debits and credits should equal this figure.
Tag 86 is where the most useful reconciliation data lives, and also where things go wrong most often. The six-by-65 ceiling is hard, so banks compress counterparty names, references, and remittance details to fit. When a payment reference gets cut off, matching that line to an internal invoice becomes a manual job.1Danske Bank. MT940 Structured Format Description
Two optional tags sometimes appear. Tag 64 reports the closing available balance, which can differ from the booked closing balance when holds or pending items exist. Tag 65 shows forward value-date balances. Not every bank populates them, but when present they help with cash forecasting.
Character Set and Number Formatting
MT940 uses the SWIFT X character set, which is tighter than ordinary text. Permitted characters are the Latin letters a–z and A–Z, digits 0–9, and a small list of specials: forward slash, hyphen, question mark, colon, parentheses, period, comma, apostrophe, plus sign, space, and carriage-return/line-feed. Nothing else is allowed.2SWIFT. Standards MT General Information
In practice, this means accented letters, currency symbols like € or £, and most ornamental punctuation in business names get stripped or substituted before the file leaves the bank. A company name with an ampersand or an umlaut will look different in the MT940 than it does on your invoices.
Amounts use a comma as the decimal separator rather than a period. That alone trips up a lot of software configured for U.S.-style number formatting, and it’s one of the first things to check when values import incorrectly.
How to Export an MT940 From Your Bank
Most corporate banking portals keep the MT940 download under a reporting, statements, or electronic documents menu. You pick the account, set a date range, and select “MT940” from a format dropdown that usually also offers CSV, PDF, and camt.053.
The interim-versus-final distinction matters. An interim statement reflects transactions booked so far during the current day and can still change. A final statement covers a completed reporting period and includes official opening and closing balances. For reconciliation, you want the final statement almost every time. Larger organizations often skip the manual download altogether and have their bank push MT940 files on a schedule through SWIFT FileAct or a host-to-host connection.
The file arrives with a .sta extension in most cases, and some banks use .txt instead. Both preserve the plain-text structure the importing software expects.3Bank Millennium. File Format Description of MT940 If you need to inspect the contents, open the file in a plain-text editor like Notepad or Notepad++. Opening it in a word processor is a reliable way to corrupt the formatting before you ever get it into your accounting system.
Importing MT940 Into Accounting and ERP Software
The whole reason the format exists is machine readability, and every major financial platform supports it. SAP’s electronic bank statement module treats MT940 as a standard import and maps the tags straight to general ledger entries. Oracle’s cash management tools work the same way. Xero, QuickBooks, and Sage all accept MT940 imports too, which puts the same automated reconciliation workflow within reach of smaller businesses.
After the import, the software matches each Tag 61 line against your internal records using amounts, dates, and references to pair bank entries with invoices and purchase orders. How well that works depends heavily on Tag 86. When your bank fills /EREF/ with the original payment reference and /REMI/ with meaningful remittance text, the auto-match rate climbs. When those fields are sparse or truncated, more transactions fall into the manual queue.
Why MT940 Imports Fail
Imports break for a short list of predictable reasons, and recognizing them cuts debugging time sharply.
- Closing balance mismatch: the opening balance plus the transaction amounts doesn’t equal the stated closing balance. The file is malformed, and you need a corrected one from the bank.
- Currency mismatch: the ISO currency code in the file doesn’t match the currency assigned to the account in your software, typically a setup error on a multi-currency account.
- Incorrect decimal separator: amounts contain the wrong separator for how the system is configured. SWIFT uses a comma, and software set up for U.S. formatting can reject the values.
- Account not found: the account identifier in Tag 25 doesn’t match any account mapped in the import configuration. The IBAN or account string has to match exactly.
- Unknown transaction type code: the identifier in Tag 61 isn’t one your software recognizes. Non-standard bank codes may need custom mappings.
- Wrong date format: Tag 61 requires YYMMDD for the value date and MMDD for the entry date. A reversed or different format fails the import.
These errors usually surface right away with a message pointing to the offending tag and line.4Oracle. MT940 File Import Error Messages The fix is almost always either a configuration adjustment on your side or a corrected file from the bank.
MT940 Only Covers Completed Periods
MT940 is end-of-day only, so you’re always working with yesterday’s data. If you need to see what’s happening in an account right now, that’s what the MT942 Interim Transaction Report is for. It uses a similar tag structure but carries only the transactions booked since the last interim report, and it doesn’t include opening or closing balances.5Goldman Sachs. Swift Reporting MT942 also carries floor-limit data and running debit and credit totals, which treasury teams use for intraday cash positioning. How often your bank generates MT942 messages depends on your service agreement.
The Shift to camt.053 Under ISO 20022
The banking industry is moving toward ISO 20022, an XML-based messaging standard. The replacement for MT940 under that standard is the camt.053 message. SWIFT had originally set a November 2025 deadline for migrating reporting messages, but that deadline was removed, and as of early 2026 no new cutoff date has been announced. Both formats coexist on the SWIFT network.
camt.053 addresses MT940’s biggest limitations. Because it uses named XML elements rather than positional character fields, each value is self-describing and easier to parse without ambiguity. The 390-character ceiling on Tag 86 disappears entirely, so structured remittance information, full counterparty details, charge breakdowns, and purpose codes can all travel in the message without truncation.
There’s no rush to migrate. Banks are adopting camt.053 at different speeds, and many will keep producing MT940 files for years. If your bank already offers camt.053 and your ERP supports it, switching now will improve auto-reconciliation rates. If not, MT940 still works exactly as it always has, and there’s no penalty for staying with it while the transition plays out.6SWIFT. Category 9 – Cash Management and Customer Status