Own Boss Tools

PDF Bank Statement to CSV

Turn a statement PDF into a clean CSV of date, description and amount, in your browser.

Runs entirely in your browser. The statement is never uploaded.

How the converter reads a statement

A bank statement PDF has a hidden text layer behind what you see. The converter pulls that text out page by page, groups the words that sit on the same line, and then looks for the pattern every statement shares: a date at the left edge, a description in the middle, and one or two money columns on the right. Each line that fits becomes a transaction. Lines that do not fit, such as page headers, addresses and the summary box, are dropped. A short line with no date and no amount that follows a transaction is treated as the second line of its description, which is how most banks print the merchant's city.

Amounts and signs

If the statement prints a running balance, the converter uses it: a transaction that lowered the balance becomes negative, one that raised it becomes positive. That gets the sign right even for banks that print every amount without a minus. If there is no balance column, the sign is read from the page: a leading minus, parentheses, a trailing minus, or a DR suffix all mean a debit. The CSV has three columns, Date, Description and Amount, plus Balance when the statement had one. Dates are kept exactly as printed so your bookkeeping software can match them to the format it expects.

Privacy

Statements are about as sensitive as documents get, so this tool does not upload them. The PDF is parsed with pdf.js inside your browser and the CSV is assembled from that text and saved by your browser's normal download. There is no server-side processing, no account and no storage. The page loads the PDF engine the first time you choose a file, which is the only network request it makes.

What it cannot do

Scanned statements have no text layer and will produce an error; download the statement from your online banking instead. Statements that print debits and credits as two separate columns with both filled on the same line are rare but will be read as amount and balance. Multi-currency or brokerage statements with more than two numeric columns per row are not supported.

FAQ

Is my statement uploaded anywhere?
No. The PDF is read by your browser using Mozilla's pdf.js, the same engine Firefox uses, and the CSV is built on your device. Nothing is sent to our server or anyone else's. You can turn off your internet connection after the page loads and it still works.
Which banks work?
Any statement with a text layer and one transaction per line: a date at the start, a description, then an amount and optionally a running balance. Chase, Bank of America, Wells Fargo, Capital One, most credit unions and most UK and Canadian banks follow that layout. Statements that put debits and credits in separate columns parse too, as long as each row has one amount.
Why did I get "no text layer"?
The PDF is a scanned image, usually from an older statement or one you photographed. The converter does not do OCR. Download the statement again from your bank's website, which almost always produces a text PDF.
Why are some amounts the wrong sign?
When the statement prints a running balance, debits and credits are worked out from how the balance moved, which is reliable. Without a balance column the sign is whatever the bank printed, and some banks print all amounts as positive. Open the CSV in a spreadsheet and flip the column if needed.
Can I import the CSV into QuickBooks or Xero?
Yes. Both accept a three-column CSV of date, description and amount. Map the columns when prompted. Dates stay in the format the bank used, so pick the matching date format in the importer.