Free CSV to QBO Converter for QuickBooks

A CSV to QBO converter that runs entirely in your browser. Drop in the bank CSV you downloaded and get back a .qbo file QuickBooks will actually import. No signup, and your statements never leave your browser.

No file handy? Try a sample: · ·

How to convert CSV to QBO

Three steps, nothing to install, and no account to create.

  1. Download the CSV from your bank's website — whatever columns it gives you is fine.
  2. Drop it above. We work out which column is the date, the amount, the description, and whether it's a checking or credit card statement.
  3. Check the preview, then download the .qbo and upload it to QuickBooks.

When you need a CSV to QBO converter

Why not just use QuickBooks' CSV import?

You can, when it works. Two things get in the way.

QuickBooks Desktop has no CSV import at all. Its bank feed reads exactly one thing — a Web Connect file, which is a .qbo. Not .qfx either (that's Quicken's), and not a plain .ofx. If your client is on Desktop, a CSV is useless to you.

QuickBooks Online's CSV import is picky. It wants a specific column layout, chokes on date formats it doesn't recognise, and when it fails it tells you almost nothing about why. Fixing the CSV to match what Online wants is what this converter saves you from. If you'd rather repair the file than convert it, we've written up the eight things that break a CSV upload.

On QuickBooks Online? Try your CSV first

Online reads bank CSVs natively, so a lot of the time you don't need a converter at all — and we'd rather say that than take you through an extra step for nothing. Go to Transactions → Bank transactions → Upload from file and give it the CSV straight from your bank.

Come back here if Online rejects it, or if the columns don't line up with what it expects. Worth knowing: we've seen a case where a .qbo upload failed on Online while the plain CSV loaded first time, so on Online the CSV is the path to try first, not second. QuickBooks Desktop is the opposite — it has no CSV import at all, so there a converted file is the only way in. (The exact column layouts Online accepts, if you want to try that route.)

What gets read from your CSV

Every bank exports a different layout, so there is no fixed template to match against. The converter profiles each column and works out what it holds:

If your statement carries a running balance, that column does real work: each balance minus the one before it should equal that row's amount. When that holds for every row, the amount column and the sign convention are confirmed rather than guessed. When it doesn't hold, the page says so instead of quietly handing you a file with the debits and credits backwards.

Importing the QBO file into QuickBooks

QuickBooks Desktop (the main case for this converter): File → Utilities → Import → Web Connect Files. Desktop can't read a CSV at all, so a converted file is the only route in.

QuickBooks Online: Transactions → Bank transactions → the dropdown arrow next to Link account → Upload from file, then pick which account the transactions belong to. On Online, give it your plain CSV first — Online reads CSVs natively, and we've had a report of a .qbo upload failing there while the CSV went in first time.

Your statements never leave your browser

The conversion runs as JavaScript on your own machine. Nothing is uploaded, nothing is stored, and there's no account to create. You can turn off your Wi-Fi after the page loads and it still works.

And you don't have to take our word for it. This page ships a Content Security Policy with connect-src 'none', which means your browser itself refuses to let this page make any network request at all — no fetch, no XHR, no beacon. Open your developer tools and check the Network tab while you convert a file: it stays empty. If we ever tried to send your data somewhere, the browser would block it before it left your machine.

That matters if you're a bookkeeper: your client's bank statements are about the most sensitive thing they'll ever hand you, and most converter tools ask you to upload them to a server.

Banks we've tested against

Your bank isn't on the list? Try it anyway. Nothing here is hardcoded per bank — the column layout is worked out from the file itself, so most formats go through. If yours doesn't, the page will tell you exactly which column it couldn't place. See what each of the six actually exports — column count, date format and the one thing about each that catches people out.

Going the other way

Already have a .qbo file and want to read what's in it? Our QBO to CSV converter does the reverse — drop in a .qbo, .ofx or .qfx file and get back a spreadsheet you can open in Excel. Same rules: free, no signup, nothing uploaded.

If what you need is something to read, file or send on rather than a spreadsheet, QBO to PDF renders the same file as a plain statement. It also reports whether the file is missing INTU.BID — the one tag we found QuickBooks actually checks when it refuses a .qbo.

Not importing into QuickBooks?

QBO is QuickBooks-only. If your software is something else, the same converter produces the format it wants: CSV to QFX for Quicken, CSV to OFX for GnuCash, Xero, Sage and most other accounting programs, or CSV to QIF for the older generation of tools.

Still on QuickBooks, but need the transactions posted straight to a named account instead of going through the bank feed? That's what CSV to IIF is for — QuickBooks Desktop only.

Questions

What is a QBO file?

It's Intuit's version of the OFX banking format — the same kind of file QuickBooks downloads when it connects to your bank directly. It's the format QuickBooks Desktop needs, because Desktop can't import a CSV at all. On QuickBooks Online, try your plain CSV first — Online reads CSVs natively, and we've had a report of a .qbo upload failing there while the CSV loaded first time.

Will importing the same statement twice create duplicates?

It shouldn't. Every transaction gets an ID derived from its date, amount and description, so the same transaction produces the same ID no matter which file it came from — that's what QuickBooks uses to spot a duplicate. Overlapping date ranges between two statements are fine.

My credit card statement shows purchases as positive numbers. Is that a problem?

No — that's normal for credit cards, and the opposite of how checking accounts report. We detect which convention your file uses and flip the signs when needed. The preview shows you which way it decided, and you can override it before downloading.

QuickBooks says "Wells Fargo" during import, but that's not my bank. Is something wrong?

No — that's expected, and it doesn't affect where your transactions go.

Every .qbo file carries a bank identifier, and QuickBooks only accepts files whose identifier is on its own list of supported institutions. Converters use a known-good one, which happens to display as Wells Fargo. It's only a label on the import screen. You still pick your real account in the wizard, and that's the account the transactions land in.

Does it work with QuickBooks Desktop?

Yes. Desktop is the main reason this exists — Intuit has been winding down bank feeds for Desktop users, and Desktop never accepted CSV in the first place. Import the file through File → Utilities → Import → Web Connect Files.

My CSV has no header row. Will it still work?

Yes. Some banks — Wells Fargo is the usual one — export statements with no header row at all, just data. The converter falls back to reading the shape of the columns themselves: which one parses as a date, which one is numeric, which one holds the longest text. You'll see what it decided in the preview before anything is downloaded.

What does the CSV to QBO conversion cost?

Nothing right now. Converting single files will stay free.