Upload a SWIFT MT940 statement and download a working Excel file. One row per transaction, with the value date, description, signed amount, and balance in their own columns, ready to sort, filter, and reconcile.
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
To convert MT940 to Excel, upload the .sta, .940 or .mt940 file and download the XLSX. Each :61: transaction line becomes one row with the value date, the tag 86 narrative as the description, and the amount signed from the C or D mark, and the tag 60F and 62F balances come through so the sheet reconciles. Excel cannot read a SWIFT file directly: renaming it to .csv gives you one column of raw tags, which is why the file has to be parsed first.
Excel imports delimited and fixed width text, and MT940 is neither. It is a tagged SWIFT message where one transaction spans several lines, so every shortcut people try ends the same way.
There are no commas to split on, so Excel drops the whole statement into column A as one long block of tagged text.
The :61: line and its :86: narrative are separate rows in the file, so a straight text import never lines the amount up with its description.
Tag 61 subfields vary in length between banks, so the column breaks you set for one statement fall apart on the next one.
MT940 writes dates as six digits like 260715, which Excel treats as a number, so sorting by date silently does the wrong thing.
Direction lives in a single C or D character, not a minus sign, so an unparsed import shows every debit as a positive number.
Without the 60F and 62F balances carried across, there is no way to prove the sheet contains every transaction from the statement.
A normal workbook you can reconcile in, not a dump of parsed text.
The :61: line and the :86: narrative that belongs to it are merged into a single row, so amounts and descriptions always match up.
Six digit SWIFT dates are converted to proper Excel dates, so sorting, filtering by month, and date formulas behave.
The C or D mark from tag 61 becomes a positive or negative number, so a SUM of the amount column is immediately meaningful.
Opening and closing balances from tags 60F and 62F come through so you can prove nothing was dropped in the conversion.
Multi line tag 86 text is joined into one description cell, so counterparty names and invoice references are findable with a filter.
The same parsed data exports as CSV for an ERP load or an import template, and as OFX for finance software.
No macros, no VBA, no fixed width column guessing.
Drop in the statement from your bank. MT940 files usually carry a .sta, .940, .mt940 or .txt extension.
Tip: Open it first: a real MT940 starts with a :20: tag.
Check the transaction table on screen, especially that debits show as negative and the dates read correctly.
Tip: Spot check one large transaction against the raw file.
Export to Excel and start reconciling. CSV and OFX are available from the same parsed data if another system needs them.
Tip: Sum the amount column and add it to the opening balance.
People who have to reconcile, review, or report on activity a bank only delivers as a SWIFT file.
Building a daily cash position from MT940 statements across several banks and accounts in one workbook.
Reconciling a subsidiary or foreign currency account where the SWIFT statement is the only source available.
Testing completeness by tying converted transactions back to the opening and closing balances on the statement.
Preparing historical bank activity in a spreadsheet before mapping it into an import template.
The point of converting is to end up with something you can reconcile in, so the export is a flat table with one row per posting. Nothing is nested, nothing spans two rows, and every column holds a single value of the right type. Here is where each column comes from in the original SWIFT file.
| Excel column | Source in the MT940 | Type |
|---|---|---|
| Value date | First six digits of tag 61 | Date |
| Description | Tag 86 narrative, lines joined | Text |
| Amount | Tag 61 amount, signed from the C or D mark | Number |
| Reference | Bank reference at the end of tag 61 | Text |
| Balance | Tags 60F and 62F | Number |
Do this once per file and you will never ship a broken conversion. Take the opening balance from tag 60F, put a SUM over the whole amount column, and add the two. The result has to equal the closing balance in tag 62F. If it matches, every transaction came across and every sign is right. If it is off, the difference usually equals twice one transaction, which means a debit came through as a credit and points you straight at the row to check.
Take Excel when a person is going to work in the file, because the dates stay dates, the numbers stay numbers, and formatting survives. Take CSV when a system is going to read it, because plain text loads into anything without an interpretation layer. If you want a plain comma file instead, the same parsed statement exports that way too, and the full format picture including OFX output is covered on the MT940 converter page.
Plenty of accounts never produce a SWIFT file at all. If your bank sends a PDF, the bank statement PDF converter reads it directly into the same kind of table. If you are handed a BAI2 file instead, which is what many US banks use for cash management reporting, the BAI to OFX converter parses that layout. And if the transactions are already in a spreadsheet and need to go into finance software rather than out of it, the CSV to OFX converter runs the conversion in the other direction.
Upload the .sta, .940 or .mt940 file to the converter above, check the parsed transaction table, and download the XLSX. Each transaction becomes one row with a real date, the tag 86 description, and a signed amount, so you can sort, filter, and total the statement immediately.
Not usefully. Excel can display the raw text because MT940 is plain text, but there are no delimiters and one transaction spans several tagged lines, so everything lands in a single column. The file has to be parsed by the SWIFT specification before the data becomes columns.
MT940 writes dates as six digits in YYMMDD form, such as 260715 for 15 July 2026. Excel reads that as the number 260,715 rather than a date, so sorting puts rows in the wrong order. A proper conversion writes real date values into the cells instead.
Direction in MT940 is a single C or D character inside tag 61, not a minus sign. The converter reads that mark and writes the amount signed, so debits come through negative and credits positive. That is what makes a SUM of the amount column reconcile against the statement balances.
Add the opening balance from tag 60F to the sum of every amount in the converted sheet. The total should equal the closing balance in tag 62F. If it matches, no transaction was dropped and no sign is reversed. A difference that is exactly double one transaction means that row came through with the wrong sign.
Yes. Statements arriving daily from the same account convert one after another and the exports share the same column layout, so they stack cleanly into one workbook. Keep the statement number from tag 28C alongside each batch so you can tell which day a row came from.
Yes. Tag 86 can run to six lines of 65 characters and often carries the counterparty name and an invoice or payment reference. Those lines are joined back into one description cell, which is what makes matching bank activity against open invoices possible with a spreadsheet filter.
MT940 to Excel, CSV or OFX, and what the tags mean.
Convert the US BAI2 cash management format.
Convert a PDF statement to Excel instead.
Go the other way: spreadsheet into OFX.
Get started converting bank statements to OFX.
USD
per month
billed as
$288 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
billed as
$888 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
billed as
$ yearly
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |