MT940 Validator
Drop any .mt940 / .sta / .txt SWIFT bank statement file to instantly check its structure. Validates required tags, field formats, balance reconciliation, transaction lines, date consistency, and currency codes. Nothing leaves your browser.
MT940 File
Drop an MT940 file here, or
Supports .mt940, .sta, .mt9, .txt, .swi files up to 50 MB
⛔
Wrong file type — only .mt940, .sta, .mt9, .txt, or .swi files are supported. You dropped a file.
Validation Errors
Warnings
✓ Valid MT940
Statement Blocks
How It Works
1
Drop your MT940 fileDrag it onto the drop zone or click "browse" to select it. Supports .mt940, .sta, .mt9, .txt, and .swi files.
2
Structure analysisThe validator splits the file into individual statement blocks, checks every required SWIFT tag, validates field formats, reconciles opening/closing balances against transaction amounts, and checks date and currency consistency.
3
Review the reportGet a pass/fail result with full stats per statement block: account number, date range, currency, transaction count, total debits/credits, and balance reconciliation status.
What Gets Validated
- Required tags — checks that every statement block contains
:20:(reference),:25:(account),:28C:(statement number),:60F:/:60M:(opening balance), and:62F:/:62M:(closing balance). - Field format validation —
:20:reference up to 16 chars;:28C:sequence number format;:60:/:62:balance format (D/C indicator, YYMMDD date, 3-letter currency, decimal amount);:61:transaction line structure. - Balance reconciliation — sums all
:61:debit/credit transaction amounts and verifies they match the difference between opening and closing balances (within 0.01 rounding tolerance). - Date validation — all YYMMDD dates in
:60:,:61:,:62:, and:64:are validated for calendar correctness and chronological order. - Currency consistency — verifies the same ISO 4217 currency code is used across all balance and transaction tags within each statement block.
- Encoding issues — detects UTF-8 BOM, null bytes, and non-SWIFT characters that could cause parsing failures.
- :86: narrative pairing — checks that every information-to-account-owner tag
:86:immediately follows a:61:transaction line. - File statistics — reports total statement count, transaction count, file size, line endings, and per-block summaries.
🔒 Privacy & Security
All validation is performed locally using the Web File API and the FileReader API. Your MT940 data — which may contain sensitive account numbers, balances, and transaction details — is never sent to a server. Suitable for production bank statements and internal financial data.
