OFX → CSV · FREE ONLINE TOOL

OFX to CSV converter

OFX to CSV converter: extract OFX bank downloads into CSV rows with ISO dates and the account details on every line.

Click here to upload OFX filesor drag and drop here · browse your files · up to 20 files, 25 MB each
Account and export details

Only details required for the selected export are used. Account IDs and bank identifiers are included in bank-feed files.

Convert an OFX to CSV to open a bank download in a spreadsheet: upload the file and download a table with one transaction per row, ISO dates and the account details repeated on every line.

Supported input and export details

Bank and credit-card transactions are supported. Investment downloads and unsupported statement structures are rejected.

Set required export details in “Account and export details” before converting. The preview shows up to ten transactions and totals by account and currency. Opening or running balances are not inferred, and previewed transactions cannot be edited here. Download links expire after 24 hours.

Why convert OFX files to CSV

OFX is written for software, and a spreadsheet cannot read its tagged structure. Converting to CSV extracts the transaction blocks into rows, normalises the timestamps into plain dates, and keeps the account identifiers and the transaction IDs as columns so the data can be filtered, merged and de-duplicated in a spreadsheet.

SGML and XML both read

Older OFX 1 files with unclosed tags and OFX 2 XML are parsed the same way.

Timestamps normalised

DTPOSTED values with time and zone suffixes become plain YYYY-MM-DD dates.

Account columns added

Bank ID, account ID, account type and currency are repeated on every row so merged files stay filterable.

FITID retained

The bank's transaction identifier is kept in its own column for de-duplication.

Type codes spelled out

TRNTYPE values such as POS and XFER are written as readable words.

File removed after the job

The OFX file is removed from the server once the job exists; a checksum is all that is retained.

Who converts OFX to CSV

Spreadsheet-based bookkeeping

Bank downloads land in the ledger workbook without retyping.

Analysts

Transaction data from several accounts merges into one table with account columns to group by.

Accountants without OFX software

A client's download can be reviewed in Excel or Sheets.

Developers

OFX test files become readable tables during integration work.

OFX to CSV: how each field is mapped

OFX elements map directly onto CSV columns. The table shows each element and the column it becomes.

FieldIn OFXIn CSV
DateDTPOSTED in YYYYMMDD formOne text column; ISO format recommended
DescriptionNAME and MEMO elementsFree-text column, quoted when it contains commas
AmountSigned TRNAMTSigned Amount column, or Debit and Credit columns
BalanceLEDGERBAL block at statement closeOptional Balance column
ReferenceFITID unique ID plus CHECKNUMOptional Reference column
AccountBANKACCTFROM with routing and account IDsNot stored unless added as a column
CurrencyCURDEF elementNot stored unless added as a column
OFX to CSV conversion diagram showing date, description, amount, balance, reference, account and currency fields carried from OFX to CSV
OFX transaction elements become CSV columns; account context from the header is repeated on every row.

Converting OFX to CSV in practice

Reading tagged OFX transactions into a flat table

OFX comes in two dialects: the older SGML style with unclosed tags, and OFX 2 as well-formed XML. The converter reads both and pulls the same fields from each STMTTRN block: DTPOSTED, TRNAMT, NAME, MEMO, FITID, CHECKNUM and TRNTYPE. Dates are written as YYYY-MM-DD, and the time-zone suffix that some banks append to DTPOSTED is dropped after the date has been calculated in the statement's own zone.

Account details from the header — bank ID, account ID, account type and currency — are repeated on every row as extra columns so a CSV built from several OFX files can still be filtered by account. The FITID is kept in its own column because it is the only reliable key for de-duplicating downloads.

After converting, check that:

  • Row count matches the number of STMTTRN blocks
  • Dates were converted from the OFX timestamp without a day shift
  • FITID and account columns are present on every row

How to convert OFX to CSV in three steps

  1. 1Upload the OFXAdd one or more downloads. Files from different accounts are fine; the account columns keep them apart.
  2. 2Check the summaryEach file shows its period, transaction count and ledger balance before export.
  3. 3Download the CSVOpen it in a spreadsheet. Sort by the account column if several downloads were combined.

About OFX and CSV

An OFX download packages a statement as tagged elements: an account block, a date range, transaction blocks with identifiers, and a ledger balance. Banks vary in which optional elements they fill.

CSV keeps only what fits in a flat table, so the converter copies the account and balance context into columns rather than dropping it.

Specifications and vendor help for OFX and CSV: Financial Data Exchange, maintainer of the OFX standard · RFC 4180, the CSV specification

Questions about CSV conversion

Does the CSV keep the bank's transaction IDs?

Yes, in a FITID column, which is the reliable key for removing duplicates across downloads.

Why do dates lose their time component?

Most OFX timestamps are midnight in the bank's zone; the date is what matters for bookkeeping, so only the date is written.

Can I combine several OFX files?

Yes. Up to twenty files go into one CSV with account columns to distinguish them.

Are credit card downloads supported?

Yes. Card statements use the same transaction blocks and are handled identically.

Is this ofx to csv converter online free?

Yes. It runs in the browser and downloading the CSV is free.

How do I convert an OFX file to CSV that Excel opens cleanly?

Upload the OFX, check the summary, and download the CSV. Dates are written as YYYY-MM-DD and amounts as plain numbers, so Excel types them correctly.

Do I need Python to convert OFX to CSV?

No. Scripts that parse OFX to CSV in Python exist, but this converter does the same job in the browser without code, including both OFX dialects.