🧩 MT940 Merger

Thirty daily files, one import. Merged in order, de-duplicated, then read back and re-validated β€” so a gap or a double booking surfaces here rather than in your ledger tomorrow.

Your statement stays on your device. This page reads the files with JavaScript in your browser. Nothing is uploaded, and it keeps working with your network disconnected.
πŸ“„
Drop your MT940 files here
or click to browse β€” pick as many as you like
MT940 & MT942 Β· .sta .mt940 .940 .txt Β· up to 20 MB each

Thirty daily files, one import

Banks deliver statements daily; ledgers get reconciled monthly. Somebody has to turn thirty files into one, and doing it with cat or a text editor produces a file that looks right and quietly contains the same day twice, or the days in the wrong order.

This merges them properly: in order, de-duplicated, and then read back and checked before you download anything.

Nothing is uploaded. This page is JavaScript running on your machine. Load it, disconnect from the internet, and it still works β€” which is the only honest way to hand a tool a live bank statement.

Ordering

Statements are ordered by account, then statement number, then page. That last step matters: :28C: is statement number / sequence number, so pages 10/1 and 10/2 share the number 10. Ordering on the statement number alone leaves them in whatever order the files happened to be selected in β€” which is to say, no order at all. Where two statements are genuinely indistinguishable, the order you added the files in is preserved.

You can turn sorting off if your files are already in the order you want them concatenated.

The same statement in two files

This happens constantly β€” overlapping date ranges from the portal, or a bank re-sending. A statement is identified by its account, its statement and sequence number, and its date. When the same statement appears in two files, it is kept once and the skip is reported, with the file it came from and the file it was already present in. Nothing is dropped silently.

The output is checked, not assumed

Concatenating text that parses is not the same as producing text that parses. So the merged file is parsed again from scratch and put through the same checks as the MT940 Validator: balances, missing statement numbers, continuity between pages, entry-level problems.

This is where merging actually earns its keep. If your thirty daily files are missing the 14th, the merged file has a gap β€” and you find out here, before importing, rather than from your accounting system tomorrow.

Sliced, not re-generated

Like the splitter, this works on the raw text of each file. Proprietary :NS: fields, spacing and the bank's own line endings all survive, and merging the parts of a split file returns the original byte for byte.

How to merge files

1

Add the files

Drop them all at once, or add them a few at a time. Each is checked as it is added.

2

Merge

You see how many statements were kept, which were skipped as already present, and what the re-check found.

3

Download

One importable MT940 file, already validated.

Frequently Asked Questions

No. Every file is read and merged in your browser.
Yes. A single MT940 file may contain statements for several accounts β€” that is how banks deliver them in the first place. They are grouped by account in the output. If your accounting software will only accept one account at a time, use the MT940 Splitter afterwards.
The same statement β€” same account, same statement and sequence number, same date β€” is kept once. Every skip is listed with the file it came from, so nothing disappears without you being told.
A statement number is missing from the series across all your files, so one day’s statement was never delivered. Get it from your bank and merge again; importing what you have now would leave a hole in the ledger.
You can, and it often works. What it does not do is order the pages, notice that you loaded the same day twice, or tell you that the 14th is missing. The merged file here is parsed again from scratch and re-checked before you download it.