Convert an MT940 SWIFT Statement File to CSV
An MT940 is a coded SWIFT bank statement your spreadsheet can't read. Convert it to a CSV to parse the :61: and :86: tags into clean transaction rows.
TL;DR - Quick Summary
An MT940 is the SWIFT standard for bank statements sent to corporate customers, but its coded, fixed-field text is not something a spreadsheet can read. Convert the MT940 to a CSV to parse its tagged records, one row per :61: transaction line, with the :86: narrative, amount, and value date pulled out.
What an MT940 file is
MT940 is the SWIFT Customer Statement message, the format banks send corporate customers as an end-of-day record of the account's transactions and balances. It is a plain-text file, but it follows the rigid SWIFT convention rather than a friendly layout: information is carried in tagged fields, each introduced by a colon-delimited code like :25: for the account or :61: for a transaction. That structure is built for bank-to-system exchange, and multinational and treasury operations see MT940 constantly because it is the international norm. What it is not is human-readable at a glance, which is the whole reason to turn it into a CSV.
The tags: :61: transactions and :86: details
Two tags carry the transaction data. Tag :61: is the transaction line itself: a value date in YYMMDD, an optional booking date, a debit or credit mark (C, D, or the RC and RD reversals), the amount with a comma as the decimal, a four-character SWIFT transaction type code, and a reference. Tag :86: holds the narrative that describes that transaction, and it always follows the :61: it belongs to; it often carries the payer, the payment reference, or an invoice number. Reading these by eye is painful because the fields run together inside each tag, with no columns to separate value date from amount from code.
Flattening MT940 into CSV rows
Converting an MT940 to CSV unpacks those tags into a table. Each :61: line becomes one row with its value date, debit or credit indicator, amount, SWIFT type code, and reference split into their own columns, and the :86: narrative that follows is attached to the same row as a description. The statement-level context, the account from :25: and the opening and closing balances from :60F: and :62F:, carries down so every row knows which account and period it belongs to. The result is an ordinary CSV you can sort, filter, and total, or load into a tool that does not parse SWIFT.
Reconciliation and the SWIFT type codes
The tags are what make an MT940 good for reconciliation once they are readable. Because the :86: narrative frequently carries an invoice reference, a converted CSV lets you match a receipt against the open invoice it settles rather than eyeballing a payer name. Sorting by the four-character SWIFT transaction code isolates a class of activity, incoming transfers, charges, or reversals, in one step. This is the same value a treasury system gets from ingesting MT940 directly, delivered as a spreadsheet when you need to review the day's cash or when the receiving system cannot read the raw SWIFT file.
When to convert, and privacy
Many ERPs and treasury systems import MT940 natively, so the conversion is for the cases they do not cover: a quick review of the day's activity in a spreadsheet, a reconciliation outside the treasury system, or a data migration into a tool that only accepts CSV. In each, a flat CSV is simply easier to work with than tagged SWIFT text. Because the file holds real corporate account activity, it is processed to build the CSV and then deleted automatically, with nothing retained on a server afterward. For a treasury handling several banking relationships, that keeps daily statement data usable without leaving it in a third-party tool.
How it works
- Upload the MT940: Upload the MT940 file your bank sent for the day or period.
- Parse the tags: Convert it to a CSV so each :61: line becomes a row with its :86: narrative attached.
- Read the fields: Use the split columns: value date, debit or credit, amount, SWIFT type code, and reference.
- Reconcile or load: Sort and reconcile the CSV, or import it into a system that cannot read SWIFT.
Comparison
| MT940 tag | What it is | Holds | In the CSV |
|---|---|---|---|
| :25: / :28C: | Account header | Account and statement number | Row context |
| :60F: / :62F: | Balances | Opening and closing balance | Control totals |
| :61: | Transaction line | Date, debit/credit, amount, code | One CSV row each |
| :86: | Details | Narrative, invoice references | A description column |
An MT940 with hundreds of transactions parses to a CSV in about 25 seconds. Convert your statements now.
See pricing