BeltConvert

CSV to QBO Converter

Drop the CSV your bank exported, match the date, amount and description columns, and download a .qbo file for QuickBooks.

How to use

  1. Step 1Drop the CSV your bank exported. The date, amount and description columns are picked from its headers; check the three preview rows and fix any column that reads wrong.
  2. Step 2Enter the account details QuickBooks writes into the file: account type, routing number, account number, currency. Leave INTU.BID at 3000 unless you know your bank's id.
  3. Step 3Download the .qbo and import it: QuickBooks Online → Transactions → Bank transactions → Link account ▾ → Upload from file; QuickBooks Desktop → File → Utilities → Import → Web Connect Files.

Why a CSV is not enough and what a QBO adds

Almost every bank lets you download transactions as CSV, and QuickBooks Online can upload a CSV directly. QuickBooks Desktop cannot: its bank feeds read only Web Connect (.qbo) files. A QBO file is an OFX 1.02 statement, the format banks have exchanged since the 1990s, with two Intuit tags in the sign-on block (INTU.BID and INTU.USERID) and a strict ASCII-only body.

The QBO route has one advantage even in QuickBooks Online: every transaction carries a FITID, an id QuickBooks stores when the line is added or matched, and it will not import the same id twice. This converter derives the id from the date, amount, payee and memo, so converting the same CSV again and uploading it a second time adds nothing, while a CSV upload has no such protection.

The usual reason to do this at all is the 90-day limit: a live bank connection in QuickBooks only pulls the last ~90 days, and older months have to arrive as a file. Uploaded files have no such limit.

How the columns are read

The header row is found under any account details a bank prints above it, then each field is matched by its header name, and by the shape of the values when the file has no header (Wells Fargo's CSV, for example). Amounts may come as one signed column, as Debit and Credit columns, or as positive charges on a card statement (choose "money out positive" for Amex or Chase card exports). Dates like 03/04/2026 are read month-first unless a value in the file proves the day comes first.

CSV columnQBO fieldNotes
Date, Post Date, Transaction DateDTPOSTEDPosted date preferred when both exist; ISO, US, day-first and "Jan 15, 2026" forms are read
Amount, or Debit + CreditTRNAMTMoney in positive, money out negative; $, thousands separators, parentheses and CR/DR handled
Description, Payee, Merchant, NameNAME (32 characters)Longer names are cut; the full text goes to MEMO when the memo is empty
Memo, Notes, Extended descriptionMEMO (255 characters)Optional
Check #, Check number, ReferenceCHECKNUMA row with a check number and money out becomes TRNTYPE CHECK
Balance, Running balanceLEDGERBALThe balance on the latest row is written as the ending balance; without it the file says 0.00
CategoryNot carried: a QBO file has no categories, you assign them in the bank feed

The account details and INTU.BID

A QBO file names the account it belongs to: the routing number (BANKID) and account number (ACCTID) for bank accounts, the account number alone for credit cards. On the first import QuickBooks asks which of its accounts the file belongs to and remembers the pair, so use the same numbers every time. A wrong routing number does not stop the import, but the next file with different numbers is treated as a new account.

INTU.BID is Intuit's own id for the bank. QuickBooks compares it with its list of institutions that offer Web Connect and refuses a file whose id is missing or unknown. 3000 is Wells Fargo's id and the default free converters use; QuickBooks then shows "Wells Fargo" as the source, which only affects that label, since you choose the destination account yourself. To use your bank's own id, download any QBO or QFX file from the bank's website, open it in a text editor and copy the number after <INTU.BID>.

Questions and answers

Why does QuickBooks say the file is invalid or nothing was imported?

Three usual causes. The INTU.BID is not on QuickBooks' list: leave it at 3000. Every transaction id was imported before: QuickBooks skips ids it already stored, which is what happens when you upload the same file twice. Or the account numbers changed between files, so QuickBooks wants to link a new account; keep them the same.

Can I use this for a credit card statement?

Yes. Choose Credit card as the account type: the routing number is not needed, the file uses the credit-card message set QuickBooks expects, and charges must be negative. Card exports often list charges as positive, so pick "money out positive" under Amounts and check the preview signs.

What INTU.BID should I use?

3000 works for most imports. It only sets the bank name QuickBooks shows during import; the account is the one you pick. If QuickBooks Desktop rejects the bank, copy the id from a QBO or QFX file your own bank produces.

My dates or signs come out wrong. What do I change?

Under Columns: set the date order to day/month/year if your bank writes days first, and the amount convention to match the file (one signed column, debit and credit columns, or positive charges). The preview under the selects shows the first three rows exactly as they will be written.

Does the CSV leave my computer?

No. The file is read and the QBO written in your browser; nothing is uploaded. That also means the account numbers you type stay on your device (they are remembered in this browser for the next visit).