How to import a bank statement PDF into QuickBooks Online
QuickBooks can't read a PDF — but it imports CSV and OFX beautifully. Here's the reliable route from statement PDF to categorised transactions, including the column layout QuickBooks expects.
QuickBooks Online has no "upload a PDF statement" button, and it probably never will — a PDF is a picture of a table, not data. What QuickBooks does import cleanly is CSV and OFX/QFX. So the job is really two steps: get the statement into one of those formats, then run QuickBooks' own import. Both steps have traps; here's the route that avoids them.
Step 1: Convert the PDF
Upload the statement to NoRekey and download the result as CSV or OFX — every conversion is checked against the statement's own opening and closing balances before you download, so you're not importing numbers you'll have to re-verify later. If your statement is a scan or a photo, that works too (here's how scanned statements are handled).
Which format to pick:
- OFX — the smoothest import. QuickBooks reads dates, amounts and descriptions with no column-mapping step, and it deduplicates against transactions the bank feed already pulled.
- CSV — fine as well, and easier to inspect first. You'll map columns during import.
Step 2: The CSV layout QuickBooks accepts
QuickBooks accepts two CSV shapes:
- 3-column:
Date, Description, Amount— money out is negative, money in is positive. - 4-column:
Date, Description, Credit, Debit— two separate money columns.
NoRekey's CSV export is already in an accepted layout, but if you're hand-editing a file, keep dates in one consistent format (DD/MM/YYYY or MM/DD/YYYY — QuickBooks asks which during import), strip currency symbols and thousands separators from amounts, and delete any summary rows a bank export sometimes appends.
Step 3: Import
- In QuickBooks Online go to Transactions → Bank transactions.
- Choose the account, then Link account ▾ → Upload from file.
- Upload your CSV or OFX.
- For CSV: map the columns when prompted (Date, Description, Amount — or Credit/Debit), and confirm the date format.
- Review the preview, import, then categorise as usual.
Step 4: Prove it reconciled
After importing, run a mini-reconciliation: does the account's balance movement over the period match the statement's opening → closing change? If you converted with NoRekey the rows already passed that exact arithmetic, so this is a ten-second confirmation rather than an investigation. If you assembled the CSV by hand, this is the step that catches a dropped or doubled transaction before it pollutes your categorisation work.
Common problems
Duplicates after import. If the bank feed already covered part of the period, QuickBooks usually flags matches for OFX imports; with CSV, trim the overlap rows from the file before importing.
"We can't read your file." Almost always a stray header, footer or blank row — open the CSV and delete anything that isn't the header row or a transaction.
Dates imported wrong. The classic DD/MM vs MM/DD mix-up — re-import and pick the other date format when QuickBooks asks.
Statement goes back further than the bank feed. Feeds typically only backfill 90 days. For anything older, the PDF statements are the record — convert and import them exactly as above. That's the standard fix for catch-up bookkeeping jobs.
There's also a shorter version of this walkthrough in our help centre: importing into QuickBooks.
Statements in, clean books out.
NoRekey converts bank statement PDFs to CSV, Excel, OFX and QFX — every conversion balance-checked. Free to try.
Convert a statement free →