BalanceProof

Convert a PDF bank statement for QuickBooks Online

The reliable path from statement PDF to QuickBooks Online: a 3-column CSV with checked balances, split under the 350 KB cap, dates normalized.

What QuickBooks Online actually imports

QuickBooks Online imports bank transactions from CSV, QBO, QFX, and OFX files. For statements that exist only as PDFs, the practical route is CSV: convert the PDF to one of the two CSV shapes QuickBooks accepts and upload it to the right account. The 3-column shape, Date, Description, Amount with one signed number per row, is the format this converter produces by default because it is the one QuickBooks parses most predictably.

The .qbo Web Connect format deserves a straight answer. It is the format practitioners often ask for, because it skips the column mapper and deduplicates through bank transaction IDs. It is also wrapped in bank identifiers that Intuit validates, which third-party files can only satisfy by borrowing another institution’s ID, a workaround that breaks when Intuit changes lists. This tool ships the format that cannot break that way first; a clearly-labeled .qbo option is on the roadmap, with those tradeoffs documented rather than hidden.

Convert a statement now

Drop bank statement PDFs here

or

No signup. No upload - statements are parsed in this browser tab.

  • Balances are checked before anything is exported.
  • Rows that do not tie out are flagged, never dropped.
  • Close the tab and nothing is left behind.

The conversion, step by step

Drop the PDF statement into the converter on this page. It parses in your browser, checks every row against the balances printed on the statement, and shows you an editable preview with a reconciliation stamp. Fix anything flagged, then export QuickBooks CSV 3-column. If the statement runs long, the export arrives as several date-ranged files, each under QuickBooks’ 350 KB upload cap.

In QuickBooks Online: Transactions, then Bank transactions, select the account, then Upload from file. Map Date, Description, and Amount when prompted, confirm MM/DD/YYYY, and import. Rows land in For Review for categorization. Import oldest files first and reconcile month by month; the statement’s closing balance should match the account balance in QuickBooks after each month posts.

Known QuickBooks import errors, decoded

A date error on import means one row broke the format: QuickBooks stops at the first date it cannot read, so a single ISO date or a stray text row fails the file. A file-too-large rejection means the 350 KB cap: split by date range. Amounts arriving as zero usually means a 4-column file where QuickBooks read only one of the Credit and Debit columns, which is why 3-column is the default here. Transactions all landing uncategorized is not an error at all: CSV imports always land in For Review, and category columns are ignored by design.

One QuickBooks edition differs: QuickBooks Self-Employed imports CSV only, so the CSV path described here is also the only path there.

CSV, QBO, QFX, OFX: choosing a format honestly

The format hierarchy is simple once the tradeoffs are on the table. CSV is universal, works in every QuickBooks Online edition including Self-Employed, and has zero vendor dependencies; its costs are the column mapper, the date confirmation, and no built-in duplicate detection. Web Connect formats carry transaction IDs that let QuickBooks deduplicate overlapping imports automatically, but a valid file needs institution identifiers from a program banks join and individual tools generally cannot.

OFX and QFX sit between: openly documented, accepted by QuickBooks Online through the same upload path, still carrying transaction IDs. They are a reasonable future lane for this converter. Today the recommendation stays boring on purpose: a checked 3-column CSV imports predictably everywhere, and predictable beats clever when the data is a client ledger.

Why balance checking matters more for QuickBooks than anywhere

Once imported, transactions become the raw material for categorization, reports, and eventually a reconciliation against the same statements you converted. An extraction error discovered at that last step costs the whole chain: recategorize, unpost, re-import. Checking the math before import moves that discovery to the cheapest possible moment.

Every export from this converter carries its reconciliation stamp: Verified row-by-row when each transaction chained to a printed running balance, statement-level or partial verification when the statement offered less to check against, and a failed stamp with exact rows marked when something did not add up. The stamp travels with your judgment: an export that failed reconciliation requires an explicit confirmation before it downloads.

Frequently asked questions

Can I get a .qbo Web Connect file instead of CSV?
Not yet. Valid .qbo files require bank identifiers that Intuit validates, which third parties satisfy only through workarounds that can break. A labeled .qbo option with documented tradeoffs is on the roadmap; CSV is the dependable path today.
Which QuickBooks CSV format should I choose?
3-column: Date, Description, Amount with one signed value. The 4-column Credit and Debit variant is supported by QuickBooks but has known cases of one column importing as zeros.
How do large statements get under the 350 KB limit?
The export splits automatically into date-ranged files, each within the cap and each carrying complete days so no date straddles two files.
Why are all my imported transactions uncategorized?
QuickBooks ignores category columns in CSV imports. Everything lands in For Review, where your bank rules apply. Import cannot pre-categorize; that is a QuickBooks constraint, not a converter one.
Does this work for QuickBooks Self-Employed?
Yes, and CSV is in fact the only import format Self-Employed accepts.
What about statements that cover several accounts?
Combined statements are split into account sections, each reconciled against its own balances and exported as its own file set, because QuickBooks imports into one bank account at a time. Upload each file to its matching account.