SimpleBankConvertSimpleBankConvert home

QFX to CSV: Get Quicken Download Data into a Spreadsheet

By SimpleBankConvertPublished October 16, 2026

QFX to CSV means turning each transaction in a Quicken download into one spreadsheet row, with columns for date, payee, amount and ID. Excel cannot open a QFX file as a table on its own, so you either extract the fields by hand or use a converter. The result works in Xero, QuickBooks or any spreadsheet.

Why convert a QFX download to CSV?

You convert a QFX download to CSV because a CSV is the one format nearly every program accepts and every person can read. A QFX file is text tags written for Quicken, so it is awkward to check by eye and many programs other than Quicken will not take it.

A CSV lets you do things a QFX does not:

  • Import into Xero. Xero reads a statement CSV with set columns, so a QFX becomes usable there once it is a CSV. The layout is in the CSV columns Xero's statement import expects.
  • Check the numbers. Sort, filter and total the month in a spreadsheet. A QFX gives you none of that.
  • Share with someone who has no Quicken. An accountant, a partner or a client can open a CSV without special software.
  • Trim rows before QuickBooks Online. Intuit's page on uploading transactions manually to QuickBooks Online lists QFX as well as CSV for its bank upload, so Online can take the download as it is. A CSV helps when you want to check or cut rows first.

QFX is the file Quicken downloads through Web Connect. OFX is the open standard it is built on, and the two carry the same transaction tags. So everything below applies to an OFX file too, and a search for "OFX to CSV" has the same answer.

What a QFX file looks like inside

Open a QFX in a text editor and you see a header, then tagged lines. Each transaction sits in a group, like this example with made-up values:

<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260314
<TRNAMT>-412.80
<FITID>202603140001
<NAME>FLOUR SUPPLY CO
<MEMO>Invoice 2291
</STMTTRN>

That group is one future CSV row. Your job is to read the tags into columns. The same tags are explained at length in what a QBO file contains, since QBO uses the same layout.

Can Excel open a QFX file directly?

Excel can open a QFX file as plain text through its data import, but it does not understand the tags. You get every tag on its own line, so you must reshape that list into one row per transaction. Excel does not do this step for you.

Here is a reliable method, using Excel's text tools:

  1. Make a copy of the file and rename its extension from .qfx to .txt, so Excel treats it as text.
  2. Open Excel and choose Data, then From Text/CSV. Pick the file. Set the delimiter to "none" or a character that never appears, such as a tilde, so each line stays whole in one column.
  3. Delete the header lines above the first STMTTRN tag, and the closing lines after the last one.
  4. Split each line at the closing bracket. Use Text to Columns with ">" as the delimiter. The tag name lands in the first column and the value in the second.
  5. Reshape to rows. Each transaction is now six or seven lines tall. Use a Power Query step, a pivot or a short formula to move each tag's value into its own column, one row per transaction.
  6. Fix the date. Turn 20260314 into a real date with a formula such as DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)).

Google Sheets works the same way, though its import menu differs.

Tools that skip the reshaping

If step 5 sounds like too much, a QFX to CSV converter does it in one go. Free ones exist as websites and small programs. Look for one that:

  • shows you the output before you download it;
  • keeps the transaction ID and memo, not only date and amount;
  • states what it does with the file you upload.

A tool you run on your own machine keeps the file local, which matters for bank data. Always compare the row count and total against the original before you rely on the result.

QFX fields worth keeping as CSV columns

The QFX fields worth keeping as CSV columns are the date, the amount, the payee name, the memo and the transaction ID. A few others, such as the transaction type and check number, help in some cases. Dropping the ID is the mistake that hurts most later.

Here is a plan for which tag becomes which column. The values are examples.

