MT940 to CSV Converter

Convert SWIFT MT940 bank statements to CSV. Widely used by European banks (Deutsche Bank, ING, Raiffeisen, ABN AMRO). Runs in your browser.

1.0.0
Version
Auth
Batch

About MT940 to CSV Converter

MT940 is the SWIFT standard for end-of-day bank statements that almost every European bank issues — Deutsche Bank, ING, Commerzbank, Raiffeisen, ABN AMRO, BNP Paribas, Banco Santander. It's also one of the least pleasant formats to read: line-oriented with cryptic tags (:20:, :25:, :61:, :86:), positional date and amount fields, and an :86: description block that crams counterparty, IBAN, BIC, reference and free-text memo into one newline-separated record. Reading a multi-statement file in a text editor is impossible; most online converters require uploading bank-statement data to a third party, which is a non-starter for finance teams.

This MT940 to CSV converter parses the file entirely in your browser. The header tags (:20: transaction reference, :25: account, :28: statement sequence) and balance tags (:60F: opening balance, :62F: closing balance, :64: available balance) come through as columns. Each transaction (:61:) decodes into date, amount, direction (credit/debit), bank reference, customer reference, transaction type, with the paired :86: extended description further decoded into counterparty name, IBAN, BIC and free-text memo where the bank uses standard subfield tagging. Multi- statement files (a typical end-of-day export concatenates a week of dailies) are split into one row per transaction in the output CSV. Nothing uploads, no API call — the bytes of your bank statement stay on your machine.

Use it to import a Deutsche Bank or ING MT940 into Excel for month-end reconciliation, feed transactions into an ERP that needs CSV, audit a bank statement against your own ledger, prep a bookkeeping export when your tax software doesn't natively read MT940, or just open a .sta file someone emailed without spinning up specialist software.

MT940 to CSV Converter Use Cases

  • Finance teams importing Deutsche Bank or ING MT940 into Excel for month-end reconciliation
  • ERP integrations that need CSV input rather than the SWIFT MT940 wire format
  • Bookkeepers auditing a bank-issued .sta file against a parallel ledger
  • Tax-software users whose package reads CSV but not MT940 natively
  • Treasury operations bridging European banks (MT940) into a US-style CSV pipeline
  • Privacy-minded users refusing to upload bank statements to a third-party SaaS
  • Quick-open of a .sta file a banker emailed without specialist desktop software

MT940 to CSV Converter Features

  • Parses standard SWIFT MT940 messages — :20:, :25:, :28:, :60F:, :61:, :86:, :62F:, :64: fields all handled
  • Per-transaction columns — date, amount, direction (credit/debit), bank reference, customer reference, transaction type
  • Extended :86: description block decoded into counterparty name, IBAN, BIC and free-text memo where the bank uses standard subfields
  • Multi-statement files supported — a daily-end file with a week of statements lands as one CSV with per-transaction rows
  • Excel-friendly CSV output with UTF-8 BOM so non-ASCII counterparty names and umlauts render correctly on double-click
  • Pure browser parsing — sensitive bank-statement bytes never leave your machine, no upload, no signup
  • Works on .sta, .mt940, .940 and .txt files from Deutsche Bank, ING, Commerzbank, Raiffeisen, ABN AMRO, BNP Paribas, Santander

How to Use MT940 to CSV Converter

Export MT940 from your bank portal

Most European bank portals offer a 'MT940' or 'SWIFT' export option in their account-statements section. The file usually has a .sta, .mt940 or .940 extension. Daily, weekly or monthly granularity all work.

Drop the file on the page

Drag-and-drop or click to select the MT940 file. There is no upload — the file is read with FileReader and parsed as JavaScript in the page. Open DevTools → Network if you'd like to verify nothing leaves your browser.

Click Convert

The parser walks the line-oriented format, splits multi-statement files into individual statements, decodes transaction tags, and where the bank uses standard :86: subfields (?20, ?21, ?32, ?33 for counterparty IBAN, name, etc.) pulls those into separate columns.

Review the preview

Preview shows the first 10 transactions with statement metadata at the top. Confirm dates and amounts look right for a few rows before downloading — a misread date format will be obvious here.

Download the CSV

