Convert a PDF bank statement to CSV
Banks send statements as PDFs, but spreadsheets, budgeting apps and accountants want rows and columns. This guide shows how to turn a PDF bank or credit card statement into a CSV with Cleanrow, what the file looks like, and what to watch for. The PDF is read in your browser and never uploaded.
What a CSV is, and who needs one
A CSV (comma-separated values) file is plain text with one row per line and commas between the columns. Almost every spreadsheet, budgeting app and accounting package can open or import one, which makes it the safest format to ask for when you don't know what the other end uses. People usually need a statement as CSV to:
- hand a year of transactions to a bookkeeper or tax preparer;
- load older months into a budgeting app that only reaches back 90 days;
- search, sort and total transactions in a spreadsheet, for an expense claim or a dispute;
- get statements from an account that's closed, where the bank only offers PDFs.
Step by step
- Open the converter. Drop the PDF on Drop statements here, or click Choose files. You can add several statements at once.
- Cleanrow reads the statement in the tab and shows what it found: the institution, Type (bank account or credit card), the account's last four digits, the period, the opening and closing balances, and every transaction.
- Read the banner above the rows. Verified means the opening balance plus every transaction equals the closing balance, to the cent. Off by an amount points at the rows to compare with the PDF. The balance check explains each answer.
- Check Type. It decides which way every amount goes; switching it flips every sign.
- If a row is flagged, click Edit, correct the date, description or amount, and click Save. The check runs again.
- Under Download, choose CSV in Format, pick a Date format (
YYYY-MM-DDunless you chooseMM/DD/YYYYorDD/MM/YYYY), and click Download CSV.
To combine several months into one file, add them all; the converter can merge them oldest first, with the file each row came from. Rows that look like duplicates are highlighted and kept, never deleted for you.
What the CSV looks like
The first rows of a real export, made by the converter's engine from a made-up test statement (the Copperfield Trust checking account ending 1544, 2025-01-01 to 2025-01-31, 73 transactions, verified):
| Date | Description | Amount | Balance |
|---|---|---|---|
| 2025-01-01 | Check 1650 | -1149.46 | 2456.63 |
| 2025-01-01 | BRIGHTPATH ELECTRIC AUTOPAY WEB ID 437965622 | -237.18 | 2219.45 |
| 2025-01-02 | HEARTH GAS CO AUTOPAY WEB ID 312706058 | -169.22 | 2050.23 |
| 2025-01-03 | ONLINE TRANSFER TO SAVINGS XXXXXX9884 REF #IBXWDE4PUH | -572.25 | 1477.98 |
| 2025-01-03 | ACH DEPOSIT ACORN DENTAL GROUP PAYROLL PPD ID: 2443433977 RECURRING TRACE 688597419335453 PINE CREST MN | 3966.81 | 5444.79 |
- Four columns, always the same: Date, Description, Amount, Balance. Balance is the running balance printed on the statement, and is empty when the statement doesn't print one.
- One signed amount. Money out is negative and money in is positive. On a credit card, a purchase is negative and a payment is positive.
- Plain numbers: no currency symbols or thousands separators, a dot for decimals, always two decimal places.
- UTF-8 text, with descriptions quoted when they contain commas. A description that starts with
=,+or@gets a leading apostrophe, so a spreadsheet can't run it as a formula.
Opening the file in Excel? The Excel (XLSX) export keeps dates as dates, which a CSV can't promise. Going into QuickBooks Online? Use its own CSV layout.
Common problems
"Needs OCR": a scanned statement
A statement that was printed and scanned, or photographed, is a picture of text with nothing to read. The converter marks it Needs OCR instead of guessing. Reading scans needs optical character recognition, which the web converter doesn't do. Cleanrow for Mac, coming to the Mac App Store, reads scans with the text recognition built into macOS and checks them the same way. If you can, download the statement again from your bank's website: those PDFs almost always have real text.
Two accounts in one PDF
Some banks put checking and savings in one statement. Cleanrow splits it into one statement per account, each in its own tab (named like file.pdf — Checking …4299) with its own balance check and download. It splits where each account's opening balance appears; an account that opens at exactly the previous account's closing balance may not split, and then the check won't verify.
Dates without a year
Many statements print 01/15 with no year. Cleanrow takes the year from the statement period, so the December rows of a December-to-January statement get the earlier year. If a row's date falls outside the period, it's flagged for you to look at.
A password-protected PDF
The web converter can't open it. Open it in your PDF viewer and save or print a copy without the password, then add the copy.
The balance doesn't verify
The banner names the rows where the statement's running balance stops agreeing. The mistake is on that row or the one above: compare it with the PDF and fix it with Edit. If the statement looks fine and it still doesn't add up, tell me about the layout.
Your statement stays on your computer
The converter is a program that runs in the browser tab. It reads the PDF there and builds the CSV there; no file, row or amount is sent to White Hat Harbor or anyone else. The page's security policy lets it contact one outside address, Polar's license check, and only when you enter a pass key. The privacy policy has the details.
Limits
- PDFs with selectable text only; scans need OCR (above).
- Tested on generated statements in 25 layouts and a few publicly posted sample statements, not yet on statements from customers' banks. Real layouts vary, which is why every statement is balance-checked and anything that doesn't add up is pointed out row by row.
- Amounts need two decimal places. Files up to 50 MB, in a current version of Chrome, Edge, Firefox or Safari.
- Your first file downloads free, in full, in every format. After that, a 7-day pass ($12, one payment, no subscription) covers every statement for seven days.
The 7-day pass isn't on sale yet. Until it is, the free download of your first file works as described.