Convert an MT940 bank statement (.sta, .940, .txt) to a clean CSV for Excel or Google Sheets, with a running balance checked against :60F: and :62F:. Free up to 100 rows.
Only have a PDF statement? Use the PDF statement converter.
MT940 is the SWIFT statement format many European banks and treasury systems export: one :61: line per booking with a C or D mark and a decimal comma, a :86: line with the description, and the opening and closing balances on :60F: and :62F:. Excel shows it as one column of codes. Utilly reads every booking into a row, pulls the name and payment description out of structured :86: text (/NAME/…/REMI/… or ?20…?32…), and checks that opening balance + bookings = closing balance for every statement in the file.
.sta, .940, .mt940 or .txt. Accounting and treasury systems (SAP, for example) store the same format.:61: booking becomes one row, with the :86: line under it as the description. You don't need to rename the file.The first booking in our sample MT940 (a made-up Dutch business account):
:61:261001D1850,00NTRFNONREF//EX26100100001
:86:/TRTP/SEPA OVERBOEKING/IBAN/NL00EXMP0000000011/BIC/EXMPNL2A/NAME/
Voorbeeld Vastgoed BV/REMI/Huur kantoor oktober 2026/EREF/NOTPROV
IDED
is this row in the CSV:
Date,Description,Amount,Balance
2026-10-01,Voorbeeld Vastgoed BV - Huur kantoor oktober 2026,-1850.00,6562.65
| MT940 field | CSV column |
|---|---|
:61: date: value date 261001 (YYMMDD), then an optional booking date (MMDD) | Date, written 2026-10-01. The booking date wins when the line has one; a booking across New Year gets the right year. |
:61: mark and amount: C / D / RC / RD, then 1850,00 | Amount with a decimal point: credits (and reversed debits) positive, debits (and reversed credits) negative. |
:86: structured text: /NAME/ and /REMI/ (Dutch SEPA), ?32/?33 and ?20–?29 (German) | Description: the counterparty name, a dash, then the payment description. Lines wrapped at 65 characters are joined first. |
:86: free text (card payments, bank fees) | Description, as one line. |
:60F: opening balance, :62F: closing balance | Balance: a running balance from each statement's opening balance, filled in only when the statement ties. |
:20:, :28C:, IBAN, BIC, creditor ID, end-to-end reference | Not in the CSV. Only the last 4 digits of the :25: account number are kept, as the .QBO/OFX account ID. |
Every MT940 field, including the ones that don't end up in the CSV, is explained with this sample on MT940 format explained.
An MT940 carries its own proof: every statement starts with an opening balance and ends with a closing balance. We add up the bookings in between and compare. For the sample file:
| Statement | Opening | Bookings | Closing (:62F:) | Ties? |
|---|---|---|---|---|
| 1–15 October 2026 (7 bookings) | 8,412.65 | +1,067.96 | 9,480.61 | Yes |
| 16–31 October 2026 (6 bookings) | 9,480.61 | +1,616.84 | 11,097.45 | Yes |
When a statement doesn't tie, the preview says how many do, the Balance column stays blank, and you know to download the period again before importing. A file with only part of the bookings, or a statement cut off without its :62F: line, shows up here instead of in your reconciliation.
The CSV uses commas between columns and a point for decimals (-1850.00), the way Google Sheets, Numbers, Xero and most importers want it. Excel set to Dutch, German or French regional settings expects semicolons and decimal commas, so a double-click can put everything in one column or turn amounts into text. Instead:
:20:, files with a SWIFT envelope ({1:…}{2:…}{4:) and files with a bank's header lines above the first statement.| Problem | Fix |
|---|---|
Excel shows lines starting with :61: and :86: | That's the MT940 itself. Convert it here and open the .csv instead. |
| "No transactions (:61: lines) found" | The statement covers a period with no bookings, or the file is a balance report. Export a period that has bookings. |
| The balance check fails | Usually a partial download or a missing statement in a series. Download the whole period again. If it still fails, the bank's file itself doesn't add up; ask the bank. |
| All amounts land in one column in Excel | Excel's regional settings expect semicolons. Use Data → From Text/CSV as described above. |
| Descriptions look cut off or have odd breaks | The bank wrapped :86: at 65 characters. We join the lines; if a bank pads every line with spaces, a word can split. Edit those in the sheet. |
| It's a camt.053 (.xml) file | That's the newer ISO 20022 statement. Use the CAMT.053 to CSV converter. |
03/16/88 records), puts the decimal point back on amounts in cents and checks each day against the opening and closing ledger.Free for files up to 100 transactions, which covers a typical month of activity. Larger files (a year of catch-up, a client's full history) use 1 credit from the same $9 pack of 5 as our PDF statement converter, or unlimited on Pro at $19/month. The preview is always free.
Yes for files up to 100 transactions: no sign-up, no watermark. Bigger files (multi-month catch-up work) use 1 credit from the same $9 / 5-credit pack as our PDF converter, and the preview is always free.
No. Files are processed in memory and deleted after 1 hour. We never use your data for AI training.
Yes. Click a sample button under the upload box. It opens a made-up export from a fictional bank in the same preview your own file gets, and every format is free to download, so you can test an import in a test or backup company file first. Don't import a sample into your real books.
A bank statement in the SWIFT MT940 format, the customer statement message banks have used for decades. It's plain text: :20: and :25: identify the statement and account, :60F: is the opening balance, each :61: line is one booking (date, C for money in or D for money out, the amount with a decimal comma), the :86: line after it describes the booking, and :62F: is the closing balance. Banks often save it as .sta, .940, .mt940 or .txt.
Only as text. Excel shows one column of :61: and :86: lines, with amounts like 1850,00 and dates like 261001. Convert it here and open the CSV instead: one row per booking with a real date, a signed amount and a running balance, ready to sort, filter or Save As .xlsx.
The booking (entry) date when the :61: line has one, because that's the date on your statement; otherwise the value date. A booking across New Year (value date 31 December, entry date 0102) gets the right year.
C (credit) is money in and positive; D (debit) is money out and negative. A reversal of a debit (RD) is money back in, so positive; a reversal of a credit (RC) is negative. The amount's decimal comma becomes a decimal point.
For structured :86: text, the counterparty name and the payment description: Dutch SEPA fields /NAME/ and /REMI/ (or /CNTP/), German ?32 and ?33 for the name and ?20 to ?29 (the SVWZ+ part) for the description. Free-text :86: lines are kept as one line. From structured text, IBANs, BICs and creditor IDs are left out of the description.
Yes. For every statement in the file we add the bookings to the :60F: opening balance and compare the result with the :62F: closing balance, and the preview says whether each one ties. When they all tie, the CSV gets a running Balance column; if one doesn't, Balance is left blank and the preview warns you.
Yes. Statements for the same account (same :25: and currency) are joined in order, so a month of daily statements becomes one CSV. Each different account gets its own tab in the preview, its own CSV and a combined CSV with an Account column. One credit covers the whole file.
Yes. camt.053 is the newer ISO 20022 XML statement many banks offer next to MT940. Use the CAMT.053 to CSV converter for those .xml files. This page is for SWIFT MT940 (.sta, .940, .txt).
Yes, from the same preview: Xero CSV, OFX, QuickBooks .QBO and .IIF and Quicken .QIF. The OFX and .QBO files carry the file's own currency (for example EUR), and their ending balance is the statement's closing balance when every statement ties.
Free converter →
Free converter →
Free converter →
Free converter →
Free converter →
Free converter →