Skip to content

OFX to CSV

Convert an OFX bank or credit-card statement to CSV with Date, Amount, Type, Name, Memo, and FITID columns. Parses unclosed SGML tags in your browser.

What’s inside an OFX file anyway?

Your bank lets you download a statement, you pick OFX, and you end up with a file Excel flat-out refuses to open. Annoying. OFX (Open Financial Exchange) is the format Quicken, Money, and dozens of accounting apps speak to each other. It’s great for software, terrible for a human staring at it.

Paste the contents here and every transaction drops into a row. Six columns: Date, Amount, Type, Name/Payee, Memo, and FITID. From there it’s a normal spreadsheet. Sort by amount, filter the debits, sum a category, or feed it into whatever bookkeeping tool actually wants CSV.

The two flavors of OFX, and why they trip up parsers

Here’s the catch most converters miss. There are two dialects, and they look different.

Older statements (OFX 1.x) are SGML. Leaf tags never close:

<TRNAMT>-12.40
<NAME>Blue Bottle Coffee

The value just runs until the next tag starts. Newer ones (OFX 2.x) are proper XML and close everything: <TRNAMT>-12.40</TRNAMT>. Banks ship both, sometimes in the same .qfx download. This parser reads each field by grabbing whatever sits between the opening tag and either its closing tag or the next <. So both shapes come out the same.

It also decodes the SGML entities. &amp; turns back into &, &lt; into <, numeric references like &#233; into the actual character. A memo that reads Card purchase &amp; tip in the raw file shows up as Card purchase & tip in your CSV.

How each transaction gets read

The parser walks the file looking for <STMTTRN> blocks, which is where banks wrap one transaction. Inside each block it pulls six fields:

  • DTPOSTED becomes the Date. A value like 20260503 reads as 2026-05-03. If it carries a time and a [-5:EST] style timezone bracket, the time comes through too, and a [0:GMT] offset gets labeled UTC.
  • TRNAMT is the Amount, signed. Debits stay negative, credits positive, exactly as the bank wrote them.
  • TRNTYPE is the Type: DEBIT, CREDIT, CHECK, FEE, INT, and so on.
  • NAME (or PAYEE when present) becomes the Name/Payee column.
  • MEMO is the free-text note, often the full merchant string or a check description.
  • FITID is the bank’s unique ID for that transaction. Handy for dedup when you’re merging months.

Missing fields don’t break anything. If a transaction has no memo, that cell is just blank and your columns stay aligned.

The CSV it hands back

Output follows RFC 4180. Any field holding a comma, a quote, or a line break gets wrapped in double quotes, and inner quotes are doubled. That’s what stops a merchant name like Whole Foods Market #221, Austin from splitting into two columns. Rows end with CRLF, which is what Excel expects on import.

Hit Download for a transactions.csv, or copy the text straight into a sheet. Nothing uploads. The parsing runs in your browser, which matters here since a statement is about as sensitive as a file gets.

FAQ

Does it work with .qfx files from Quicken?

Yep. QFX is OFX with a couple of Intuit-specific tags bolted on. The transaction blocks are identical, so paste the contents and it parses fine.

Why is my amount showing as negative?

That’s straight from the bank. OFX records spending as a negative TRNAMT and deposits as positive. The converter doesn’t flip signs, so a -12.40 purchase stays -12.40.

What’s the FITID column for?

It’s the bank’s unique fingerprint for each transaction. If you import two overlapping statements, matching on FITID is how you drop the duplicates instead of double-counting.

My file won’t open in Excel directly. Can I just paste it here?

That’s the idea. Open the OFX in any text editor, copy everything, paste it into the input box. You don’t need a clean file or a specific extension.

Does it handle both the old and new OFX versions?

It does. Unclosed SGML tags from OFX 1.x and fully-closed XML tags from OFX 2.x both parse correctly, including files that mix conventions.

converter ofx csv finance bank-statement

Related Tools

More in Converter Tools