1. Your MT940 statement
A .sta, .mt940, .swi or .txt download from your bank, or its text pasted below. Several statements in one file are fine.
Choose a file or paste the text, then click Check statement.
Result
Downloads
The rules, and what they leave out
- Structure: each statement opens with :20: and carries :25: (account), :28C: (statement number), :60F: or :60M: (opening balance), :61: with an optional :86: per transaction, and :62F: or :62M: (closing balance); a line with only - ends the message.
- Balance: opening plus signed transactions must equal the closing balance, compared exactly; each statement must open where the previous one for the same account closed.
- :61: lines: YYMMDD value date, optional MMDD entry date, C, D, RC or RD, an amount with a comma, N and a three-character type code, then the reference.
- Fixed automatically: amounts written with a period become commas, and a missing closing - line is added.
- Never guessed: a total that does not add up, which transaction is missing or repeated, an unreadable :61: line, or a wrong sign.
- Not checked: that the balances match your bank, that the file came from your bank, :64: and :65: available balances, bank-specific :86: codes, CAMT.053 XML, or what any one importer will accept. Read from memory of common MT940 practice, which varies by bank and by yearly SWIFT revision; confirm against your bank's own specification.
Common questions
Why does my MT940 file fail to import, or import the wrong amounts?
The usual causes are a period used as the decimal separator (SWIFT amounts use a comma), a missing closing - line, a :61: line that does not follow the value date, optional entry date, C/D, amount, N plus type code layout, and an opening balance plus transactions that do not equal the closing balance. This tool reads every statement in the file and gives a line number for each.
How does the balance check work?
For each statement it adds the signed transactions (C and reversal-of-debit as plus, D and reversal-of-credit as minus) to the opening balance (:60F:) and compares the result to the closing balance (:62F:). A difference means a transaction is missing, repeated, or has the wrong sign. It also checks that each statement opens where the previous one for the same account closed, which finds a missing day or month. Amounts are compared exactly, not as floating point.
Can I convert MT940 to CSV?
Yes. After checking, download a CSV with one row per transaction: account, statement, value date, entry date, signed amount, currency, reference, bank reference, type code, counterparty name and description taken from the :86: line. Choose a comma or a period as the decimal mark. The :86: free text is split into labelled parts when it uses /EREF/NAME/REMI/ or ?20 ?32 subfields; otherwise it is kept whole.
What does it fix automatically?
Only provable things: amounts written with a period are rewritten with a comma, and a missing closing - line is added. A wrong total, a missing transaction, a repeat or an unreadable :61: line is reported and left alone, because the file alone cannot say which number is right.
Does it read CAMT.053?
No. CAMT.053 is the XML successor to MT940. If you drop one in, the tool says so instead of reporting a broken MT940. Use the camt.053 statement check for it.
Is my statement uploaded anywhere?
No. It is read in your browser tab and a test in the code asserts there are no network calls. A statement holds account numbers and counterparties, so do not paste one into a tool that uploads it.