Convert a bank statement PDF to Excel — with every balance checked

Transactions read from the statement on your device, then reconciled against its running balance, so a misread row shows up.

Free: 3 jobs per UTC day, 25 MB per file. PDF exports include a visible Made with Bindery watermark. Pro exports clean PDFs.

Your files never leave your device

Prefer the full studio? Open Bank statement to Excel in the app →

A bank statement is one of the most private files you own, and most converters want it uploaded. Bindery reads it in your browser tab instead. Each line that starts with a date and ends with amounts becomes a transaction: the date in a standard form, the description (continued over the lines below it), the money in or out and the balance. The columns are found from the statement’s own headings — Paid out and Paid in, Debit and Credit, Withdrawals and Deposits, Soll and Haben, Débit and Crédit — and from where the amounts line up.

Then comes the part converters skip: the running balance. Every printed balance must equal the one before it plus the money in that row, so a row read wrongly, or missing at a page break, is named with the balance expected and the balance printed. Statements listed newest first are recognised, and balances carried between pages are checked too. You download an Excel workbook with a Checks sheet, a CSV, or a QIF file for Quicken and GnuCash. Nothing is uploaded.

How it works

  1. Drop the statement PDF and open Bank statement → Excel
  2. Read the check: how many printed balances follow from the one before, and any row that doesn’t
  3. Download the Excel workbook, CSV or QIF

How transactions are found

Bindery reads the statement’s text layer and groups it into lines. A transaction is a line that starts with a date and has at least one amount after it, with two decimals so reference numbers are not taken for money. Dates are read in the common forms — 31/03/2025, 03/31/2025, 31.03.2025, 2025-03-31, 31 Mar 2025, Mar 31, 2025 — and when a statement prints day and month without a year, the year comes from the statement period. Whether 03/04 is 3 April or 4 March is worked out from the dates that can only be one way, and you can set it yourself. Amounts can be written 1,234.56, 1.234,56, 1 234,56, (45.20), 45.20- or with CR and DR.

The money columns are found where the amounts line up, and named from the headings above the first transaction: Paid out / Paid in / Balance, Debit / Credit, Withdrawals / Deposits, Amount, and their Spanish, French, German, Italian, Portuguese and Dutch equivalents. A description that runs onto the next line is joined to its row, and a second date at the start (a value date) is kept out of it.

The balance check

Most statements print a running balance. Bindery checks each one: the previous balance plus this row’s money must equal what the statement prints. Rows without a printed balance are carried along to the next one that has it. Balances brought forward and carried forward between pages are checked the same way, so a row lost at a page break shows up where the pages meet. The opening balance starts the chain, and a closing balance is checked at the end.

Both sign conventions and both orders are tried — some statements list the newest transaction first — and the one that adds up is used. The result says how many printed balances agree, and names every one that does not, with the balance expected, the balance printed and the page. Nothing is silently corrected: a mismatch means look at that line.

A year of statements at once

Drop several statements together — a year of monthly PDFs, say — and they become one spreadsheet, in date order whatever order you dropped them in, with a Statement column saying which file each row came from. Each statement’s balances are checked on their own, and then the statements are checked against each other: each one must start at the balance the one before it ended on. A statement missing from the run shows up there, between the two months it should sit between. A file that cannot be read, or has no transactions, is listed and left out rather than stopping the rest.

What you download

FileWhat is in it
Excel (.xlsx)A Transactions sheet — Date, Description, Amount (money in positive, money out negative), Debit, Credit, Balance, Page — and a Checks sheet with the counts, the opening and closing balance and every mismatch
CSVThe same columns, UTF-8 with a byte-order mark so Excel opens accents correctly; cells that start with = + - or @ get an apostrophe in front so they cannot run as formulas
QIFBank-account transactions for Quicken, GnuCash and most accounting imports, with dates as MM/DD/YYYY

Honest limits

Converting in the browser versus uploading

Bank statement → ExcelBinderyUpload-based tools
Where the file is processedIn your browser tab, on your deviceUploaded to the service’s servers
Your statementStays on your deviceUploaded to the service’s servers
Checking the resultEvery printed balance reconciled, mismatches namedUsually none — you find errors later
What exists afterwardsThe original and the new file, both on your deviceA server copy until the retention window ends
Works offlineYes, once the app has loadedNo

Questions people ask

Is my bank statement uploaded?

No. The statement is read, converted and checked in your browser tab, and it never leaves your device. That matters for a file with your account number, balance and every payment you made.

How do I know the conversion is right?

By the balance check. Each printed balance should be the previous one plus the row’s money in or out. Bindery checks every one and says how many agree; any row that does not is listed with the expected and printed balance and its page, so you can look at that line on the statement. A closing balance is checked against the transactions too.

Does it work on scanned statements?

Once they have text. A scanned or photographed statement is a picture, so run OCR on it first — on your device, free for 5 pages a day — then open the searchable copy. OCR can misread digits; the balance check is what catches that.

Which banks does it work with?

It does not use a list of banks. It reads any statement whose transactions are lines that start with a date and end with amounts, which covers most current-account and many credit-card statements, and it tells you when a statement did not reconcile rather than guessing.

Can I import the result into Xero, QuickBooks or my spreadsheet?

The CSV has one row per transaction with the date as YYYY-MM-DD and a signed amount, which bank-import screens in accounting software accept after you match the columns; the QIF file imports into Quicken and GnuCash. The Excel workbook is for reading and checking.

What does the free plan include?

Reading the statement and the balance check use none of your jobs; downloading the file is one of your 3 free jobs a day, and files can be up to 25 MB. Spreadsheets and QIF files are never watermarked.

More Bindery tools