Convert a bank CSV to QBO or OFX

Runs entirely in your browser. Your file is never uploaded.

1. Load your CSV

Or paste CSV text

What the converter does

You give it the CSV your bank exports. It writes either of two files:

Both files have a stable transaction ID for every row, a statement date range, and the account details you enter. Nothing leaves your browser. Once the page has loaded, the conversion works with the network off.

Do you need a QBO file at all?

Check these first.

  1. Your bank's direct feed. If your bank connects to QuickBooks, that feed is the cleanest source and it is included in your subscription. A converted file is for banks that don't connect, for accounts that were closed, and for history older than the feed reaches.
  2. QuickBooks Online's own CSV upload. QuickBooks Online imports CSV directly, but it is strict about the layout: a three-column file (date, description, amount) or a four-column one (date, description, credit, debit), with a date format it recognizes. Many bank exports have extra columns, header blocks or signs it rejects. Converting to .qbo avoids that, and the transaction IDs let QuickBooks skip rows it has already seen.
  3. QuickBooks Desktop. Desktop imports bank transactions as Web Connect files, so the .qbo route is the usual one.

How it handles messy exports

Bank CSVs vary more than they should. The converter is tested against these cases on every build:

Transaction IDs and duplicates

Each transaction in an OFX file has an ID (FITID). QuickBooks remembers these IDs and skips any it has already imported. That is what makes importing overlapping date ranges safe. The ID has to meet two conditions:

Two cases still produce duplicates. A bank may change a description between exports, for example from "PENDING" to the posted text, so convert posted transactions only. And if your CSV has a bank transaction ID column, map it: when those IDs are present and unique, they are used as is.

What INTU.BID is

INTU.BID is Intuit's identifier for the bank that issued the file. QuickBooks Desktop checks it against its list of banks that support Web Connect, and can refuse a file whose ID it doesn't recognize. The default here is 3000, a value Desktop accepts and widely used for converted files. If you know your own bank's Intuit ID, enter that instead. QuickBooks Online is much less strict.

Limits

When a paid tool is worth it

This converter starts from a CSV. If you start from PDF statements, use the statement PDF to CSV tool first. It checks every row against the statement's running balance.

Pay for a tool when the free route stops being cheap:

Also available as Markdown.