What is an OFX file?
By the Banking Converter editorial team
Published
An OFX file is a bank statement or transaction download in the Open Financial Exchange format, a specification created in 1997 by Microsoft, Intuit and CheckFree so that personal finance and accounting software could exchange data with banks. It contains account details, a date range, a list of transactions each with a unique id, and the ledger balance. Version 1.x files are SGML-like text; version 2.x files are XML.
What is inside
An OFX bank statement response has three layers: a sign-on block with the server date and status, a statement block identifying the account and currency, and the transaction list bounded by start and end dates. The example below is an abbreviated OFX 2.x document.
<?xml version="1.0" encoding="UTF-8"?>
<?OFX OFXHEADER="200" VERSION="220" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1><SONRS><STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
<DTSERVER>20260901120000.000[0:GMT]</DTSERVER><LANGUAGE>ENG</LANGUAGE></SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1</TRNUID>
<STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
<STMTRS>
<CURDEF>USD</CURDEF>
<BANKACCTFROM><BANKID>000000000</BANKID><ACCTID>****2210</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20260801120000[0:GMT]</DTSTART><DTEND>20260831120000[0:GMT]</DTEND>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260802120000[0:GMT]</DTPOSTED>
<TRNAMT>2500.00</TRNAMT><FITID>a91f…</FITID><NAME>PAYROLL DEPOSIT ACME DESIGN LLC</NAME></STMTTRN>
</BANKTRANLIST>
<LEDGERBAL><BALAMT>9300.63</BALAMT><DTASOF>20260831120000[0:GMT]</DTASOF></LEDGERBAL>
</STMTRS>
</STMTTRNRS></BANKMSGSRSV1>
</OFX>The fields that matter
| Tag | Meaning | Notes |
|---|---|---|
| CURDEF | Currency of all amounts | ISO 4217 code; OFX has no multi-currency rows |
| BANKID / ACCTID / ACCTTYPE | Routing number, account number, account type | ACCTTYPE is CHECKING, SAVINGS, MONEYMRKT or CREDITLINE |
| DTSTART / DTEND | Period covered | Importers use these to decide what is new |
| TRNTYPE | Transaction kind | CREDIT, DEBIT, CHECK, XFER, FEE, INT, DEP, PAYMENT and others |
| DTPOSTED | Posting date and time | YYYYMMDDHHMMSS with optional timezone; noon GMT avoids date shifts |
| TRNAMT | Signed amount | Positive in, negative out; charges negative on card accounts |
| FITID | Financial institution transaction id | Must be unique per account; importers use it to skip duplicates |
| NAME / MEMO | Short payee (32 chars) and longer memo (255 chars) | Many importers show NAME and hide MEMO |
| CHECKNUM | Check number | Present for CHECK transactions |
| LEDGERBAL | Balance as of a date | Used by importers to verify the account |
Versions 1.x and 2.x
- OFX 1.x (1997 to 2003): SGML-style text with a plain-text header. Tags need not be closed. QBO and QFX files are OFX 1.02 documents with Intuit additions.
- OFX 2.x (2003 onwards): well-formed XML with an XML processing-instruction header; 2.2 was published in 2016. Most modern importers read both.
- Since 2019 the specification is maintained by the Financial Data Exchange (FDX) after the OFX consortium joined it.
The OFX converter writes version 2.2 and validates the output by parsing it back with a reader that also understands 1.x.
Software that reads OFX
Quicken (as QFX), Microsoft Money (historically), GnuCash, Moneydance, Banktivity, YNAB (via import), Xero, Sage, MYOB, Wave and many bank feeds accept OFX statement files. QuickBooks prefers the QBO variant. See what is a QBO file and what is a QFX file.
Frequently asked questions
Can I open an OFX file in Excel?
Excel does not read OFX directly. Since it is text, you can open it in a text editor, but for a spreadsheet you should convert the statement to CSV or Excel instead.
Why does my OFX file have BANKID 000000000?
The routing number was not printed on the statement and the converter does not guess one. The placeholder fails the routing checksum, which keeps it from matching a real bank, and most importers accept it.
Other bank statement converters
About the author
The Banking Converter editorial team is the engineering group that builds and tests the conversion engine: the parsers for regional date and number formats, the reconciliation checks and the CSV, Excel, JSON, OFX and QBO exporters. Guides describe what the software does and what the formats require; they are not financial, legal or tax advice.