Bank statement PDF to CSV or QBO, checked to the cent.

AI and OCR converters can silently drop a row or swap two amounts, and the output still looks right. StatementHaul checks every balance: opening + credits − debits must equal the closing balance, and every running-balance row must add up. If one doesn't, you see the exact row and the difference before anything reaches your books.

No statement handy? Try our synthetic sample statement (invented bank and numbers, 2 pages).

How it works

1. Read

pdf.js reads the text layer of your PDF on your own computer. Dates, descriptions, amounts and running balances are picked out of the columns, including descriptions that wrap onto a second line.

2. Check

We compare opening + credits − debits with the printed closing balance. With a running balance column, every row and every page is checked too, and the first broken row is highlighted.

3. Export

Download a CSV (date, description, amount, debit, credit, balance, page) or a .QBO web-connect file for QuickBooks. Dates come out as YYYY-MM-DD.

Why the balance check matters

A converted statement can look perfect and still be wrong: two amounts swapped between descriptions, one dropped row, one misread minus sign. Bookkeepers end up tying the totals out by hand afterwards. StatementHaul does that tie-out for you on every statement and shows the difference to the cent when it doesn't match, so you know whether to trust the file before it reaches the books.

What it has been tested on (October 2026): 11 text-based sample statements published online: sample statements from a US bank and two US credit unions, plus open-source parser test sets (most of them made with fictional data). They cover US, Canadian (French), Dutch, Hong Kong, Singapore and Indian layouts. We also tested 4 synthetic statements of our own. Rows matched the published or hand count on all 11. 10 of the 11 reconciled. On the other one the check flagged the problem: that sample's printed summary disagrees with its own transaction table. Supported: separate debit/credit columns, a single signed amount column, no running balance, wrapped descriptions, US and European number formats, and several accounts in one PDF. It has not been tested on most real banks' current statements yet. If yours doesn't parse, it isn't counted against your free statements.

Pricing

Free
$0
  • 2 statements per device
  • CSV + QBO export
  • Balance check
  • No signup
10 statements
$9 one-time
  • 90¢ per statement
  • Everything in Free
  • No subscription
Buy 10 for $9
100 statements
$29 one-time
  • 29¢ per statement
  • For bookkeepers with many clients
  • No subscription
Buy 100 for $29

Paid statements are stored in the browser you buy from. Secure checkout by Stripe. Refunds within 14 days if it didn't work for your statements: just email us.

Privacy

Your statement never leaves your computer: the PDF is opened, parsed and exported in your browser, and the CSV/QBO is generated locally. We don't see your transactions, balances or account numbers. We record anonymous events (page view, conversion started/succeeded, reconciled or not, row count) to improve the product, and a hashed IP counter to enforce the free limit. Full privacy policy.

FAQ

Is my bank statement uploaded to a server?

No. Conversion runs entirely in your browser with pdf.js. The file and its transactions are never sent to us.

Which PDFs work?

Text-based PDFs you download from online banking (you can select the text with your cursor). Scanned or photographed statements are not supported yet. Password-protected PDFs need to be unlocked first.

What does "Reconciled" mean?

Opening balance + the credits we extracted − the debits we extracted equals the closing balance printed on the statement, to the cent, and (where there is a running balance) every row adds up. If not, you see the difference and the first row where it breaks.

Does the QBO file work with QuickBooks?

It's a standard OFX 1.02 "web connect" file with a generic bank ID, which QuickBooks Online imports under Banking › Upload transactions. QuickBooks Desktop is stricter about bank IDs; if it refuses the file, use the CSV import instead.

Can I convert credit card statements?

Sometimes, if the layout has dated rows with amounts. The balance check is built for bank accounts; card statements may show as not reconciled.

Who makes this?

StatementHaul is a small product by Haul Labs. Questions: bulktranscripts+statementhaul@mail.grokbot.com.