Chase bank statement to QBO. The Web Connect file carries Chase's own bank ID and routing number — not a placeholder.
A .QBO is not a table with a different extension. It tells QuickBooks which institution and which account the rows belong to, and it gives every row a transaction ID so a second import is refused instead of doubled. We read the account identity off the statement itself, walk the balance chain first, and only then write the file.
Drop a Chase statement here
Or click to pick the file. It opens in the same page you would have used anyway — the balance chain starts re-adding on the next screen.
Three files free, 60 pages in total, no card needed. Paid plans are priced by the page — one page of the original is one page, up to 500 pages in a single file.
A newest-first statement still imports in date order, and the arithmetic still breaks
QuickBooks sorts imported rows by date, so a descending statement still lands in the right order in the register. What does not survive is the arithmetic: read top to bottom, every running balance appears to move backwards, and a reader that hands rows over in page order makes the chain look broken when it is intact. The direction is settled before the balance is re-added, and the export keeps the order the page printed unless you ask for it re-sequenced.
What gets checked before you download
Every line below is arithmetic on the paper you sent — not a supplier's claim about how good its reading is. Where the arithmetic fails, you get the row and the exact difference, and the statement is not called balanced.
The bank identity written into the file
QuickBooks matches an import on the institution ID and routing number. A generic file drops the whole statement into an account you then have to fix by hand. When the statement does not print its own routing number, Chase is written as Intuit bank ID 3000 with routing 044000037 — the value in our bank table, not a guess.
One FITID per row
Each transaction ID is derived from its date, amount and payee. Import the same statement twice and QuickBooks rejects the second copy as a duplicate instead of doubling the ledger.
Opening + deposits − withdrawals = closing
The summary box on page one is checked against the register before the file is written. If it does not match, the difference is stated in cents and the statement is not called balanced.
Every line accounted for, or said out loud
The export reports how many rows were printed, how many were written, and how many it could not place. A shorter file with a stated gap beats a tidy file that quietly dropped the middle of a page.
Where a Chase statement goes wrong quietly
None of these announce themselves. Each one produces a file that looks correct.
Check images sitting between the rows
Some business statements embed cleared check images inside the register. An image can be read as a row of numbers; anything that cannot be tied to a dated, amount-bearing line is flagged rather than guessed at.
The page header that repeats four times
In a .QBO a repeated header becomes a transaction whose payee is the column headings. Page furniture is stripped before the file exists, not after.
A payee longer than QuickBooks keeps
QuickBooks truncates the payee name at 32 characters. The printed description is kept whole in the memo, so nothing is lost when the name is cut.
What we will not claim
We do not touch your QuickBooks company file and we cannot see what your version of it does with the file after you import. A clean export means the checks above found nothing to flag — it is not a promise that the import screen raises no warning.
The same goes for the arithmetic: a clean run means the checks we ran found nothing to flag. It does not mean the document is correct — it means nothing in it failed the checks listed above.
How it runs
Upload the statement
A native PDF, a scan, or a phone photo of the Chase statement. No bank connection, no credentials, nothing to authorise.
The ledger is rebuilt and walked
Rows are put back in the order the statement prints them, page furniture is removed, and the balance chain is re-added line by line.
Check the flags, then export
Anything that did not add up is listed first, with its page and exact difference. Then take the QuickBooks (.QBO) file, the other export shapes, and the review sheet.
What lands on your disk
- The .XLSX register — one row per transaction, no merged cells, amounts as numbers
- A Review sheet: who confirmed or corrected which cell, and what it said before
- Plain CSV, Xero-shaped CSV, and QuickBooks .QBO with unique transaction IDs
- A check report stating the rows printed, the rows exported, and every difference found
- Every cell still clickable back to the page and region it was read from
- Files are read, then destroyed — a second upload is a second read
Questions
Do I need QuickBooks Desktop or Online?+
The same .QBO is accepted by both, through different doors. Desktop takes it via File → Utilities → Import → Web Connect; QuickBooks Online takes it through the bank-transactions upload screen. The file itself is OFX Web Connect either way.
Will importing the same Chase statement twice duplicate it?+
No. Every row carries a transaction ID built from its date, amount and payee, so the second import is recognised as already present and rejected. If you re-upload after correcting a row, review the flagged rows before importing again.
Where does the account number come from?+
From the statement. If the account number is masked to the last four digits, only what is printed is used — we do not reconstruct the rest. If nothing usable is printed, the field is left generic and the workspace says so.
What does it cost?+
Three files are free, 60 pages in total, with no card and no account needed to try. Paid plans are sold by the page — $19 a month buys 1,000 pages — and a page is one page of the original document.
For the working paper you have to be able to defend.
For the file that has to import cleanly somewhere else.
The same checks, without naming a bank — including the ones whose layouts we do not recognise.
A .QBO with the institution, the account and a transaction ID per row, so a re-import is refused.