Free tool
Bank statement to Excel, CSV, QBO, OFX or QIF
Drop in a PDF, OFX/QFX, Excel or text statement and get a clean CSV back — with a bonus most converters can't offer: every transaction matched to a real merchant name, category and confidence level.
Choose a statement file (PDF, OFX/QFX, CSV, XLSX, TXT — up to 5 MB)
How it works
Structured formats (CSV, XLSX, OFX/QFX) are parsed exactly. PDFs and text exports go through layout detection first, and when a bank's layout is too messy for rules, AI extraction reads the document like a human would. Card and account numbers are redacted before anything is stored, the original file is deleted within 24 hours, and reports stay in your dashboard only for your plan's retention period. Download the result as CSV, Excel, JSON, QIF or OFX.
Converting for specific software
Convert by bank
Export formats: what you get and how to import it
QuickBooks (QBO)
A QuickBooks Web Connect (.qbo) file — the same OFX transaction data QuickBooks downloads from a bank feed, with the identified merchant as the payee name and the original statement line in the memo. QuickBooks treats it exactly like a bank download.
- QuickBooks Online: Transactions → Bank transactions → Link account ▾ → Upload from file → choose the .qbo, pick the account it belongs to, then review and confirm the imported transactions.
- QuickBooks Desktop: File → Utilities → Import → Web Connect Files → select the .qbo and choose an existing account (or create one) when prompted.
Worth knowing: QuickBooks deduplicates on its own transaction IDs, so importing the same statement twice is safe but re-imports after edits can create review items. One account per file — split multi-account statements first.
CSV
One row per transaction with date (ISO format), original statement description, identified merchant, category, amount (negative for money out), currency and confidence level — plain UTF-8, comma-separated, safe for any spreadsheet or import pipeline.
- Excel: Data → From Text/CSV → select the file → make sure the date column is typed Date and amounts Decimal → Load. Avoid double-clicking the file directly if your locale uses DD/MM dates.
- Google Sheets: File → Import → Upload → 'Insert new sheet(s)' with Detect automatically — Sheets handles the ISO dates correctly out of the box.
- Accounting tools: Most (QuickBooks, Xero, FreeAgent) accept CSV via their bank-import screens; map date → Date, merchant → Payee, amount → Amount when asked.
Worth knowing: CSV carries no type information, so a spreadsheet decides how to interpret columns on open — the classic failure is dates flipping in DD/MM locales. Import (don't double-click) when in doubt, or download Excel instead.
Excel
The same per-transaction columns as the CSV, but typed: dates are real dates, amounts are numbers, and headers are frozen — nothing gets reinterpreted on open, which makes XLSX the right choice when the file goes straight to a human.
- Excel / Numbers / LibreOffice: Open directly — types are preserved, no import wizard needed.
- Google Sheets: File → Import → Upload the .xlsx, or drag it into Drive and open with Sheets.
Worth knowing: A workbook is heavier than CSV and less pipeline-friendly — for scripts and bulk imports, prefer CSV or JSON.
QIF
A QIF (Quicken Interchange Format) file with the identified merchant as the payee and the original statement line preserved in the memo field — so imports arrive readable, with the raw descriptor still available for reference.
- Quicken: File → File Import → QIF file → choose the account to import into. Review payees on first import; Quicken remembers your renaming rules afterwards.
- YNAB: Account → Import — YNAB accepts QIF directly; match the account, then approve the imported transactions.
- GnuCash: File → Import → Import QIF → follow the assistant; map the QIF account to your GnuCash account when prompted.
Worth knowing: QIF has no currency field and dates are locale-ambiguous in some old importers — if your tool supports OFX, that's the more robust choice; QIF remains the format of choice for older Quicken versions and GnuCash workflows.
OFX
Standard OFX 2.x XML: every transaction with date, amount, debit/credit type and the identified merchant as the transaction name — the same format banks themselves use for downloads, accepted by most accounting packages.
- Xero: Accounting → Bank accounts → Manually import a statement → upload the .ofx against the matching bank account.
- QuickBooks: Banking → Upload transactions → browse to the .ofx (shown as 'Web Connect') → map to the account → review and add.
- Sage / others: Look for 'bank statement import' or 'Web Connect' in the banking area — OFX is the near-universal option.
Worth knowing: Some tools expect bank-issued OFX with institution IDs; if an import is rejected, choose the generic/'other bank' option during import — the transaction data itself is standard.
JSON
An array of transaction objects — {date, description, merchant, category, amount, currency, confidence} — plus statement metadata; stable keys, ISO dates, numbers as numbers. Built for scripts, ETL and further processing.
- Python: json.load(open('statement.json')) → a list of dicts ready for pandas: pd.DataFrame(data['transactions']).
- Node.js: JSON.parse(fs.readFileSync('statement.json')) — or stream it into your pipeline of choice.
Worth knowing: JSON is for machines — if the destination is a person or a finance tool, CSV, Excel, QIF or OFX will serve better.
When you need a converter (and when you don't)
If your online banking offers a CSV, Excel or OFX export for the period you need, use it — a native export is written by the bank and always beats a conversion. The converter earns its keep in the cases banks don't cover: months that are only available as PDF, closed accounts where only downloaded statements remain, statements forwarded by a client or family member, and scanned paper statements.
Accountants and bookkeepers hit this constantly during year-end and client onboarding: a shoebox of PDFs that need to become one clean ledger. Converting them one by one by copy-paste typically costs 15–30 minutes per statement and introduces silent errors; a purpose-built converter does the batch in minutes with amounts validated against the document.
What makes bank PDFs hard to convert
A PDF doesn't contain a table — it contains instructions to draw text at coordinates. The rows you see are a visual arrangement that has to be reconstructed, and every bank arranges differently: multi-line descriptions, transactions that span page breaks, running-balance columns that appear only on some pages, and date formats that flip between regions.
Generic OCR makes it worse on scanned statements: a misread character in a description is cosmetic, but a misread digit in an amount silently corrupts your books. That's why this converter re-validates every date and amount after extraction, and shows totals you can reconcile against the statement's own summary line.
What you get that a plain converter can't give you
Conversion is the commodity half of the job. The half that saves real time is identification: SQ *BLUE BTTL 0412 becomes Blue Bottle Coffee with a category and a confidence level, PAYPAL *ODDNAME resolves to the actual seller, and the export you download is already readable. Subscriptions, recurring charges and bank fees are detected in the same pass, so the output is bookkeeping-ready rather than merely machine-readable.
Converting statements for accountants, mortgages and visas
Most conversions trace back to one of three deadlines. Bookkeepers and accountants convert a year of client PDFs into one ledger at tax time. Mortgage and loan applicants are asked for three to six months of statements that a broker wants as a spreadsheet, not a stack of PDFs. And visa or immigration cases often need statements as data a caseworker can total. In all three, what matters isn't just getting a CSV out — it's that the numbers reconcile, because someone is going to add them up and check.
That's the practical difference from a free online PDF-to-CSV tool: the output is validated against the statement's own totals and every merchant is named, so the person on the other end trusts it on the first pass instead of sending it back.
Frequently asked questions
Which input formats are supported?
PDF (digital or scanned), CSV, TSV, Excel (XLSX), OFX/QFX and plain text — up to 5 MB or 5,000 rows per statement. Zip batches are supported on paid plans.
Which output formats can I download?
CSV and Excel for spreadsheets, QIF for Quicken/YNAB/GnuCash, OFX 2.x for accounting packages, and JSON for scripts — all from the same upload.
Will my numbers be accurate?
Structured formats are parsed exactly. For PDFs, every extracted date and amount is re-validated against the document, and obviously-wrong rows are rejected rather than guessed. You can reconcile the converted totals against the statement's own summary.
Is my statement stored?
Card and account numbers are redacted before anything is stored, the original file is deleted within 24 hours, and analysed reports stay in your dashboard only for your plan's retention period (24 hours on the free plan). We never ask for your bank login.
Can I convert a bank statement for a mortgage or visa application?
Yes — that's one of the most common uses. Export the months you were asked for as CSV or Excel; the totals reconcile against the statement so a broker or caseworker can verify them. Keep the original PDF too, since some reviewers want both.
How do I convert several months of statements at once?
Upload them together (zip batches are supported on paid plans). Each statement is converted and identified separately, and you can merge the results into a single spreadsheet for the whole period.
Free converter
Convert your statement — and understand it too
A free account converts a statement page every day to CSV, Excel, QIF or OFX — with every transaction matched to a real merchant name, not a cryptic descriptor. No card required; files deleted after 24 hours.
No bank logins · card numbers redacted before storage · everything deleted after 24 hours
Related tools