QFX tag CSV column Example value Keep?
DTPOSTED Date 2026-03-14 Yes, convert to a real date
TRNAMT Amount -412.80 Yes, keep the sign
NAME Payee FLOUR SUPPLY CO Yes
MEMO Memo Invoice 2291 Yes, if present
FITID Transaction ID 202603140001 Yes, for duplicate checks
TRNTYPE Type DEBIT Optional
CHECKNUM Check number 1042 Only for checks

A two-row example of the finished CSV:

Date,Payee,Amount,Memo,Transaction ID
2026-03-14,FLOUR SUPPLY CO,-412.80,Invoice 2291,202603140001
2026-03-15,CUSTOMER PAYMENT,2400.00,,202603150001

Which columns each destination needs

The columns to keep depend on where the CSV goes:

  • Xero wants a date, an amount, and a payee and reference, in its own order. Rename and arrange your columns to match its template.
  • QuickBooks Online asks for either three columns (date, description, amount) or four (with separate money in and money out). Map the columns on its screen.
  • A spreadsheet check needs only date, payee and amount, plus the ID if you plan to look for duplicates.

If the CSV is bound for QuickBooks and you would rather skip column mapping, a CSV to QBO converter writes the Web Connect file for you.

Watch the sign and the date

QFX stores money out as a negative number, so keep that sign unless the destination wants two columns. Dates arrive as eight digits, and a spreadsheet may show them as one big number. Format the column as a date, or write the date as text in year-month-day order, which sorts correctly and cannot be misread.

Does a QFX to CSV file keep the running balance?

A QFX to CSV file usually does not keep a running balance, because a QFX file does not store one for each transaction. It stores the transactions and a single ending balance for the statement, so the per-row balance column from your bank site is not there.

The file has a ledger balance block near the end, with an amount and a date. That is one number. If you want a running balance column, you build it:

  1. Start from the opening balance. You may need it from your bank statement, since the QFX lists only the closing balance. Work it out as the closing balance minus the sum of all transactions in the file.
  2. In the first row, add the first amount to the opening balance.
  3. In each next row, add that row's amount to the balance above it.
  4. Check that the last row equals the closing balance in the file.

If the last row does not match, a transaction is missing or doubled, or the file covers only part of the period. The same check is used to confirm any converted statement.

Why the bank's balance column may differ

Your bank's online view may show a balance that includes pending items, or that is as of a different date. Treat the rebuilt column as a check on the file, and the bank's statement as the authority.

What if you combined overlapping QFX downloads?

If you stacked overlapping QFX downloads into one CSV, the same transactions appear more than once. Remove the repeats before you import, because Xero and QuickBooks may treat each copy as a new transaction.

Overlap is common. Downloading "last 30 days" every two weeks means each file shares half its dates with the one before it. The cure is the transaction ID.

Finding and removing the duplicates

  1. Put every file's rows in one sheet, with a column for the transaction ID.
  2. Sort by ID. In Excel, use Data, then Remove Duplicates, and tick the ID column only.
  3. If your IDs repeat across different banks or accounts, tick the account column as well, or two real transactions may collapse into one.
  4. Compare the new row count with the sum of the originals minus the overlap you expect.

Some banks reuse FITIDs, or issue ones that change between downloads. If the ID cannot be trusted, match on date, amount and payee together. Beware two real purchases of the same amount from the same payee on one day. Review those by hand and keep both when the statement shows two.

Keeping one account per CSV

Keep each account in its own file. Mixing a checking and a credit card in one CSV makes both the duplicates check and the balance check harder, and the import screens expect one account at a time.

If your source is a PDF instead

Some people reach for QFX only because the bank offers it. If you hold a PDF statement, there is a shorter route. SimpleBankConvert turns a PDF statement into a CSV or QBO file directly, so no QFX stage is involved. It is opening to early users, and you can add your name on the get started page. To read the result in Xero, the walkthrough in importing a bank statement into Xero covers the upload and the closing-balance check. And for the same extraction applied to a QuickBooks file, see pulling dates and amounts out of the QBO tags.

All posts in Import file formats