On this page
  1. What OFX is
  2. What is inside an OFX file
  3. Which programs import OFX
  4. How to open or convert an OFX file
  5. Making an OFX file from a PDF statement
  6. Sources

An OFX file (.ofx) is a bank or card transaction download in Open Financial Exchange format, the specification Intuit, Microsoft and CheckFree created jointly in early 1997 (Intuit (opens in a new tab)). Xero, QuickBooks Online and other software import it. To read one, open it in the free OFX viewer or turn it into a spreadsheet with OFX to CSV.

What OFX is

Intuit describes OFX as a unified specification that financial institutions can adopt to exchange financial data over the internet (Intuit (opens in a new tab)). It calls OFX the language Quicken and QuickBooks use with other software when they request and receive financial information.

OFX Banking Specification 2.3 is available from the Financial Data Exchange (FDX) (OFX specification (opens in a new tab)). Its change history says the data format moved from SGML to XML. OFX 2.0 and later require end tags on all elements and an XML-compliant header. OFX 1.0.2 required parsers to accept end tags but did not require software to send them.

So a 1.x file can leave tags unclosed, as in the example below, while a 2.x file closes every tag.

Check a QBO, QFX or OFX file

See whether a bank file is well formed before you import it: dates, amounts, transaction IDs and the account block. Free, no account, nothing stored.

What is inside an OFX file

The specification defines the fields you see when you open the file (OFX specification (opens in a new tab)):

  • FITID is an ID the bank assigns to each transaction. Its primary purpose is to let software detect duplicates. It must be unique within an account, but it need not be sequential, and it is not unique across banks.
  • TRNAMT is the amount, signed from the customer's point of view. A credit card payment is positive and a credit card purchase is negative.
  • TRNTYPE is the transaction type. It does not change the effect on the balance; only the sign of TRNAMT does.
  • DTPOSTED is the date the transaction was posted. OFX dates use the form YYYYMMDDHHMMSS.XXX [gmt offset[:tz name]], so 19961005132200.124[-5:EST] is October 5, 1996, at 1:22 p.m. Eastern Standard Time.
  • LEDGERBAL is the ledger balance block, with the amount (BALAMT) and the date it applies to (DTASOF).
  • Account blocks identify the account at the bank. CCACCTFROM identifies a credit card account.

A single card purchase looks like this in an OFX 1.x file (example values):

<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260914120000
<TRNAMT>-42.50
<FITID>20260914-0007
<NAME>EXAMPLE BOOKSHOP
</STMTTRN>

Which programs import OFX

Xero. Xero supports OFX, QFX, QIF, CSV and QuickBooks files, and recommends OFX where possible, and says OFX files import without changes to the bank's export file (Xero Central (opens in a new tab)). You need one file per bank account, and Xero excludes transactions it recognises as already imported from other files (Xero Central (opens in a new tab)).

QuickBooks Online. Intuit's US help lists .ofx among the file types you can upload from Bank transactions, with up to 1,000 lines per upload and one transaction per line (Intuit (opens in a new tab)). The same page suggests a QBO file.

QuickBooks Desktop. Desktop's Web Connect import reads only .qbo files (Intuit (opens in a new tab)). See QBO file for that format.

Quicken. Quicken's Windows import help (opens in a new tab) says:

"Quicken cannot import Excel (.xls), QuickBooks, PDF, or OFX files."

Quicken for Mac's help lists a menu item called Bank or Brokerage File (OFX, QFX) under File, then Import (Quicken (opens in a new tab)), while Quicken's Mac CSV page (opens in a new tab) also says it cannot import OFX files. Quicken's pages point in different directions, so for Quicken read QFX file as well.

How to open or convert an OFX file

Xero describes OFX, QFX and QuickBooks files as text file formats (Xero Central (opens in a new tab)). For something easier to read:

  • The OFX viewer shows the account, period, ledger balance and transaction count, then a table with date, type, name, memo and amount.
  • OFX to CSV gives one row per transaction with Date, Type, Amount, Name, Memo and FITID. Dates come out as YYYY-MM-DD, and amounts keep the file's sign.
  • The validator checks the OFX header, sign-on, statement and account blocks, currency, period, ledger balance, and each transaction's date, amount, type and FITID uniqueness.

These tools read the file in memory and do not keep it.

Making an OFX file from a PDF statement

When the bank gives you only a PDF, StatementLoom can build the OFX file (bank statement to OFX). It reads text PDF statements, not scans, and allows the download only once the opening balance plus every transaction equals the closing balance.

The export is OFX 1.02 (SGML). Checking and savings accounts go out as bank accounts (BANKACCTFROM), credit cards as card accounts (CCACCTFROM), and LEDGERBAL carries the statement's closing balance. Each transaction gets a FITID that stays the same if you export the same statement again. QBO and QFX exports add an Intuit sign-on field that plain OFX leaves out.

OFX downloads need a free account. The free converter gives Excel, CSV and Xero CSV without one.

Sources

Tools for this

Frequently asked questions

What is an OFX file?

It is a file of bank or card transactions in Open Financial Exchange format, a specification Intuit, Microsoft and CheckFree created jointly in 1997.

Which programs import OFX files?

Xero imports OFX and recommends it where the bank offers it, and QuickBooks Online accepts .ofx in a file upload. Quicken for Windows says it cannot import OFX files.

What is the difference between OFX 1.x and OFX 2.x?

Version 2 moved from SGML to XML and requires end tags on all elements and an XML-compliant header. Version 1.0.2 did not require software to send end tags.

Why are some amounts in an OFX file negative?

OFX signs amounts from the customer's point of view: on a credit card a purchase is negative and a payment is positive.

Check a QBO, QFX or OFX file

See whether a bank file is well formed before you import it: dates, amounts, transaction IDs and the account block. Free, no account, nothing stored.