🏦 MT940 Viewer

Open any MT940 or MT942 statement and read it like a bank statement — balances, transactions, counterparties, SEPA references. Parsed in your browser; the file never leaves your device.

Your statement stays on your device. This page reads the file with JavaScript in your browser. Nothing is uploaded, and it keeps working with your network disconnected.
📄
Drop your MT940 file here
or click to browse — .sta, .mt940, .940, .txt
MT940 & MT942 · .sta .mt940 .940 .txt · up to 20 MB
…or paste the statement text instead

What is an MT940 file?

MT940 is the SWIFT message type banks use to deliver an end-of-day account statement. Your bank exports it from online banking with an extension like .sta, .940, .mt940 or plain .txt, and your accounting software imports it. Between those two steps the file is close to unreadable — it's a stack of colon-delimited tags like :61:2601020102D234,56NTRFINV-2026-0114.

This viewer turns that back into something a person can read: opening and closing balances, one row per transaction, counterparty names and IBANs, and the SEPA references hidden inside the :86: narrative field.

It also reads MT942, the interim (intraday) variant your bank sends during the day. MT942 has a floor limit and transaction-count totals instead of a final closing balance, and the viewer labels it as such rather than pretending a balance is missing.

Nothing is uploaded. The parser runs in your browser. Your account number, balance and counterparties never touch our servers — and the page keeps working if you disconnect from the network after it loads.

How to open an MT940 file

1

Choose your file

Drop the .sta / .940 / .mt940 file onto the box above, or paste the text straight from your banking portal.

2

Read the statement

Balances, totals and every transaction appear instantly. Search by counterparty, amount or reference, and open any row for the full detail.

3

Export if you need to

Download CSV or JSON right here, or hand the file to the PDF and Excel converters.

What the viewer shows you

Balances and a real reconciliation check

Every statement is checked the way an accountant would: opening balance + credits − debits should equal the closing balance. The comparison runs in whole cents, so floating-point noise can't invent a false alarm. If it doesn't add up, you get the expected figure, the figure in the file, and the difference — that usually means the file is truncated or a page is missing.

Transactions in plain language

Each :61: line becomes a row with value date, entry date, description, counterparty, type code and a signed amount. Credits are green and positive, debits red and negative. Reversals (RC / RD) get their own badge, because a reversal of a debit is money coming in and it's easy to book it the wrong way round.

The :86: narrative, decoded

The narrative field is where banks disagree with each other. The viewer detects which dialect your bank uses and unpacks all three:

  • German ?nn subfields (Sparkasse, Volksbank, Deutsche Bank, Commerzbank): booking text, GVC business code, counterparty name and IBAN, plus SEPA prefixes EREF+, MREF+, CRED+ and SVWZ+.
  • Dutch slash tags (ING, Rabobank, ABN AMRO): /TRTP/, /IBAN/, /NAME/, /REMI/, /EREF/.
  • Plain free text, which is what most other banks send — shown as-is, with any IBAN picked out.

Multi-page statements, checked for gaps

Long statements arrive split across several :20: blocks linked by intermediate :60M: / :62M: balances. The viewer follows the chain and warns you when one page's closing balance doesn't match the next page's opening balance — the clearest sign a statement is missing from the file.

Awkward encodings handled

German and Nordic banks still ship Windows-1252 with CRLF line endings. If the file isn't valid UTF-8, the viewer re-decodes it as CP1252 so MÜLLER GMBH reads correctly instead of turning into replacement characters — and it tells you it did.

Comma decimals read correctly

SWIFT amounts use a comma for the decimal separator: 1234,56 means one thousand two hundred thirty-four euros and fifty-six cents. Naive readers parse that as 1234 and silently lose the cents. This one doesn't.

Files and banks it reads

  • Message types: MT940 (end-of-day statement) and MT942 (interim / intraday statement)
  • Extensions: .sta, .mt940, .940, .mt942, .942, .swi, .txt
  • Wrapping: raw tag files and files wrapped in the SWIFT {1:}{2:}{4: … -} envelope
  • Banks: auto-detected — German, Dutch, Austrian, Swiss, Nordic and generic SWIFT exports
  • Encodings: UTF-8 and Windows-1252, LF or CRLF line endings
  • Size: up to 20 MB, which is far more than a year of statements

Common use cases

  • Check what's actually inside a statement before importing it into your accounting software
  • Work out why an import failed — a missing page and a broken balance both show up here
  • Find a single payment by counterparty name, IBAN or end-to-end reference
  • Read a statement on a machine that has no accounting software installed
  • Hand a bookkeeper a readable PDF or CSV instead of a raw .sta file
  • Inspect the exact SEPA fields a payment carried, when a customer says they paid

Security & privacy

A bank statement is one of the most sensitive files you own — account number, balance, salary, every counterparty you paid. That shaped how this tool is built:

  • Parsed on your device: the viewer, the CSV export and the JSON export all run in your browser. No upload, no request, nothing to log.
  • Works offline: load the page, disconnect, and it still parses. That's the easiest way to verify the claim yourself.
  • No account needed: no signup, no cookie required to use it.
  • The two exceptions are labelled: PDF and Excel rendering happens on our server, so those two pages do upload your file. It's deleted within the hour and never read by a person.

Frequently Asked Questions

No. This page reads the file with JavaScript on your own machine. If you want to prove it, load the page, turn off your network, and open a file — it still works. Only the MT940 to PDF and MT940 to Excel tools upload, because rendering those formats needs a server, and both say so on the page.
.sta, .mt940, .940, .mt942, .942, .swi and .txt. The extension doesn't really matter — MT940 is plain text, so if the contents start with SWIFT tags like :20: and :25:, it will open.
MT940 is the final end-of-day statement, with a definitive closing balance (:62F:). MT942 is an interim report sent during the day: it has a floor limit (:34F:) and debit/credit totals (:90D: / :90C:) instead of a final balance. This viewer detects which one you opened and labels it.
It means opening balance plus credits minus debits doesn't equal the closing balance the file states. Almost always the file is incomplete — a truncated download, or one page of a multi-page statement missing. Compare the difference shown against the missing transaction, and re-export the statement from your bank. It's worth catching before you import it into your books.
Because the :86: narrative field has no single standard. German banks pack it with ?20-style numbered subfields, Dutch banks use /NAME/-style slash tags, and many other banks just write a sentence. The viewer detects the dialect and unpacks whichever one your bank used.
Yes — two ways. The CSV tab above downloads a spreadsheet-ready file without uploading anything (tick "semicolons" if your Excel uses European settings). Or use MT940 to Excel for a real .xlsx workbook, which is rendered on our server.
Yes. Free, no signup, no limit on how many statements you open.