StatementTidy
Guide

How to import a PDF bank statement into QuickBooks

Quick answer

QuickBooks cannot import a PDF bank statement directly. Convert the statement to a QBO file (for QuickBooks Web Connect) or to a clean CSV, then import that. StatementTidy converts a PDF bank or credit card statement to QBO or CSV in your browser - nothing is uploaded, and every transaction is reconciled against the opening and closing balance so it ties out.

Why QuickBooks will not take your PDF

QuickBooks Online and Desktop import bank data as a QBO (Web Connect) file or as a CSV, not as a PDF. So when your bank only gives you a PDF, or the account is closed and a PDF is all you have left, you convert the PDF into one of those formats first.

Option 1: convert the PDF to a QBO file

QBO is QuickBooks Web Connect format. In QuickBooks Desktop you import it with File > Utilities > Import > Web Connect Files; in QuickBooks Online you upload it and map it to the right account. A QBO import drops the transactions straight into the bank feed for matching.

Option 2: convert to a clean CSV and map the columns

QuickBooks CSV import expects simple columns - Date, Description, and Amount (or Date, Description, Credit, Debit). A clean, reconciled CSV avoids the usual import failures caused by dollar signs, commas inside amounts, or extra header rows. During import you map each column and QuickBooks loads the rows.

Make sure it ties out

Every conversion is checked so the transactions tie to the statement's opening and closing balance. Low-confidence rows are flagged and shown, never silently dropped, so your reconciliation in QuickBooks matches the statement instead of being off by a few cents.

Keep it off the cloud

Conversion happens entirely in your browser. Your statement is never uploaded to a server, so you are not sending confidential client financials to a third party or pasting them into a public AI tool. You can even disconnect from the internet after the page loads and the converter still works.

Multiple years or a closed account

Banks usually cap direct CSV or QBO downloads to the last 30, 90, or 180 days, which leaves older periods locked in PDF. You can convert each historical statement PDF the same way - including statements from an account you can no longer log into. Batch multi-file conversion is on the way.

Convert your statement now

Converted in your browser - your statement never leaves your device.

Doing this monthly or across clients?

Batch multi-file conversion and direct QuickBooks/Xero sync — join the early-access list. We only collect your email, never your statement.

Frequently asked questions

Can QuickBooks import a PDF bank statement?

No, not directly. QuickBooks imports QBO (Web Connect) files and CSV files, not PDFs. Convert your PDF statement to QBO or CSV first, then import that file.

My bank only gives me a PDF, not a CSV. What do I do?

Convert the PDF to a clean CSV or a QBO file with StatementTidy, then import it into QuickBooks. The conversion runs in your browser, so the statement is never uploaded.

Why does my CSV fail to import into QuickBooks?

The usual causes are dollar signs or commas inside the amount column, extra header or summary rows, or the wrong columns. A clean, reconciled CSV with simple Date, Description, and Amount columns imports without those errors.

How do I import multiple years of bank statements?

Convert each statement PDF to QBO or CSV and import them in order. There is no limit to how far back you can go as long as you have the PDFs. Batch multi-file conversion is coming.

Can I convert statements from a closed account?

Yes. As long as you still have the PDF statements, you can convert them even if you can no longer log in to the account.

Do I have to upload my statement to a server?

No. StatementTidy processes the PDF in your browser. The file and its transactions are never uploaded, stored, or used to train any model.

Which format should I import into QuickBooks?

QBO gives the cleanest import and lands transactions in the bank feed. CSV also works if you prefer to map the columns during import.