Click Download to save the CSV. The file is UTF-8 BOM encoded so Excel opens it without an import wizard and umlauts and accented names render correctly. Import into your spreadsheet, ERP or accounting tool as usual.

MT940 to CSV Converter FAQ

No. The MT940 file is read with FileReader and parsed entirely in JavaScript on the page. There is no XHR, no fetch, no analytics referencing the file's contents. Bank-statement bytes — including IBANs, account holder names and transaction memos — stay on your machine. Open DevTools → Network and watch nothing fire when you click Convert.

Any bank that issues SWIFT MT940 — which is essentially every European bank with a corporate or premium banking tier. Confirmed working with Deutsche Bank, Commerzbank, ING (Germany and Netherlands), Raiffeisen, ABN AMRO, Rabobank, BNP Paribas, Société Générale, Banco Santander, Erste Bank and Postbank. The format is bank-agnostic by design; per-bank quirks usually live inside :86: subfield structure and are decoded where the bank uses the standard tagging.

Where the bank uses standard SWIFT subfield tagging in :86: (the ?20…?29 free-text lines, ?30 BIC, ?31 IBAN, ?32 name line 1, ?33 name line 2, ?60 SEPA reference), the parser pulls these into separate counterparty-name, IBAN, BIC and reference columns. Where a bank packs everything into free text without subfield tags (some German Sparkassen do this), the whole :86: block is kept as one description column.

Yes. A typical end-of-week or end-of-month export concatenates several daily statements into one MT940 file, each starting with a :20: tag. The parser splits on statement boundaries and produces one CSV row per transaction across all the contained statements, with the originating statement's reference and balance available per row.

Both are good tools but require an upload to their servers. This parser runs in your browser so the file's bytes never transit the network, which matters for compliance-sensitive treasury and bookkeeping workflows. It also surfaces the per-bank :86: subfield variations more explicitly so you don't end up with 'description' columns that need re-parsing in Excel.

No hard server limit (parsing is local), but in practice browser performance is fine up to a few thousand transactions per file. Very large multi-month archives may pause briefly during parsing — split them by month for the smoothest experience.

Yes. The output uses a UTF-8 BOM, so Excel detects the encoding on double-click and renders non-ASCII characters (German umlauts, French accents, Polish letters) correctly. Dates are ISO YYYY-MM-DD, amounts use a decimal point regardless of the bank's locale convention, and a sign on the amount column tells credit from debit.

Zero uploads. MT940 statements parsed entirely in your browser.

Upload MT940 file

.mt940, .sta, .940, or plain .txt

MT940 to CSV Converter Tutorial

What is MT940?

MT940 is a SWIFT message format for customer account statements, widely used by European banks for corporate and accounting exchanges. Unlike CSV, it's a tag-based format like:

:20:STMT-REF-001
:25:/DE12345678901234567890
:28C:1/1
:60F:C240101EUR12345,67
:61:2401020102DR500,00NTRFNONREF
:86:Zahlung an Muller GmbH
:62F:C240102EUR11845,67

Tag Meanings

  • :20: — Transaction reference
  • :25: — Account identification
  • :28C: — Statement/sequence number
  • :60F: — Opening balance
  • :61: — Statement line (one per transaction)
  • :86: — Information to account owner (transaction details)
  • :62F: — Closing balance

Banks That Export MT940

  • Deutsche Bank, Commerzbank (DE)
  • ING, Rabobank, ABN AMRO (NL)
  • Raiffeisen, Erste, BAWAG (AT)
  • BNP Paribas, Société Générale (FR)
  • UBS, Credit Suisse / UBS (CH)
  • Santander, BBVA (ES)
  • SWIFT-connected business banking worldwide

Why Convert?

MT940 is machine-readable but unfriendly for humans. Converting to CSV lets you:

  • Import into Excel/Google Sheets for analysis
  • Feed into accounting software that doesn't accept MT940
  • Combine multiple months of statements for reconciliation
  • Search across transactions with grep/awk

Parsing Logic

This tool handles the core MT940 fields. The :86: description tag can contain structured sub-fields (?20..?29 for remittance info, ?30/?31 for bank info, ?32/?33 for counterparty name) — we extract those when present.