ConvertCSV

Finance file converter

MT940 to CSV Converter

Extract :61: transaction lines and :86: narratives from a SWIFT MT940 statement into CSV. Upload a file or paste its contents, check the parsed transactions, then download the CSV file.

  • No signup
  • Files stay on your device
  • Transaction preview
  • Download ready

1 · Source

Add your MT940 file

.mt940.csv

2 · Result

Output preview

Nothing converted yet

A sample MT940 file is loaded — press “Convert to CSV” to see how the output looks.

Designed for finance exports

The parser recognises date, description, amount, debit/credit, memo, category, and transaction id fields, including headers like Narration or Withdrawal Amt. used by many banks.

Check before you import

Each conversion shows the parsed transactions with money in, money out, and date range, plus warnings about ambiguous dates or missing account details.

Private browser workflow

PDFs and text files are read by your browser and never sent to a server. Close the tab and the data is gone.

MT940 to CSV Converter

MT940 is the SWIFT text format that banks have used for decades to send end-of-day account statements. It is plain text with colon-prefixed fields: :61: holds one line per transaction with the value date, debit or credit mark, amount and reference, and :86: holds the narrative that describes it. The format is compact and dependable for machines, but a person opening the file sees codes and comma-decimal amounts rather than a table.

This MT940 to CSV Converter reads each :61: line with the narrative that follows it in :86:, then writes one CSV row per transaction. Dates become ISO values, debits are negative, and the bank reference after // is kept in the ID column. Counterparty names and purpose text are taken from the ?32 and ?20–?29 subfields when the bank uses them. Everything runs in your browser.

Key features

  • Reads :61: transaction lines and their :86: narratives, including multi-line narratives.
  • Writes Date, Description, Amount, Memo, Category, ID and Type columns, with the ?00 booking text in Type.
  • Signs debits and reversed credits as negative amounts and writes ISO dates.
  • Uses ?32 and ?33 for the counterparty name and ?20 to ?29 for the purpose when the bank provides subfields.
  • Previews the rows and runs in the browser, so the statement stays on your computer.

About the MT940 to CSV format

A :61: line starts with a six-digit value date (YYMMDD), an optional entry date (MMDD), a mark (C or D for credit or debit, RC or RD for reversals), an optional funds code, the amount with a comma as the decimal separator, and a transaction type letter such as N. The text after // is the customer or bank reference.

A :86: narrative from many European banks is split into subfields that start with a question mark and a two-digit code. ?00 holds the booking text, ?20 to ?29 hold the purpose, and ?32 and ?33 hold the counterparty name. Banks that do not use subfields send free text, and the converter uses that text as the description.

How it works

The converter scans the text line by line. A :61: line starts a new transaction, a :86: line starts its narrative, and any other field tag ends the current transaction. A line that is just - or -} closes the block, and the :25: account field is not read.

For each transaction, the date and amount come from the :61: pattern, the reference from the text after //, and the description from the narrative subfields. If the narrative has no subfields, the whole narrative becomes the description.

Common use cases

  • A bookkeeper gets a daily MT940 from a corporate bank and needs a sheet to tag payments before month-end.
  • A treasury team checks the number of entries in a SWIFT statement against the bank’s portal before loading the file into a cash-management system.
  • A controller compares the total of the signed amounts with the closing balance in the :62F: line of the same file.

How to use this tool

  1. Download the MT940 statement from your bank portal or its SWIFT file folder.
  2. Open the MT940 to CSV converter and upload the .sta or .txt file, or paste its text.
  3. Check the preview: count the rows against the entries on the bank’s screen and confirm the first and last dates.
  4. Download the CSV and check the total against the closing balance before you reconcile.

Example

MT940 (trimmed)

:61:2605030503DN39,99NTRFNONREF//BK-1001
:86:?00TRANSFER?10000000?20INVOICE 4411?32CLOUD HOSTING LTD
:61:2605060506CN2400,00NTRFNONREF//BK-1002
:86:?00TRANSFER?20CLIENT PAYMENT?32CLIENT CO

CSV

date,description,amount,memo,category,id,type
2026-05-03,CLOUD HOSTING LTD,-39.99,INVOICE 4411,,BK-1001,TRANSFER
2026-05-06,CLIENT CO,2400.00,CLIENT PAYMENT,,BK-1002,TRANSFER

Tips for best results

  • Look at the :62F: closing balance and the :60F: opening balance first. Add the signed amounts from the CSV to the opening balance and check that it lands on the closing balance.
  • Use the ID column to match rows with the bank’s own reference, which is the value after // in each :61: line.
  • Keep the original .sta or .txt file. MT940 is the bank’s record, and the CSV is a working copy.
  • If a bank puts the purpose in the middle of the narrative, search the Memo column rather than the Description, since the purpose is kept there when a counterparty name exists.

Common pitfalls

Reading the comma as a thousands separator. In MT940 the comma is the decimal mark, so 1250,00 means 1250.00. The converter handles this, but a manual edit in a spreadsheet with the wrong locale can change the value.

Expecting the entry date to be used. The first date in :61: is the value date and is the one the converter writes. The optional entry date after it is ignored.

Assuming every bank uses subfields. Narratives without ?20 or ?32 codes are used as plain text, so the Description may be a full sentence rather than a payee name.

Confusing reversals with normal entries. RC (reversal of a credit) is shown as a negative amount and RD (reversal of a debit) as a positive amount, which is the effect on the account.

Feeding in an MT942 intraday report and treating its totals as a closing balance. MT942 uses the same :61: lines, so the converter reads it like MT940, but the report is not an end-of-day statement.

Frequently asked questions

Why are the names in capitals?

Most banks write MT940 narratives in capitals. The converter keeps the text as the bank sent it, so search with case-insensitive filters.

Does the converter read MT940 files with several accounts?

The :25: account field is not read, so every :61: line in the file is listed together. If your bank bundles accounts into one file, split it by account before reconciling, because the CSV has no account column.

For more background on data formats and conversion workflows, read our format guides.