OFX to CSV converter (QFX and QBO too)

Choose an OFX, QFX or QBO file from your bank to get a CSV with one row per transaction, ready to open in Excel or Google Sheets. It’s free and needs no account.

Bank and credit card statements, OFX 1.x and 2.x, several accounts in one file.

A forest-green workbook and clipped statement pages on a sunlit desk

Convert a file

Your file is read in this browser tab and never uploaded. The CSV is built here too, and nothing is saved once you clear the result or close the tab.

Or drag the file onto this box. Files ending in .ofx, .qfx, .qbo or .xml, up to 10 MB.

How to convert OFX to CSV

  1. Download the transactions from your bank’s website as an OFX, QFX or QBO file for the dates you need. Quicken’s help calls the QFX download Web Connect.
  2. Choose the file above or drag it onto the box. It is read in this tab.
  3. Check the summary: the transaction count, the period and the ledger balance should match what your bank shows for the same dates.
  4. Download the CSV and open it in Excel, Google Sheets or Numbers.

What the CSV contains

One row per transaction, in the order the file lists them, with a header row. Fields are separated by commas and quoted where needed (RFC 4180), and the file is UTF-8.

Each CSV column and the OFX element it comes from
CSV columnOFX elementWhat you get
DateDTPOSTEDThe posting date as written in the file, as YYYY-MM-DD. A time and time zone are dropped without shifting the day.
AmountTRNAMTA signed number with a dot decimal and no currency symbol. Negative is money out of the account. A decimal comma becomes a dot.
TypeTRNTYPEThe bank’s type, such as DEBIT, CREDIT, CHECK, POS, FEE or INT. The OFX specification says the sign of the amount, not the type, shows the effect on the balance.
NameNAME, or the name inside PAYEEThe payee or description. The specification limits NAME to 32 characters, so check Memo when a name looks cut off.
MemoMEMOExtra detail, when the bank sends it.
Check numberCHECKNUM, else REFNUMThe specification describes CHECKNUM as a check or other reference number.
Transaction IDFITIDThe bank’s ID for the transaction, which the specification says is used to detect duplicate downloads.
AccountACCTIDOnly the last four characters, as ****1234. The full account number is not copied into the CSV.
CurrencyCURDEFThe statement’s default currency, such as USD or CAD.

Fictional example · one card purchase before and after

In the OFX file
<STMTTRN>
<TRNTYPE>POS
<DTPOSTED>20260131230000.000[-5:EST]
<TRNAMT>-19.99
<FITID>202601310042
<NAME>BEN &amp; JERRY'S
<MEMO>Ice cream
</STMTTRN>
In the CSV
Date,Amount,Type,Name,Memo,Check number,Transaction ID,Account,Currency
2026-01-31,-19.99,POS,BEN & JERRY'S,Ice cream,,202601310042,****4321,USD

The purchase posted at 11 pm Eastern time on January 31. Converting that moment to UTC would give February 1, so the converter keeps the date the bank wrote. The entity &amp; becomes a plain ampersand, and the account number becomes its last four digits.

OFX, QFX and QBO files

OFX (Open Financial Exchange) is an open standard for exchanging financial data between financial institutions and financial applications. Microsoft, Intuit and CheckFree announced it in 1997, and the Financial Data Exchange OFX Work Group publishes the specification today. What is an OFX file?

OFX 1.x files are SGML: a plain text header such as OFXHEADER:100, then values that usually have no closing tags. OFX 2.x files are XML, with an OFX processing instruction and closing tags on every element. The converter reads both, in upper or lower case, with Windows or Unix line endings.

QFX is the file Quicken imports. Quicken’s help says QFX stands for Quicken File eXchange and that Quicken calls this way of downloading Web Connect. What is a QFX file?

QBO is the transaction file QuickBooks Online suggests for manual uploads; Intuit’s upload guide lists QBO, QFX and CSV files. What is a QBO file?

This converter reads the statement elements inside the file, not the file name, so the extension does not change the result.

Open the CSV in Excel

  • Quickest: double-click the file or use File, then Open. Microsoft says Excel opens a .csv file directly in a new workbook and uses your default data format settings to read each column.
  • More control: on the Data tab, select From Text/CSV. The preview lets you change the delimiter, and Transform Data opens the rows in Power Query so you can edit them before loading.
  • Accents: the CSV is UTF-8 with a byte order mark. Microsoft notes that Excel opens a UTF-8 CSV normally when it was saved with one, so a name like Café keeps its accent.
  • Leading zeros: if a check number or transaction ID starts with zeros, use the Text Import Wizard and set that column to Text. Microsoft suggests renaming the file from .csv to .txt before opening it, which starts the wizard.
  • Size: Microsoft says Excel imports up to 1,048,576 rows, far more than a 10 MB OFX file can hold.

Check the converted rows

  • Compare the transaction count and period in the summary with your bank’s website for the same dates.
  • If the download covers a whole statement period, the opening balance plus the total of the Amount column should equal the ledger balance shown above. The balance checker does that arithmetic.
  • When you combine downloads with overlapping dates, remove rows whose Transaction ID repeats within the same account.
  • On a credit card file, purchases should be negative and payments positive, as the OFX specification describes.

Only have the PDF statement?

Banks often offer a PDF for older periods instead of a download. Fulla converts a PDF bank statement to CSV, XLSX or OFX after you review the rows against the source page. One page is free every 24 hours without an account.

Convert a PDF statement

Questions about converting OFX files

Is my OFX file uploaded anywhere?

No. The file is read with JavaScript in this browser tab and the CSV is built in the same tab. The page sends no request that contains the file or its transactions, and nothing is saved once you clear the result or close the tab. You can confirm this in your browser’s developer tools: the Network tab shows no request carrying the file when you choose it.

Why convert an OFX file to CSV instead of opening it directly?

An OFX file stores each transaction as a block of tagged values, such as TRNTYPE, DTPOSTED, TRNAMT, FITID and NAME, rather than as a row. A CSV puts each transaction on one row under named columns, which is what spreadsheets, budgeting templates and many import screens expect.

Why are some amounts negative?

The sign comes straight from the file. The OFX specification says statement transactions are signed by how they affect the account, so a DEBIT has a negative amount, and from the customer’s point of view a credit card purchase is negative while a card payment is positive. The converter never flips a sign.

How are dates and time zones handled?

OFX dates look like 20260131230000.000[-5:EST]: the date, an optional time, and an optional time zone offset. The converter keeps the calendar date written in the file and outputs it as 2026-01-31. It does not convert to UTC, because that would move a late evening transaction to the next day.

Can I upload the CSV to QuickBooks Online?

You may not need to. Intuit’s guide to manually uploading transactions lists QBO, QFX and CSV files and suggests a QBO file, so a QBO or QFX file from your bank can be uploaded without converting it. If you use the CSV, Intuit asks for either 3 columns (Date, Description, Amount) or 4 columns (Date, Description, Credit, Debit) and a file of 350 KB or less. Delete the other columns and rename Name to Description first.

Does it work with investment or brokerage downloads?

No. Investment statements use their own OFX elements, such as stock buys and sells, instead of the bank statement transactions this converter reads. If a file holds only an investment statement, the converter says so instead of producing an empty CSV. If it holds bank or card statements as well, those are converted and the investment part is skipped.

Why does the Account column show only four digits?

Spreadsheets get emailed, shared and kept for years, so the CSV carries only the last four characters of the account number, written as ****1234. That is enough to tell accounts apart in a file that holds several of them.

Sources