PennyTie

Bank statement PDF to CSV, with the math checked.

Drop a statement. PennyTie pulls out every transaction, then proves the totals: opening balance plus credits minus debits has to land exactly on the closing balance. If it doesn't, you see which rows to look at.

Your file stays on this computer. Everything runs inside this browser tab. Nothing is uploaded, stored, or sent to an AI service.

Opening balance12,500.00
+ Credits18,830.19
− Debits28,466.18
= Calculated2,864.01
Closing on statement2,864.01
Difference 0.00, 45 rows, every running balance consistent

Fictional example. “Verified” means opening balance + credits − debits equals the closing balance to the cent. How the check works

Drop a bank statement PDF here, or choose a file

Text-based PDFs from online banking work best. Scanned images aren't supported yet.

How it works

  1. Read the text layer

    The PDF is opened in your browser with Mozilla's pdf.js. Each line is rebuilt from the positions of the words on the page, so columns stay columns.

  2. Find the transactions

    Rows that start with a date and carry an amount become transactions. Wrapped descriptions are joined back to their row. Column headers like Withdrawals, Deposits and Balance tell it which number is which.

  3. Check the arithmetic

    Opening plus credits minus debits must equal the closing balance to the cent. Where the statement prints a running balance, every row is checked against the one before it.

  4. Fix and export

    Rows that don't add up are marked. Edit them in place, and every change is listed in the report. Export a CSV or an Excel (.xlsx) file for QuickBooks, Xero or a spreadsheet.

A verified result means the numbers are internally consistent with the balances printed on the statement. It doesn't certify that the statement itself is genuine.

Pricing

Free

$0

  • Statements up to 5 pages
  • Balance check and report
  • CSV and Excel (.xlsx) export

Pro

$9/month

or $79/year (save about 27%). Pick Yearly at checkout.

  • Unlimited pages and statements
  • Several statements at once, merged into one file, with a month-to-month balance check
  • Everything in Free
  • Cancel anytime
Get Pro

Because the work happens on your computer, there's no per-page cost to pass on to you.

Questions

Is my statement really not uploaded?

Yes. The page loads its code once (PennyTie's own scripts, plus the open-source pdf.js library from the jsDelivr CDN), and the PDF is read inside your browser. You can check: open your browser's developer tools, go to the Network tab, and process a file. No request carries your document. Activating Pro sends one small request to check the license key, and it contains only the key.

Which banks does it work with?

Any statement that is a text-based PDF with one transaction per row and printed amounts, which covers most statements downloaded from online banking. Layouts vary, so check the result: if the balance check doesn't pass, PennyTie tells you, and you can adjust the column roles or fix rows by hand.

Does it work with credit card statements?

Yes, for text-based card statements that show a previous balance and a new balance. PennyTie checks previous balance plus purchases minus payments against the new balance. For card statements, amounts are shown as changes to the balance owed, and the report says so.

What about scanned statements?

Not yet. A scanned page is a picture with no text layer, and PennyTie doesn't run OCR. It tells you when a file has no readable text.

What does the CSV look like?

One row per transaction: date (YYYY-MM-DD), description, signed amount, separate debit and credit columns, running balance, source page, and any flags. Text cells that start with = + - or @ are escaped so spreadsheets don't run them as formulas.

Can I download Excel instead of CSV?

Yes, and it's free within the free page limit. The .xlsx file has a Transactions sheet with real dates and numbers (not text) and a Verification sheet with the opening and closing balances, the check results and the status. As in the CSV, text that starts with = + - or @ is escaped.

Can I convert several statements at once?

Yes, with Pro. Select or drop several PDFs and each one is read and checked on its own. You get a summary per file (period, opening and closing balance, rows, status) and one merged table, CSV or Excel file with a source-file column, sorted by date. For statements of the same account, PennyTie also checks that each closing balance equals the next statement's opening balance, and warns about gaps, overlapping periods, duplicate files and duplicate rows. The merged export is marked verified only if every file verified and the balances chain. If the chain can't be checked (for example, a balance isn't found), it is marked as not chain-checked. Free users can open one statement at a time.

Can I get a refund?

Yes. If it doesn't work for your statements, ask for a refund within 14 days.

Guides and resources

Practical help for getting statement data out of a PDF and into your books. See all guides with descriptions.

Start here

Bank statement PDF to CSVCredit card statement PDF to CSVPassword-protected statement PDFScanned vs text statement PDFsBank statement glossary

Privacy and trust

Is my statement uploaded? Verify it yourselfConvert a statement without uploading itHow PennyTie checks your numbersUpload vs in-browser converters

Fix problems

Totals don't match? Read the gapWhy a bank statement CSV won't importReconcile a bank statement in ExcelReconcile a credit card statement

Accounting and tax time

PDF statement to QuickBooks Online CSVPDF statement to Xero CSVPrepare a CSV for accounting softwareTax-season statement checklist

Bookkeepers and comparisons

For bookkeepersChoosing a free converter: what to checkChatGPT vs a statement checkerAlternatives to PennyTie

Enter your license key

You'll find it in the purchase email.

This statement has more than 5 pages

The free version reads statements up to 5 pages. Pro removes the limit for $9 a month, or $79 a year. You can also read just the first 5 pages now by entering “1-5” in Statement settings.

Get Pro