OFX to CSV Converter: Convert OFX File to CSV Online (FREE)
Your bank wrote that .ofx for a program, not for a person. Open it in a spreadsheet and you get STMTTRN and DTPOSTED down column A where your transactions should be. This converter reads it the way the software would and hands back seven plain columns — date, description, amount, type, reference, memo and the bank's own transaction id. It all happens inside this tab; your statement is never sent anywhere.
Not the file you need?
Why Use Our OFX to CSV Converter Tool?
Seven columns, every time
Some converters drop a column when it happens to be empty, so the shape of the file changes with its contents. Here the same seven arrive every time, and the cheque number is kept out of the bank's internal id column.
Both OFX dialects open
OFX 1.x is SGML with no closing tags, 2.x is XML, and a tool built for one chokes on the other. That is why a file rejected elsewhere often opens here — both are read against the specification rather than guessed at.
Nothing is transmitted
A statement names your account, your balance and everyone you paid. A free OFX to CSV converter usually means a server somewhere holding all of that; this one is parsed by the page you are on, so there is no upload at all.
How to convert an OFX file to CSV online
Get the .ofx from your bank
Whatever your bank labels it — OFX, Microsoft Money or "Open Financial Exchange". Nothing needs renaming or re-saving first, which is all there is to how to convert OFX to CSV here.
Upload the OFX
Drop it on the box, or browse for it. Parsing happens in the page itself: each STMTTRN block is unpacked against the OFX specification and the rows appear on screen for you to check.
Choose the date order
One toggle is offered: month-first for the US, day-first for the UK, AU and EU, or ISO. OFX writes dates as bare digits, so your answer is what the spreadsheet reads. Then take the CSV.
The seven columns, and the tag each one comes from
Most converters tell you what they extract. This is the actual mapping, with real cells from a real statement, so you can see what survives before you spend a download finding out.
| CSV column | OFX tag | You get | What it carries |
|---|---|---|---|
| Date | DTPOSTED | 01/05/2026 | Eight digits in the file, written in the order you pick |
| Description | NAME | SAFEWAY #1234 | The payee. Falls back to MEMO when a bank sends no NAME |
| Amount | TRNAMT | -42.17 | One signed column — a negative is money out |
| Type | TRNTYPE | DEBIT | DEBIT, CREDIT, CHECK, ATM, POS and the rest |
| Reference | CHECKNUM | 1043 | The cheque or reference number, not an internal id |
| Memo | MEMO | Groceries | Kept apart from Description rather than merged into it |
| Transaction ID | FITID | 202601050001 | The bank's own identifier, for matching statements |
What makes an OFX awkward to read
A spreadsheet shows the markup, not the money
Double-click an .ofx and Excel does its best with a file it does not know: tags like STMTTRN and DTPOSTED land in cells, one per line, with the amounts scattered among them. Nothing is broken — the structure simply is not a table until something reads it.
The date carries no order with it
OFX writes a date as eight digits, sometimes with a timezone bolted on the end. There is no marker saying whether your spreadsheet should read it month-first or day-first, so the choice has to be made on the way out rather than found in the file.
Amounts arrive in one signed column
OFX records a single TRNAMT where a negative is money out. Importers built around a debit column and a credit column will need you to split it, which is a formula away once the rows are in a sheet but impossible while the file is still markup.
Balances are in there, but they are not rows
An OFX also states the ledger balance and the period the statement covers. Those belong to the statement rather than to any transaction, so they are not smuggled in as an extra line — a CSV with a stray balance row breaks every SUM you write over the column.
Why one .ofx converts elsewhere and another does not
There are two OFX documents wearing the same extension. Here is one transaction written both ways — the version on the left is what trips up tools built for XML.
OFX 1.x — SGML
<STMTTRN> <TRNTYPE>DEBIT <DTPOSTED>20260105 <TRNAMT>-42.17 <FITID>202601050001 <NAME>SAFEWAY #1234
No closing tags. A value ends at the line break, which is why an XML parser rejects the whole file.
OFX 2.x — XML
<STMTTRN> <TRNTYPE>DEBIT</TRNTYPE> <DTPOSTED>20260105</DTPOSTED> <TRNAMT>-42.17</TRNAMT> <FITID>202601050001</FITID> <NAME>SAFEWAY #1234</NAME> </STMTTRN>
Every element closed. Valid XML, and the dialect most generic tools assume you have.
When an OFX belongs in a spreadsheet
Your bank dropped CSV
Plenty of banks now offer OFX, QFX and QBO downloads and nothing plainer. Converting it yourself is quicker than asking them to add a format back.
Reconciling by hand
Sorting, filtering and a SUM across a column beats scrolling a register. Seven columns give you enough to pivot on without retyping a line.
Sending rows to a bookkeeper
A CSV opens in Excel, Google Sheets, Numbers or LibreOffice. Nobody needs the finance app you downloaded it from, or a licence for it.
Loading another accounts app
Most ledgers accept a CSV import and map the columns themselves. It is the format that travels when two programs share nothing else.
Archiving a closed account
Once the account is shut the download disappears with it. Plain text outlives the format, the bank's portal and the software that read it.
Checking before you import
The rows appear on screen before anything downloads, so you can see what the file holds rather than finding out inside your ledger.
Is CSV even the file you want?
Worth thirty seconds before you convert. CSV is right for a spreadsheet and for most import screens, but two common destinations want something else entirely.
You are here
A spreadsheet, or any app that imports CSV
Wants CSV — Excel, Google Sheets, Numbers, LibreOffice, and the import screen of most ledgers. This is the page you are on.
Different file
Quicken
Wants QFX — Quicken imports QFX and calls them "Quicken OFX files", which is why a plain .ofx is refused — and why renaming the extension does not fix it. A CSV is not the answer here either.
Different file
QuickBooks Desktop
Wants QBO — Web Connect expects a .qbo carrying an Intuit bank identifier. Our OFX to QBO page rewrites that in place.
Frequently Asked Questions — OFX to CSV Converter
QWhat is an OFX file, and why did my bank send one?
QHow do I open an OFX file in Excel?
QCan Excel open an OFX file directly?
QWhat is the difference between OFX and CSV?
QWhy won't Quicken import my OFX file?
QIs my bank data uploaded when I convert?
QWhich columns will the CSV have?
QDoes this work with OFX 2.x files?
QWhat if the file holds more than one account?
QCan I convert a QFX file here?
QShould I pick US or UK date order?
QWill it work on a Mac?
QCan I convert OFX to CSV in Python instead?
QWhat is the best OFX to CSV converter?
Other Conversion Formats
From bank download to spreadsheet
You picked the download your bank recommended and ended up with a file your spreadsheet will not open. Send it through the box above and seven columns come back, dated the way you asked. Converting OFX to CSV online takes one upload and costs nothing — an OFX to CSV converter online free of caps, working as an OFX file converter and OFX file viewer at once. The rows are on screen first, so if you only wanted to read the statement, you need never press download.