Export / reference

What is an OFX file? The Open Financial Exchange format, tag by tag

An OFX file is a plain-text file in the Open Financial Exchange format that carries bank or credit card transactions, the account they belong to and a balance, so accounting or budgeting software such as QuickBooks Online, Xero or GnuCash can import every transaction without anyone retyping it. Intuit, Microsoft and CheckFree created OFX in 1997. It is a data file for software, not a document like a PDF or a spreadsheet like Excel.

By Fulla LedgerUpdated 10 min read
A ribbon-tied statement packet beside a checked transaction list

At a glance

Inside a fictional OFX 1.0.2 statement file

Fictional example · a two-transaction OFX 1.0.2 file in the same shape Fulla Ledger exports

OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<DTSERVER>20261001120000.000[0:GMT]
<LANGUAGE>ENG
<FI>
<ORG>Example Community Bank
</FI>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<STMTRS>
<CURDEF>USD
<BANKACCTFROM>
<BANKID>000000000
<ACCTID>4821
<ACCTTYPE>CHECKING
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20260901120000.000[0:GMT]
<DTEND>20260930120000.000[0:GMT]
<STMTTRN>
<TRNTYPE>CREDIT
<DTPOSTED>20260903120000.000[0:GMT]
<TRNAMT>1250.00
<FITID>a1b2c3d4-0000-4000-8000-000000000001
<NAME>Example client invoice 1042
<MEMO>Example client invoice 1042
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260915120000.000[0:GMT]
<TRNAMT>-86.40
<FITID>a1b2c3d4-0000-4000-8000-000000000002
<NAME>Example office supply store
<MEMO>Example office supply store
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>3163.60
<DTASOF>20260930120000.000[0:GMT]
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>

The balance checks out: an opening balance of 2,000.00, plus 1,250.00, minus 86.40, gives the 3,163.60 in BALAMT. The file carries only the closing balance, so keep the statement to confirm the opening figure.

What the key tags in the example mean
TagMeaningIn the example
DATA, VERSIONSyntax and version: SGML, OFX 1.0.2OFXSGML, 102
DTSERVERWhen the file was producedOctober 1, 2026, 12:00 GMT
ORGInstitution name (optional)Example Community Bank
CURDEFDefault currency for amountsUSD
BANKIDBank identifier, the routing number for a US account; this example uses zeros as a placeholder000000000
ACCTID, ACCTTYPEAccount number and type4821, CHECKING
DTSTART, DTENDPeriod the transaction list coversSeptember 1 to 30, 2026
STMTTRNOne transactionTwo blocks
TRNTYPEKind of transaction; the amount’s sign decides in or outCREDIT, DEBIT
DTPOSTEDDate posted to the accountSeptember 3 and 15
TRNAMTSigned amount: positive in, negative out1,250.00 and −86.40
FITIDTransaction ID used to detect duplicate importsOne unique ID per row
NAME, MEMOPayee or description (NAME up to 32 characters) and extra detailExample client invoice 1042
BALAMT, DTASOFLedger balance and its date3,163.60 on September 30

What OFX stands for and where it came from

OFX stands for Open Financial Exchange. Intuit’s OFX support page describes it as a unified specification that financial institutions can adopt for exchanging financial data over the internet, created jointly by Intuit, Microsoft and CheckFree in early 1997. Intuit also calls OFX the language Quicken and QuickBooks speak when they request and receive financial information.

The specification is now developed under the Financial Data Exchange (FDX), the industry consortium, through its OFX Work Group. The current banking specification published there is version 2.3, dated October 2020.

Is OFX still used today?

Yes. The FDX OFX Work Group page says OFX has been the main direct way for banks to provide data to financial applications since 1997 and states that it is deployed at more than 7,000 financial institutions. That figure is FDX’s own.

Current software still imports it. QuickBooks Online lists .ofx among the file types for Upload from file, and Xero’s help recommends OFX over QFX, CSV or QuickBooks files when your bank offers it. GnuCash’s manual lists OFX and QFX among its import formats.

