OFX: An OFX file is the banks' own interchange format.
Open Financial Exchange was published in 1997 by Microsoft, Intuit, and CheckFree so that a bank could hand a program a statement without either side agreeing on a spreadsheet layout first. It is still what Xero, Sage, Wave, GnuCash, and Moneydance would rather import than a CSV.
Runs in your browser · Nothing uploaded · No account
- Transactions, balances, and the account
- Two incompatible versions
- No column mapping
Export transactions
Choose the scope, format, fields, and column order.
Scope
Selected transactions (40)Exports only the currently selected rows.
Format
OFXA standard bank-data file.
Fixed field set
OFX/QuickBooks files always carry date, description, and signed amount.
Row order
Match current viewFields
Fixed by the OFX/QuickBooks format
Preview
1,284 matching transactions
| Date | Description | Amount |
|---|---|---|
| 2025-10-24 | STRIPE PAYOUT 4af2c9 | 4820.00 |
| 2025-10-23 | AWS EMEA SARL us-east-1 | -1204.00 |
| 2025-10-22 | WHOLE FOODS MKT #214 | -112.88 |
1,284 rows · 3 columns
Export OFXOne name, two file formats that do not parse alike.
OFX 1.x is SGML: tags are opened and never closed, and a strict XML parser rejects the whole document. OFX 2.x is real XML with closing tags and a declaration at the top. Both are called OFX, both use the .ofx extension, and a program written for one frequently cannot read the other. When an import fails with nothing more useful than a parse error, the version line in the header is the first thing to look at.
How it works
How to open an OFX file
- 1
Read the header
The first lines say which version you have: OFXHEADER:100 with VERSION:102 for the SGML generation, or an <?xml declaration followed by OFXHEADER="200" for the XML one.
- 2
Import it into your accounting tool
Xero takes OFX under its bank statement import, as do Sage, Wave, GnuCash, Moneydance, and most desktop ledgers. The import arrives as transactions against an account rather than as columns to map.
- 3
For a spreadsheet, convert it
Excel has no OFX importer. Convert to CSV or XLSX to get one row per transaction with dates and amounts in their own columns.
- 4
For Quicken or QuickBooks, add the right header
Quicken wants QFX and QuickBooks wants QBO. Both are this same document with Intuit identifiers added, so it is a conversion rather than a re-read.
What an OFX file carries
The account it belongs to
A bank id, an account number, and an account type sit above the transactions, so the importing program knows where the rows go without being told.
A unique id per transaction
Every transaction carries an FITID from the bank. Importing an overlapping file twice is recognised as a repeat rather than doubling your ledger.
The period and the balance
The statement block states the range it covers and the ledger balance at the end of it, which is what makes an automatic reconciliation possible at all.
Explicit dates and signed amounts
Dates are YYYYMMDD, and amounts are signed: negative out, positive in. Nothing is left to the reader's locale or to a guess about which column meant what.
A transaction type per row
DEBIT, CREDIT, CHECK, ATM, XFER, FEE, and the rest, so a program can treat a returned fee differently from a payment without parsing the description.
Version 1.x and 2.x are not interchangeable
SGML and XML are different enough that a parser built for one fails on the other. Converting between them is the fix; editing tags by hand rarely is.
The elements inside an OFX statement
What each block is for, reading from the top of the file down.
| Element | What it holds |
|---|---|
| OFXHEADER / VERSION | Which generation of the format the file is written in. |
| SONRS | Sign-on response: status, server date, and the institution. |
| BANKACCTFROM | Bank id, account number, and account type the statement covers. |
| BANKTRANLIST | The period covered, then one STMTTRN per transaction. |
| STMTTRN | Type, date posted, amount, FITID, name, and memo for a single transaction. |
| LEDGERBAL | Closing balance and the date it was taken, used to check the rows tie. |
| AVAILBAL | Available balance, where the bank bothers to send one. |
A QFX or QBO file is this same document with Intuit identifiers added above it, which is why converting between the three does not involve re-reading any transactions.
FAQ
Common questions
What is an OFX file?
An Open Financial Exchange file: a structured export of one account's transactions over one period, including the account details, a unique id per transaction, and the closing balance. Banks and accounting programs use it to move statement data without agreeing on a spreadsheet layout.
How do I open an OFX file?
Import it into an accounting tool that reads OFX, such as Xero, Sage, Wave, GnuCash, or Moneydance. To look inside it, open it in a text editor, since it is text. For a spreadsheet, convert it to CSV or Excel first.
Can Excel open an OFX file?
Not natively. Excel has no OFX importer, and opening the file directly shows you the markup rather than a table. Convert it to CSV or XLSX to get one row per transaction.
What is the difference between OFX and QBO?
A QBO file is an OFX document with an Intuit header identifying the bank to QuickBooks. QuickBooks requires that header and refuses plain OFX, while Xero, Sage, and GnuCash want the plain OFX and ignore the Intuit fields.
Why does my program say the OFX file is invalid?
Most often a version mismatch: OFX 1.x is SGML with unclosed tags and OFX 2.x is XML, and a reader built for one rejects the other. Check the header line before assuming the file is corrupt. Truncated downloads are the other common cause.
Is OFX still used?
Yes. Direct bank feeds have replaced it for some workflows, but OFX remains the file most accounting tools accept for a manual statement import, and it is still what many banks emit from their download screens.
Keep exploring
QIF Files
Quicken's oldest text format: what is inside one, and what still reads it.
QFX Files
Quicken's Web Connect file, and why a plain OFX will not do instead.
QBO Files
QuickBooks' Web Connect file, and the header that decides whether it imports.
IIF Files
QuickBooks Desktop's tab-delimited import, and the accounts it creates by accident.
Bank Statement Converter
What a converter has to get right, and what the file looks like when it does.
Read the file, then send it where it is going.
Open an OFX, QFX, QBO, or QIF file in the browser and save it as CSV, or convert a statement PDF straight to the format your ledger accepts.