ocrsnip No uploads
MT940 · CAMT.053 → .xlsx · .csv · .qbo

MT940 and CAMT.053 to Excel, checked against the balance.

Drop the file your bank calls SWIFT MT940 or CAMT.053. This tab reads it, adds every movement to the opening balance and tells you whether the total matches the closing balance the bank itself wrote. The file never leaves this computer.

MT940 & ISO 20022Balance reconciledFirst 25 rows free
Drop an MT940 or CAMT.053 file .sta, .940, .txt, .xml — several statements in one file are fine. Opened in this tab, nothing is uploaded. Choose file Try a sample MT940 · Try a sample CAMT.053 stays on this device
After you drop a file

Read, then checked, then yours

Two formats, one statement

European banks hand out two machine-readable statements, and which one you get depends on the bank rather than on you. MT940 is a SWIFT telex format: plain text, lines that begin :20:, :61: and :86:, two-digit years and a comma where English puts a decimal point. CAMT.053 is its ISO 20022 replacement: XML, verbose, with a <Ntry> element per movement. Banks name them differently again — «SWIFT MT940», «MT940 Structured», «CAMT.053», «ISO 20022 XML», sometimes just «electronic statement».

Both are read here, and both come out as the same table. Neither needs an account with us, and neither is uploaded: the reading happens in this browser tab, which you can see for yourself in the network panel of your developer tools.

What the balance check can and cannot say

This is the part worth being precise about, because it is the reason to use this page rather than a format converter. Both formats carry a balance at each end of the statement: MT940 writes them as :60F: and :62F:, CAMT as OPBD and CLBD. Add every movement to the opening balance and the result must equal the closing balance the bank wrote. When it does, nothing was misread — not one amount, not one sign, not one line skipped.

When it does not, you are told by how much, and that is where the honesty has to start: neither format carries a running balance per line. There is a figure at each end and nothing in between, so a mismatch is a fact about the statement and cannot be pinned on a single row. A page that highlighted one row in red here would be inventing a precision the file does not contain. Our PDF statement reader can point at the row, because a printed statement usually carries a balance on every line; this one cannot, and says so.

The dates, and which one books the row

Both formats carry two dates per movement: the value date, when the money counts for interest, and the booking date, when it appeared on the statement. They differ by a day or two, and at the turn of a month they differ by a month. The table books each row on the booking date — that is the date your accounting program expects — and keeps the value date beside it in the workbook and the CSV, so nothing is lost and nothing is guessed.

MT940 makes this harder than it sounds: the booking date is written as four digits, MMDD, with no year at all. It borrows the year from the value date next to it, which is correct every day except around New Year, when a December booking sits beside a January value date. That case is handled rather than ignored.

Several accounts in one file

Banks commonly send a month of every account in a single file: MT940 starts each one with a new :20:, CAMT with another <Stmt>. Each is read as its own statement with its own balances and its own check, the account is carried onto every row, and the summary above the table has a line per account. One file of four accounts gives four verdicts, not an average.

What comes out

The same rows in whichever shape the next program wants.

.xlsx — a workbook with the arithmetic

Date, value date, description, debit, credit, running balance, account, type and the bank's reference. A second sheet, Balances, holds one line per statement: opening, movements, computed closing, the bank's closing and the difference. Amounts are numbers, so the column sums.

.csv — the same table, no library

For anything that imports a comma-separated file, including spreadsheets that refuse other people's .xlsx. Dates stay ISO, which is the one format no locale reads back wrong.

.qbo, .qfx, .ofx — straight into accounting

The files QuickBooks and Quicken import without column mapping, built from the rows you can see. QuickBooks Desktop needs its own bank id in the file; what is actually inside one explains why, and the box above is where it goes.

What is not changed

Descriptions arrive as the bank wrote them, including the ?20? subfields MT940 uses and the remittance text CAMT buries three levels down — gathered into one readable line, never rewritten. What those codes mean is a page of its own.

Questions

Something else? Write to support@ocrsnip.com.

Is my statement uploaded anywhere?

No. The parser is code running in this browser tab, and there is no endpoint on this site that could receive a file. Open the network panel of your developer tools and convert something: nothing carrying your statement leaves. That is the whole design of the site, not a setting.

My file is called .sta, .940 or has no extension at all. Will it open?

Yes. The format is recognised from what is inside the file, not from its name — MT940 by its colon-delimited tags, CAMT by its XML elements. Drop whatever your bank sent. You can also paste the contents straight onto the page.

What about CAMT.052 or CAMT.054?

A camt.052 intraday report reads here too; it is the same structure with a different wrapper. The camt.054 notification is a different document — it reports individual credits and debits rather than a statement with balances — so it may read but will have nothing to reconcile against. The page says plainly when there are no balances to check.

The statement does not add up. What now?

First check the difference against the original: a figure that matches a single transaction usually means the bank sent two files for the period and one is missing. Our reader does not skip lines silently — if it could not read one, it says so rather than leaving it out of the count. If the difference matches nothing, send the file to support and we will look at it; a format we read wrong is a bug worth fixing, not a support ticket to close.

Why is this one paid when the CSV converters are free?

The free converters reshape a file you already have. This one reads a format most tools charge a monthly subscription for, checks it against the bank's own balances and hands back four formats. The first 25 rows are free so you can see the result on your own file before paying anything, and a pass is $4.99 for seven days with no subscription.