How to convert a PDF bank statement to CSV
A PDF is for reading, not for adding up. Once a statement is a CSV you can open it in Excel, import it into Xero or QuickBooks Online, or feed it to whatever else needs the numbers. QBOKit does that conversion inside your browser, so the statement is never uploaded to anyone.
🔒 Convert your PDF statement now — free, no account, nothing uploaded.
The steps
- Download the statement PDF from your online banking.
- Drop it on the converter. The PDF reader is fetched at that moment and runs locally.
- Check the table it found — see below for why this is the step that matters.
- Choose a CSV output and download it.
There are two CSV layouts, and the difference is the dates
Accounting systems disagree about what a CSV should look like, so the converter writes two:
| Output | Columns | Dates |
|---|---|---|
| Clean CSV (QuickBooks) | Date, Description, Amount | MM/DD/YYYY |
| Clean CSV (Xero) | Date, Amount, Payee, Description, Reference | DD/MM/YYYY |
If you are opening the file in Excel or Google Sheets rather than an accounting system, pick the layout whose date order matches your locale, or your spreadsheet will quietly reinterpret the dates when it parses them. The first of April is 04/01/2026 in the QuickBooks layout and 01/04/2026 in the Xero one. Same day, same file, different order.
Why it is read in your browser
A bank statement carries account numbers, salary, and every payee you have. If you are a bookkeeper it is not even your own data: it is your client's, and you are responsible for where copies end up.
A conversion service that runs on a server needs a copy of that file. That may be perfectly fine, but it is a copy you cannot see and a deletion promise you cannot check. Converting in the browser removes the question: the file is opened by code on your own machine. Open the network tab while you convert and you will see the PDF reader being downloaded to you, and no statement going back. The only thing this page sends us is a small counter recording that a conversion happened, with counts and nothing from inside the file.
What will not work
A scan or a photo of a statement has no text in it. It is a picture, and extracting words from a picture needs OCR, which this tool does not do. Statements downloaded from online banking are normally real documents with real text, so they are fine. If you drop a scan in, the converter says so rather than handing you an empty file.
PDF reading here is new, and statement layouts vary enormously between banks. Look at the preview before you download, and check a row or two against the statement. The preview writes dates as YYYY-MM-DD on purpose, so you can see at a glance whether the day and month have been read the right way round.
What gets cleaned up on the way
A PDF has no columns, only text at positions on a page, so the table is reconstructed: text sharing a baseline becomes a row, text sharing a left edge becomes a column. After that it is treated exactly like a CSV import, which means it inherits the repairs already built for bank exports:
- Day-first versus month-first decided from the whole date column rather than row by row, so a UK statement is not half-read as American. See wrong dates after import.
- Separate Paid in and Paid out columns merged into one signed amount, which is how most UK statements are laid out.
1,234.56and1.234,56both read correctly, along with parenthesised and trailing-minus negatives.- Title blocks, address lines and closing-balance rows skipped instead of becoming transactions.
- Commas inside descriptions quoted properly, so the CSV does not fall apart when something else reads it.
Going somewhere other than a spreadsheet?
If the CSV is only a stepping stone, you may not need it at all. The same converter writes the formats directly:
- QuickBooks Desktop — a .QBO file straight from the PDF.
- Xero — OFX, which carries transaction ids so overlapping imports deduplicate.
- Older finance software — QIF.
Convert my PDF statement — free