Which banks offer an OFX download changes over time and varies by account type, so check your own bank’s download or export menu. It is usually on the account’s transaction history page.

What is inside an OFX file

Open an OFX file in a text editor and you see a short header followed by nested tags. A bank statement download has three layers: a sign-on response, a statement response for one account, and inside it the transaction list and balance. The worked example on this page shows a complete small file.

  • Header: lines such as OFXHEADER:100, DATA:OFXSGML and VERSION:102 tell the importer which version and syntax follow.
  • Sign-on (SIGNONMSGSRSV1): a status code, the time the file was produced (DTSERVER), the language, and optionally the institution name (FI and ORG).
  • Account (BANKACCTFROM for bank accounts, CCACCTFROM for cards): the routing number (BANKID), the account number (ACCTID) and the account type, such as CHECKING or SAVINGS. CURDEF gives the default currency.
  • Transaction list (BANKTRANLIST): the period covered (DTSTART and DTEND) and one STMTTRN block per transaction.
  • Each STMTTRN: TRNTYPE (for example CREDIT, DEBIT, INT, FEE, SRVCHG, DEP, ATM, POS), DTPOSTED (the posted date), TRNAMT (the signed amount), FITID (the bank’s transaction ID), NAME (payee or description, up to 32 characters) and MEMO (extra detail).
  • Balances: LEDGERBAL gives the ledger balance and the date it applies to; AVAILBAL, when present, gives the available balance.

Amounts, dates and transaction IDs

The sign of TRNAMT decides whether money went in or out. The OFX 2.3 specification says TRNTYPE does not change a transaction’s effect on the balance: the sign of the amount does, and a DEBIT should carry a negative amount. So under the specification, a transaction marked CREDIT with a negative amount still reduces the balance.

Dates use the form YYYYMMDDHHMMSS.XXX with an optional time zone in square brackets. The specification’s own example, 19961005132200.124[-5:EST], is October 5, 1996, at 1:22 p.m. Eastern. A date-only value such as 20260902 is also allowed, because missing fields on the right take default values.

FITID is the transaction ID issued by the financial institution, and the specification says it is used to detect duplicate downloads. That is why importing the same OFX twice usually does not double your transactions, and why two different files that reuse an ID can make a real transaction disappear. The FITID guide covers this in detail.

OFX 1.x (SGML) versus OFX 2.x (XML)

Version 1 files, including the widely imported 1.0.2, use SGML. Their header is a block of NAME:VALUE lines, and leaf elements such as TRNAMT usually have no closing tag. Version 2.0 added the requirement of XML compliance, so a 2.x file starts with an XML declaration and an OFX processing instruction, and every element is closed.

The content is the same kind of data in both: the same aggregates and tag names. If one program rejects a file, check the header first. Some importers only read one of the two syntaxes, and a file that mixes them (an XML header with unclosed SGML elements, for example) can fail in strict parsers.

  • 1.x header begins: OFXHEADER:100, DATA:OFXSGML, VERSION:102.
  • 2.x header begins with an XML declaration, then an OFX processing instruction carrying OFXHEADER="200" and VERSION="220" (or another 2.x version).

Direct Connect, Web Connect and downloaded files

OFX is both a file format and a protocol. With Direct Connect, Quicken or QuickBooks Desktop talks to the bank’s OFX server and downloads transactions without you visiting the bank’s website. With Web Connect, you sign in to online banking and download a file yourself, then import it. Intuit says Web Connect files are .qbo for QuickBooks and .qfx for Quicken, and that for both connection types the bank needs a contract with Intuit or with its OFX or online banking provider.

A plain .ofx file is the open version of the downloaded file. FDX says the OFX specification is publicly available for any financial institution or vendor to implement, and Xero, QuickBooks Online’s Upload from file and GnuCash all list .ofx among the files they import.

How to open an OFX file

