CSVQBO / Practical guide
CSV to OFX: prepare a bank statement rather than rename a file
Build consistent transactions, obtain statement metadata and check an OFX export before trying an importer.
Check whether conversion is needed
CSV to OFX conversion changes a flat table into a structured statement with account information and transactions. Renaming the file cannot do that. First check the bank's available downloads for OFX, QFX or a format your destination already accepts. A native export or direct CSV mapping may avoid buying a converter. For a small file, a spreadsheet can prepare and check transaction data without an additional conversion charge, but saving CSV from the spreadsheet still does not create OFX. Confirm the format accepted by the target application before proceeding.
Normalize one account and currency
Create one row per transaction with a date, description and signed amount, or confirmed debit and credit fields. Keep balance summaries and report footers outside the transaction list. Select the decimal separator from the original bank export. A comma can separate thousands or decimals, so visually similar values can have different meanings. Verify the date order using an unambiguous transaction and retain a four-digit year. If several accounts or currencies share one spreadsheet, separate them before conversion rather than flattening unlike activity into a single statement account.
Obtain actual statement metadata
An OFX statement carries account identity, currency, account type and a ledger-balance snapshot. Use the actual balance at the last included transaction date. The activity sum only describes change over the selected period; without the opening balance it cannot establish the closing balance. Check whether the destination requires institution FID, organization or other authorized identifiers too. Do not assume that a bank routing number substitutes for all identity fields. Choosing credit card rather than checking affects the statement container and needs to match the receiving application's account.
Preserve repeat transactions deliberately
Transaction IDs can help an importer recognize previously seen data, but they do not replace a source comparison. Identical dates, descriptions and amounts can represent real repeated charges. Leave them in unless you establish they are duplicate export rows. If you rerun a conversion after changing text, dates or account identifiers, check how that affects IDs and the destination's duplicate handling. Keep the original CSV and a normalized review workbook so you can explain what changed. No conversion tool can determine from an isolated file which entries already exist in your ledger.
Test the target format and the imported result
Back up the destination, try a small period and check amounts, signs and dates before posting. OFX, QFX and QBO share a format family but are not interchangeable acceptance promises. QuickBooks Desktop's Web Connect file import reads only .qbo files, so OFX, QFX, CSV and QIF files are not accepted through that route; choose QBO output there instead. Intuit's US help does list .ofx among the files QuickBooks Online's Upload from file accepts, but any particular file still needs a test import. Review the normalized table independently and compare activity totals with the source. File generation does not activate an institution, certify a vendor profile or establish that the import service is supported.
Check the balance date with an example
Imagine an account opens the selected period at 900.00 and the included transactions are +150.00 and -40.00. Their signed sum is +110.00, while the ending ledger balance is 1,010.00. The OFX balance field describes the latter snapshot, not the activity sum. If you include only the first transaction, obtain the actual balance for that shorter scope instead of reusing the full-period closing value. Keep the snapshot date with the balance. Available funds, overdraft limits and credit limits are other quantities and must not be substituted merely because they appear near the statement balance.
Confirm the OFX dialect before generating a large file
A destination may document acceptance of a particular OFX syntax or a bank-supplied variant. Find that requirement before assuming all members of the format family work identically. CSVQBO emits OFX 1.02 SGML rather than an XML OFX 2.x document; changing the extension cannot change that syntax. Retain a generated test file with the source subset used to create it and record the destination's response. If the destination requires another format, choose that documented output or another workflow. Do not remove account fields or alter the format header by guesswork to silence an import error.
Where CSVQBO fits
CSVQBO's OFX output is OFX 1.02 SGML. It also generates QFX and QBO, and all three require bank ID, account ID, FID, organization, authorized Intuit BID, currency, account type and actual balance at the latest included date, even for plain OFX. Normalized CSV and XLSX need no such metadata. Upload one-account CSV or one-sheet XLSX, up to 15 MiB and 3,000 transactions. The account trial downloads the first ten transactions without a payment card; a longer file needs a fresh paid upload for complete output. Sources and results expire within 24 hours.
Try a real free conversion See one-time packs
Written by Zijian Xiao. Examples are synthetic. Review all extracted results against your original source file.