The Ultimate Glossary of Bank File Formats: CSV, QBO, OFX, and QIF Explained
If you've ever tried to import a bank statement into accounting software and been met with a cryptic error message, you already know the frustration firsthand. You've downloaded something from your bank's portal - but whether it's the right format for QuickBooks, Xero, or Sage is a different question entirely.
Bank file formats are one of those unsexy-but-critical details that sit quietly at the foundation of every smooth reconciliation workflow. Choose the wrong format and you're looking at failed imports, duplicate transactions, or hours of manual cleanup. Choose the right one and your data flows cleanly from bank to ledger with minimal friction.
This glossary breaks down every major bank statement file format - what it is, how it works, which software accepts it, and when to use it. Whether you're an accountant onboarding a new client, a bookkeeper setting up a workflow, or a small business owner trying to make sense of your bank's download options, this guide has you covered.
Why File Formats Matter for Bookkeeping
At their core, bank statement file formats are just structured ways of packaging transaction data. But "structured" is doing a lot of heavy lifting in that sentence - because the structure varies enormously between formats, and accounting software is surprisingly particular about which structures it will accept.
Think of it this way: your accounting software speaks a specific dialect. QBO, OFX, QIF, and CSV are each different dialects of the same general "transaction data" language. Some software is multilingual. Others are strict monoglots.
What Data Do These Files Contain?
Regardless of format, bank statement files typically carry the same core data points:
- Transaction date - when the transaction was posted
- Amount - debit or credit value
- Description / Memo - narrative provided by the bank
- Transaction type - transfer, payment, deposit, etc.
- Balance - running account balance (in some formats)
- Reference number - unique transaction identifier (in some formats)
The difference between formats lies in how this data is encoded, how strictly it's validated, and how much metadata is included. That encoding determines whether your software can read the file reliably - or whether it chokes.
The Cost of Getting It Wrong
A mismatched file format doesn't just cause an import error. It can lead to:
- Duplicate transactions if a partial import succeeds before failing
- Incorrectly mapped fields if you force a workaround
- Lost reconciliation history if transactions get re-imported
- Manual re-entry, which reintroduces human error
Getting the format right the first time isn't just a convenience - it's a data integrity issue.
CSV: The Universal (But Messy) Format
What Is a CSV File?
CSV stands for Comma-Separated Values. It's a plain-text file format where each row represents a transaction and each field (date, amount, description, etc.) is separated by a comma. Open any CSV in a text editor and you'll see something like this:
Date,Description,Amount,Balance
2024-01-15,AMAZON.COM,-45.99,2304.01
2024-01-16,DIRECT DEPOSIT,2500.00,4804.01
It's the most universally available format - virtually every bank on the planet offers CSV downloads - and it can be opened in Microsoft Excel, Google Sheets, or any spreadsheet application.
Why Accountants Both Love and Loathe CSV
CSV's universality is also its biggest weakness. Because there's no enforced standard, every bank formats its CSV slightly differently.
What varies between bank CSV exports:
| Element | Example Variation |
|---|---|
| Date format | MM/DD/YYYY vs. DD-MM-YYYY vs. YYYY-MM-DD |
| Amount columns | Single column (negative = debit) vs. separate Debit/Credit columns |
| Header row | Present or absent |
| Character encoding | UTF-8 vs. Windows-1252 (causes symbol errors) |
| Description field | Clean text vs. truncated codes |
This inconsistency means that even if your accounting software accepts CSV imports, you often need to manually map columns before importing - and that mapping may need to be redone every time the bank changes its export template.
Which Software Accepts CSV?
| Software | CSV Import |
|---|---|
| QuickBooks Online | Yes (with column mapping) |
| QuickBooks Desktop | Yes (with template setup) |
| Xero | Yes (with column mapping) |
| Sage 50 | Yes |
| FreshBooks | Yes |
| Wave | Yes |
When Should You Use CSV?
Use CSV when:
- No structured format (OFX, QBO, QIF) is available from your bank
- You need to import historical transactions that predate bank feeds
- You're converting statements from PDF or paper using a tool like StatementPro
- You need to review or edit transactions before importing
Pro tip: If you're importing CSV into QuickBooks or Xero, save your column mapping as a template the first time. It'll save significant time on future imports from the same bank.
OFX and QBO: The Gold Standard for QuickBooks and Xero
What Is an OFX File?
OFX stands for Open Financial Exchange. It's a structured data format developed in 1997 as a joint initiative by Microsoft, Intuit, and CheckFree to create a standardized language for financial data transfer between banks and software.
Unlike CSV, OFX has a defined schema. Every OFX file follows the same structure, which means accounting software can read it reliably without manual field mapping. An OFX file looks something like this (simplified):
<OFX>
<BANKMSGSR>
<STMTTRNRS>
<STMTRS>
<BANKTRANLIST>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20240115</DTPOSTED>
<TRNAMT>-45.99</TRNAMT>
<FITID>20240115001</FITID>
<MEMO>AMAZON.COM</MEMO>
</STMTTRN>
</BANKTRANLIST>
</STMTRS>
</STMTTRNRS>
</BANKMSGSR>
</OFX>
Key features of OFX:
- FITID (Financial Institution Transaction ID): A unique identifier per transaction that prevents duplicates during import
- Standardized date format: Always YYYYMMDD - no ambiguity
- Typed transactions: DEBIT, CREDIT, INT, DIV, FEE, etc.
- Account information: Bank routing/account numbers embedded in the file
What Is a QBO File?
Here's where a lot of people get confused: QBO is not a fundamentally different format from OFX. A QBO file is essentially OFX data with the .qbo file extension, specifically packaged for import into QuickBooks products.
The difference between QBO and OFX is primarily the file extension and minor structural conventions - not the underlying data format. Both use the OFX specification. QBO is OFX as recognized by QuickBooks.
In practice, this means:
- A
.qbofile will import cleanly into QuickBooks Desktop and QuickBooks Online - A
.ofxfile is typically used by Xero, Sage, and other non-Intuit platforms - Some software accepts both extensions interchangeably
Difference between QBO and OFX at a glance:
| Feature | QBO | OFX |
|---|---|---|
| Underlying standard | OFX specification | OFX specification |
| File extension | .qbo |
.ofx |
| Primary use | QuickBooks products | Xero, Sage, others |
| Duplicate prevention | Yes (FITID-based) | Yes (FITID-based) |
| Column mapping required | No | No |
| Widely available from banks | Moderate | Moderate |
Why OFX/QBO Is Preferred for Reconciliation
Reconciliation accuracy depends on two things: clean data and no duplicates. OFX/QBO delivers both.
The FITID field is the star here. When you import an OFX or QBO file, your accounting software checks each transaction's FITID against its existing records. If a transaction with that ID already exists, it's skipped. This means you can safely re-import a file without creating chaos in your ledger - something CSV simply cannot guarantee.
Which Software Accepts OFX and QBO?
| Software | QBO | OFX |
|---|---|---|
| QuickBooks Desktop | Native | Limited |
| QuickBooks Online | Native | Yes |
| Xero | Yes | Native |
| Sage 50 | Yes | Yes |
| Sage Business Cloud | No | Yes |
| MYOB | No | Yes |
| FreshBooks | No | No |
QIF: The Legacy Format You Still Need to Know
What Is a QIF File?
QIF stands for Quicken Interchange Format. It's the grandfather of personal finance file formats, developed by Intuit in the 1980s for use with Quicken software. For decades, QIF was the standard way to transfer financial data between banks and desktop software.
A QIF file uses a simple line-by-line structure:
!Type:Bank
D01/15/2024
T-45.99
MAMAZON.COM
^
D01/16/2024
T2500.00
MDIRECT DEPOSIT
^
Each transaction begins with a !Type declaration and ends with a ^ caret character. Fields are prefixed with single-letter codes: D for date, T for amount, M for memo.
The Problem with QIF
QIF has a critical limitation that eventually led to its replacement: it contains no unique transaction identifiers. There's no FITID equivalent. This makes duplicate detection during import essentially impossible.
QIF also has:
- Ambiguous date formats (MM/DD/YYYY vs DD/MM/YYYY with no standard)
- No account number data embedded in the file
- Limited transaction type information
Is QIF Still Used?
Yes - but narrowly. QIF persists primarily for:
- Quicken Desktop users (it remains the native import format)
- Legacy accounting software that predates OFX adoption
- Historical data migration from older systems
- Some credit union and community bank portals that haven't updated their export options
| Software | QIF Support |
|---|---|
| Quicken Desktop | Native |
| QuickBooks Desktop | Deprecated (removed in newer versions) |
| QuickBooks Online | No |
| Xero | No |
| Sage 50 | Yes (older versions) |
If you encounter a QIF file today, the most reliable workflow is to convert it to OFX or CSV before importing into modern software.
Quick Reference: Format Comparison Table
| Format | Full Name | Best For | Duplicate Prevention | Requires Mapping | Modern Support |
|---|---|---|---|---|---|
| CSV | Comma-Separated Values | Universal fallback, historical imports | No | Yes | Wide |
| OFX | Open Financial Exchange | Xero, Sage, MYOB | Yes (FITID) | No | Wide |
| QBO | QuickBooks Online (OFX variant) | QuickBooks products | Yes (FITID) | No | Wide |
| QIF | Quicken Interchange Format | Quicken, legacy software | No | No | Limited |
Which Format Should You Use?
Here's a practical decision framework:
Use QBO if: You're importing into any QuickBooks product (Desktop or Online). It's the most reliable option and fully supported.
Use OFX if: You're importing into Xero, Sage Business Cloud, MYOB, or any non-Intuit platform. It offers the same structural benefits as QBO without the Intuit-specific packaging.
Use CSV if: No structured format is available from your bank, or you need to review/edit data before importing. Expect to spend time on column mapping.
Use QIF if: You're using Quicken Desktop or working with legacy software that specifically requires it. Otherwise, avoid it - the lack of duplicate detection creates risk.
How StatementPro Handles Format Conversion
If your bank only provides PDF statements - or provides a format your software doesn't accept - conversion is the answer.
StatementPro is built specifically for accountants, bookkeepers, and tax preparers who need reliable, audit-ready output in the right format. Upload a PDF bank statement or an unsupported file format and export it as:
- QBO - for QuickBooks Desktop and Online
- OFX - for Xero, Sage, and MYOB
- CSV - for any software, with clean column formatting
Every conversion preserves transaction integrity, maintains correct date formatting, and produces files that import cleanly on the first attempt - no manual mapping required.
Frequently Asked Questions
What's the difference between QBO and OFX?
QBO and OFX use the same underlying Open Financial Exchange specification. The difference is the file extension (.qbo vs .ofx) and the target software. QBO is recognized by QuickBooks products; OFX is the standard used by Xero, Sage, MYOB, and others.
What is a QIF file used for?
A QIF (Quicken Interchange Format) file is a legacy financial data format originally developed for Quicken software in the 1980s. It's still used by Quicken Desktop and some older systems but has been largely replaced by OFX/QBO due to its lack of duplicate detection.
Can I import a CSV into QuickBooks?
Yes. QuickBooks Online and Desktop both accept CSV imports, but you'll need to map columns manually the first time. For more reliable imports without mapping, use QBO format when available.
Why does my bank statement import create duplicates?
Duplicate imports are most common with CSV and QIF files, which have no built-in transaction IDs. OFX and QBO files use a unique FITID field that prevents accounting software from importing the same transaction twice.
Which format does Xero prefer?
Xero works best with OFX files. It also accepts CSV, but OFX imports are more reliable and require no column mapping. Xero does not natively support QIF.
Need to convert a PDF bank statement or unsupported file format into QBO, OFX, or CSV? StatementPro handles the conversion in seconds - clean output, correct formatting, ready to import.