PDF Bank Statement to CSV: A Practical Guide
Why CSV is often the right format for bank statement data, what columns a good conversion should include, and how to go from PDF to a clean CSV file.
CSV is the least glamorous file format in bookkeeping, and also one of the most useful. It opens in Excel or Google Sheets, imports cleanly into almost any accounting or budgeting tool, and — unlike a formatted spreadsheet — it's plain text, so it's easy to script against, diff, or pipe into another system. If you need bank statement data somewhere other than a human reading a PDF, CSV is usually the format you actually want.
What a good bank-statement CSV should contain
A statement PDF is designed for a human to read top to bottom. A useful CSV needs the same information reorganized into consistent columns, one row per transaction:
- Date — the transaction date, in a consistent format (not the mix of formats different banks print).
- Description — the merchant or counterparty text exactly as it appeared, without truncation.
- Amount — a single signed number (negative for debits, positive for credits), not split across separate debit/credit columns with blanks.
- Balance — the running balance after that transaction, so you can spot-check any row against the statement.
- Category — a best-effort classification (groceries, payroll, transfer, fee, etc.) if you want to skip manual tagging.
A surprising number of "PDF to CSV" tools get the amount column wrong — either splitting it into separate debit and credit columns with awkward blank cells, or dropping the sign entirely so every number looks positive. Both make the CSV harder to use in a spreadsheet formula or an import script than the PDF was to read in the first place.
Digital PDFs vs. scanned statements
A digital bank statement — one your bank generated directly as a PDF, with a text layer you can select and search — is the easier case. A scanned or photographed statement has no text layer at all, so getting to CSV means running OCR first, then handling everything that comes with it: skewed pages, faint print, and page breaks that split a transaction table awkwardly.
Ledgerary handles both, but a clean digital PDF will consistently produce a higher confidence score than a scan — worth keeping in mind if you have a choice between downloading a statement directly from your bank's website versus scanning a printed copy.
Checking the CSV is actually right
The easiest way to sanity-check a converted CSV without re-reading the whole PDF: sum the amount column and confirm opening balance + that sum = closing balance, both printed on the original statement. This is exactly the check Ledgerary runs automatically on every conversion — if it fails, you'll see the mismatch instead of a CSV that looks fine but is quietly missing a row.
A CSV with a wrong or missing row is often worse than obviously broken output, because it looks correct until you add it up. Always verify the balance before you import a converted statement into anything downstream.
Getting from PDF to CSV
- Upload the statement PDF — digital or scanned.
- The extraction pulls every transaction into the five columns above.
- The balance check runs automatically and shows pass/fail plus a confidence score.
- Download the CSV — or call the same conversion from the API if you're automating an import pipeline.
Convert a real bank statement to CSV — free for up to 10 pages a month.
Convert to CSVThis guide is general reference, not financial, accounting or tax advice. To try the conversion on a real file, use the bank statement converter, or see how the same engine works from your own code or an AI agent.
More guides
Convert a statement, then build on it
Convert a statement free, then get an API key for your software or your AI agent — no card to start.