Bank statement converter

Turn a PDF bank statement into a CSV in your browser. We check the running balance before you download.

Options

Number formati
Include in the CSV

Processed in your browserFiles never uploadedFree to useNo sign-up

How it works

What the converter does with your file.

  1. We read the PDF text

    We read the text and its position on the page. Scanned or photographed statements are not supported.

  2. We turn the text into rows and columns

    We use the position of each text fragment to find rows, columns, dates, descriptions, amounts, and balances.

  3. We identify transactions

    We find rows that contain a date and an amount, then use them to build the transaction table.

  4. We check the running balance

    Each row is checked against the previous balance. If something does not add up, we flag it.

  5. We resolve ambiguous numbers

    We test different number, date, and column formats and keep the interpretation that best matches the statement's balances.

  6. We check the final balance

    We compare the calculated balance with the statement's closing balance. This helps detect missing or misplaced rows.

What this cannot do

Know the limits before you upload.

Scanned statements
Scanned PDFs are images, not text, so they cannot be read. Use the original digital PDF if your bank provides one.
Statements with no running balance
The converter uses the running balance to verify transactions. Statements without one can still be converted, but the balance check cannot run.
Amounts in more than one currency
The balance check cannot run on statements with multiple currencies because their amounts cannot be added together. The transactions can still be converted.
Files larger than 20 MB
Files must be 20 MB or smaller. Larger files are rejected before processing starts.

Privacy

Your file stays in your browser.

You can check this yourself

Open your browser's developer tools and check the Network tab while converting a statement. You should see no request containing your file.

Your statement stays on your device

The converter runs in your browser. Your file is never sent to our servers.

Your statement is not stored

Your file is not saved to storage, cookies, or a database. Close or reload the page, and the converter no longer has access to your file.

Troubleshooting

Common problems and quick fixes.

The text in this PDF came out unreadableWe could not read the text in this PDF. It has a text layer, but its characters decode to the replacement character — which happens when a font does not carry the mapping from its glyphs back to letters.
We could not read the text in this PDF. It has a text layer, but its characters decode to the replacement character — which happens when a font does not carry the mapping from its glyphs back to letters.

This PDF contains text, but the characters could not be decoded correctly. Try downloading the statement again from your bank or use another PDF version.

Some rows are missing from the CSV

This happens two ways. Some statements print transactions in more than one place: a separate cheques or card section, a daily balance summary, or a second account on the same document. And some rows sit in the main table but are laid out in a way we could not read — an amount printed over a page number, for instance. Either way we tell you rather than leaving them out quietly. Open the original PDF to see the rows that were not included.

A date column came out unreadable

Dates are read from the column where dates appear across the rows we identified as transactions. When none of that column reads as a date, either it holds something else — a description, or a reference — or it is a format we do not recognise yet. The amounts in your CSV are still read from the statement, but the row list may include lines that are not transactions, or leave out lines that are. Compare the CSV against the original PDF before using it.

The CSV does not end on the statement's closing balance

The running balance in your CSV should finish on the same figure the statement prints as its closing balance. When it does not, transactions are missing from the conversion — often a separate cheque list, a second account, or a section printed in a layout we could not read. The difference tells you how much is unaccounted for. Compare against the original PDF before using the file.

Frequently asked questions

Quick answers about the converter.

Is my bank statement uploaded somewhere?

No. Your file is processed in your browser and is never sent to our servers. You can also check this yourself in your browser's Network tab.

What does 'Balance checked' mean?

The converter checks that each transaction leads to the correct running balance. It also compares the final balance with the statement's closing balance.

Why won't it read my scanned statement?

A scan is a picture of a statement rather than text: there are no characters in the file to read, only pixels. Turning that back into text needs optical character recognition, which this tool does not do. This converter needs a PDF with a text layer. If your bank offers a download as well as a printed copy, drop that one in — this page tells you straight away which kind you have.

The dates in my CSV look wrong. Can I change the format?

Dates come out exactly as your statement prints them, and there is no control to change that. Rewriting them needs a year, and a statement that omits the year on the row gives us nothing to take one from — supplying one would be inventing a fact about your money. Set the date format when you import the CSV instead, where the tool reading it can be told what to expect.

Will the CSV import into QuickBooks or Xero?

The file has six columns in this order: date, description, debit, credit, balance, account. Amounts are plain numbers — a period for the decimal, no grouping and no currency mark. Dates are left as your statement printed them, so that is the field to map during import. The account column is present even on a single-account statement, so the shape does not change between files.

Do I need an account, and is there a file limit?

No account or sign-up is required. The maximum file size is 20 MB.