# Bank Statement Converter

> Convert PDF bank or credit-card statements to CSV, Excel, JSON, QIF, or OFX. Auto-detects 17 banks. Scanned-PDF OCR fallback. Runs in your browser.

URL: https://uttir.com/bank-statement-converter
Categories: pdf-tools, data-tools
Privacy: Your PDF is parsed in your browser using pdf.js. Nothing is uploaded to any server. Close the tab and the data is gone.

## About

Drop a PDF bank or credit-card statement and get back a clean spreadsheet of every transaction. The parser auto-detects the bank from the statement text and pulls out the date, description, amount, and running balance. Categorization is automatic using keyword rules that cover common merchants (groceries, restaurants, gas, subscriptions, transfers, etc.) — override individual categories in the table before exporting.

All processing is local. The PDF is parsed in your browser using pdf.js; the data never leaves your device. The site has no upload step, no server, no analytics on what you upload. Verify by opening DevTools → Network and parsing a statement — the only requests are the static assets that make up the page itself.

Export to the format your finance app expects. CSV is the universal default and opens in Excel, Google Sheets, Numbers, and LibreOffice. JSON keeps the full transaction shape (including running balance). QIF is the Quicken Interchange Format supported by GnuCash, Wave, and most legacy personal-finance apps. OFX is the standard for downloaded bank histories and works with GnuCash, Moneydance, and Microsoft Money.

## How to use

1. **Drop your PDF** — Click the upload area or drag a PDF onto it. Works with checking, savings, and credit-card statements.
2. **Confirm the bank template** — The parser auto-detects the bank from the statement text. If the result looks wrong, pick a different template from the dropdown and re-parse. Use "Generic" as a last resort — it uses a loose pattern that matches most text-based PDFs but may need manual cleanup.
3. **Review the preview** — Every parsed transaction shows up in a table with date, description, amount, category, and (if available) running balance. The summary at the top shows total income, total expenses, and net. The running-balance check at the bottom of the summary flags any row where the parsed balance does not match the previous balance plus this transaction — a sign the wrong template is in use.
4. **Export** — Pick CSV for spreadsheets, JSON for programmatic use, QIF for Quicken / GnuCash, or OFX for Moneydance / Microsoft Money. The file is generated in your browser and downloaded directly — no upload, no server.

## FAQ

### Is my bank statement uploaded?

No. The PDF is parsed in your browser using pdf.js. The site has no upload endpoint for this tool. You can verify by opening DevTools → Network and parsing a statement — the only requests are the static assets that make up the page.

### Which banks and cards are supported?

17 banks: Wells Fargo, Chase, Bank of America, Citi, US Bank, PNC, TD Bank, American Express, Capital One, Discover, Apple Card, HSBC, Barclays, Lloyds, Santander, Revolut, and N26. Generic template catches most other text-based PDFs. Scanned (image-only) PDFs are handled by the OCR fallback.

### What about scanned statements?

If the PDF has no extractable text, the tool automatically runs Tesseract OCR over each page. The first OCR run downloads ~10 MB of language data; subsequent runs are local. Speed is roughly 3-10 seconds per page on a modern laptop. The OCR fallback is enabled by default — no setting to flip.

### How does the auto-categorization work?

Each transaction description is tested against ~80 keyword rules covering common merchants and patterns (STARBUCKS → Food & Drink, AMAZON → Shopping, NETFLIX → Streaming, etc.). The first matching rule wins. Click any category in the preview table to change it on the fly — your changes persist for that parsing session and are included in the export.

### What is the running-balance check?

For each transaction, the parser checks that the parsed balance equals the previous transaction's balance plus this transaction's amount. If the difference exceeds 1 cent, the row is flagged. A mismatch usually means the wrong template is in use — try switching banks from the dropdown.

### What export formats are supported?

Five formats: CSV (universal, opens in any spreadsheet app), XLSX (Excel-native, dates and amounts are typed not strings), JSON (preserves the full transaction shape), QIF (Quicken Interchange Format, for GnuCash and Wave), and OFX (Open Financial Exchange, for Moneydance and Microsoft Money). All five are generated in your browser.

### Can I search or filter transactions before exporting?

Yes. The preview table has a search box (matches description and category), plus filters for category, amount range, and date range. The visible count is shown above the table. Export always uses the full list, regardless of filters — filters are for browsing only, matching how spreadsheet apps work.

## Related tools

- [PDF Merge](https://uttir.com/pdf-merge) — Combine multiple PDFs into one, in the order you choose.
- [PDF Split](https://uttir.com/pdf-split) — Extract a page range from a PDF into a new, smaller document.
- [PDF OCR — Extract Text from Scanned PDFs](https://uttir.com/pdf-ocr) — Pull text out of a scanned PDF in your browser. Each page is rendered at high resolution and recognized locally, with per-page text and a combined export. No upload, no signup.
- [Image to Text (OCR)](https://uttir.com/ocr) — Extract text from any image — screenshots, scanned documents, photos of signs. Choose a language, see the recognized text with confidence, and copy or download it. Free, in browser, no signup.
- [Invoice Generator](https://uttir.com/invoice-generator) — Create a professional PDF invoice with line items, tax, and totals. No signup, no email gate, no data leaves your browser.

---

For the full HTML page with the live tool, visit https://uttir.com/bank-statement-converter.
This file is the markdown rendering at https://uttir.com/bank-statement-converter.md. See https://uttir.com/llms.txt for a site-wide summary.