Which program you use depends on what you want to do with the transactions.

  • To look inside: open it in any text editor, such as Notepad on Windows or TextEdit on a Mac. It is plain text, so nothing is lost by viewing it.
  • QuickBooks Online: Bank transactions, then Link account, then Upload from file. Intuit lists .csv, .txt, .qbo and .ofx for this upload, with up to 1,000 lines per upload, and a file size limit of 350 KB.
  • Xero: Accounting, then Bank accounts, then Import a Statement on the account’s menu. Xero needs one file per bank account and skips transactions it has already imported from other files.
  • Quicken: its Web Connect troubleshooting page gives File, then File Import, then Web Connect (.QFX) File in Quicken for Windows, and File, then Import, then Bank or Brokerage File (OFX, QFX) on a Mac. Quicken validates downloaded files online, so a file from a bank without Web Connect support may not be accepted.
  • GnuCash: its manual lists OFX and QFX among the supported import formats.
  • Excel or Google Sheets: neither treats OFX as a table. Convert it to CSV first.

Converting OFX to CSV or Excel

Converting is reliable because the data is already labeled. Each STMTTRN becomes one row, and DTPOSTED, TRNAMT, NAME, MEMO, TRNTYPE and FITID become columns. Keep the signed amount in one column, and keep FITID so you can spot duplicates later.

The free OFX to CSV converter on this site reads the file in your browser, so the transactions are not uploaded, and it also reads QFX and QBO files. Open the CSV it produces in Excel or Google Sheets.

Creating an OFX file from a PDF statement

If your bank only gives you PDF statements, or the period you need is older than its download window, you have to extract the transactions first. Fulla Ledger converts a PDF bank statement into rows that you check against the highlighted source page, then exports the approved rows as OFX 1.0.2 for import into QuickBooks Online or Xero. It does not sync with either product, and it does not create QFX or QBO Web Connect files.

Whatever tool you use, check two things before importing a file made from a PDF: that the rows add up to the statement’s closing balance, and that every amount carries the right sign.

Common OFX import errors

Most failures fall into a few groups.

  • Nothing imports, or only some rows do: the FITIDs match transactions the program has already seen. Check whether the period overlaps an earlier import before editing anything.
  • The wrong program: QuickBooks Desktop’s Web Connect reads only .qbo files, and Quicken validates QFX files online, so a generic .ofx may be refused by both even when it is valid.
  • Too large: QuickBooks Online accepts up to 1,000 lines and 350 KB per upload. Split the date range.
  • Several accounts in one file: Xero needs a separate file for each bank account.
  • Signs reversed: money out appears as income. Check that debits carry a negative TRNAMT.
  • Broken text: an unescaped ampersand or a character outside the declared character set in NAME or MEMO can stop an SGML parser. Open the file in a text editor and look at the line the error mentions.

Questions about this guide

What does OFX stand for?

Open Financial Exchange. It is a specification for exchanging financial data that Intuit, Microsoft and CheckFree created in 1997 and that the Financial Data Exchange (FDX) consortium now maintains through its OFX Work Group.

Is an OFX file like a PDF?

No. A PDF is a page laid out for people to read. An OFX file is structured text for software to import: no layout, just tagged fields such as the date, amount and description of each transaction. Keep the PDF as the bank’s record and use the OFX for import.

Is OFX the same as Excel?

No. Excel works with spreadsheets made of rows and columns, while OFX is a nested, tagged format. You can convert an OFX file to CSV and open that in Excel, with one row per transaction.

Can I convert OFX to CSV?

Yes. Each transaction becomes a row with its date, amount, description and ID. The free OFX to CSV converter on this site does it in your browser without uploading the file, and it also reads QFX and QBO files.

Is it safe to edit an OFX file?

You can view it safely in any text editor. Editing is riskier: changing a FITID, a sign or the account number can create duplicates or send transactions to the wrong account. Work on a copy and keep the original download.

Why does QuickBooks Desktop not accept my OFX file?

Intuit says QuickBooks Desktop Web Connect reads only .qbo files downloaded from a bank that supports Web Connect. Ask your bank for a QuickBooks Web Connect download, or use QuickBooks Online, which accepts .ofx through Upload from file.

Use what you learned.