Bank statement PDF → Excel, CSV, OFX. Every row reconciled.
Drop a statement from any bank. Footed reads it in your browser, rebuilds every transaction, then proves the result: opening balance + transactions = closing balance, checked row by row against the balances the bank printed.
Drop bank statement PDFs here
or choose files · several statements at once is fine
- Your PDF never leaves this browser
- Any bank layout
- Password-protected PDFs
- Scanned pages
- 5 free pages a day, no signup
Results
How reconciliation works
"Footing" is the accountant's word for checking a column adds up. Footed does it for every statement.
Running balance, row by row
Where the statement prints a balance, every row must equal the previous balance plus its amount, to the cent. A row that breaks the chain is highlighted — not buried in a spreadsheet you find out about at month end.
Opening + transactions = closing
The whole column is footed against the opening and closing balances printed on the statement, including credit-card statements (previous balance → new balance).
Duplicates, gaps and odd dates
Rows repeated across pages, balance jumps at a page break and dates outside the statement period are flagged for review.
One-click fixes, re-checked live
Flip a sign, take the amount the balance implies, or delete a duplicate. The check re-runs as you edit, so you know the export is right before you import it.
Privacy, exactly
Your PDF stays on your computer. Here is precisely what leaves it.
1 · In your browser
The PDF is opened locally
pdf.js reads the file on your device and extracts the text with its positions. The PDF file itself is never uploaded — not to us, not to anyone.
2 · Sent to our API
Only the page text
The extracted text goes over HTTPS to our API on Cloudflare and is read by Cloudflare Workers AI. For scanned pages with no text, a JPEG image of that page is sent instead.
3 · Not kept
Processed in memory, not stored
We don't store or log statement text or results. We keep a page counter for your quota. Cloudflare says it doesn't use Workers AI inputs to train models. Full details
Pricing
Start free. Pay for pages, not seats.
A page is one PDF page processed, text or scanned. Unused monthly pages don't roll over; pack pages never expire.
No signup
Free
$0
5 pages a day
- Every export format
- Reconciliation on every statement
- Password-protected & scanned PDFs
Occasional use
Pack
$9 one-time
100 pages that never expire
- Everything in Free
- No subscription
- Stack packs as needed
Most popular
Starter
$15 /month
400 pages a month
- Everything in Free
- Batch several statements
- About 130 three-page statements
Bookkeepers & firms
Pro
$39 /month
2,000 pages a month
- Everything in Starter
- API access (POST /v1/convert)
- Use one key on any computer
Already bought? .
FAQ
Questions people ask before trusting a converter
Does my bank statement get uploaded?
No — the PDF file stays in your browser. Footed opens it on your device with pdf.js and sends only the extracted page text to our API, where Cloudflare Workers AI turns it into transactions. For scanned pages that have no text, a JPEG image of that page is sent instead. Nothing is stored or logged. Exactly what happens.
Which banks does it work with?
Any bank, card issuer or country whose statement is a PDF. Footed doesn't use per-bank templates: it rebuilds the page layout and an AI model reads it, so a bank it has never seen works the same way. It handles separate debit/credit columns, Dr/Cr suffixes, amounts in brackets, Indian (1,23,456.78) and European (1.234,56) number formats, dates without a year, multi-line descriptions and repeated page headers.
What does “reconciled” actually check?
Two things, in plain code rather than AI. Where the statement prints a running balance, every row must equal the previous balance plus its amount, to the cent. And opening balance + all transactions must equal the closing balance (previous balance → new balance on credit cards). It also flags duplicates across pages, balance jumps at page breaks and dates outside the statement period.
What if a statement doesn't reconcile?
Footed highlights the exact row where the balance chain breaks and tells you what the printed balance implies — for example “this only adds up if the amount is −48.10”. One click applies the fix and the check re-runs. You can also edit any cell, add or delete rows.
Can it open password-protected PDFs?
Yes. You type the password into Footed and pdf.js uses it in your browser to open the file; the password is never sent anywhere. This is common for Indian bank statements and e-statements sent by email.
Does it handle scanned statements?
Yes. Pages without a text layer are rendered to an image in your browser and read by a vision model, then go through the same parsing and reconciliation. Clear scans work best; the reconciliation will tell you if something was misread.
How do I get the result into Excel, QuickBooks or Xero?
Download Excel (.xlsx) or CSV for spreadsheets, OFX for QuickBooks Online, Xero, Wave and most finance apps (one file per account), JSON for code, or copy rows straight into Google Sheets. Several statements can be merged into one chronological table.
What's free, and what counts as a page?
5 pages a day, free, with no signup and every feature. A page is one PDF page processed, text or scanned. Paid plans: a $9 pack of 100 pages that never expire, Starter at $15/month for 400 pages, or Pro at $39/month for 2,000 pages plus API access.
Do you keep my statements or results?
No. The text is processed in memory and discarded; the results exist only in your browser tab until you close it. We keep page counters for quotas, keyed by a salted hash of your IP address, a random browser ID or a hash of your license key.
Is there an API?
Yes, on the Pro plan: POST /v1/convert takes page text you've extracted and returns transactions plus the reconciliation result. Server-side PDF parsing isn't offered in v1. API docs.