CSV to OFX and QIF: make your bank’s CSV importable
Your bank only gives you a CSV, and your program wants OFX or QIF. The columns are detected for you, and each transaction gets an ID that stays the same if you convert it again.
- 100% free
- No usage limits
- No sign-up
- Nothing uploaded: runs in your browser
No file at hand?
Statements
Columns of
Detected automatically. Change anything that looks wrong and the result updates.
Transactions
Output options
How to use it
- Drop your bank CSV or Excel file.
- Open “Columns” to check the mapping, and add the account number if the file does not include it.
- Download OFX or QIF. For credit cards, choose the account type first.
OFX or QIF?
OFX carries transaction IDs and a closing balance, so programs can detect duplicates. Choose it when your program accepts it. QIF is simpler and is still accepted by many personal finance programs, but it carries no IDs, so importing twice can create duplicates.
When it helps
- Importing into a program that does not accept CSV.
- Banks that have stopped offering OFX or QFX downloads.
- Bringing an Excel file of transactions into personal finance software.
Private by design
A statement shows your income, your rent and who you pay, so it should not need uploading to convert it. Here the file is read by code running on your device, and nothing is sent to a server. You can check it in your browser’s network panel.
Known limitations
- PDF statements are not read. Convert them to Excel first with the PDF tools and check the result, because PDF extraction can misread rows.
- A .qbo file is read but not written: QuickBooks Desktop requires an Intuit bank ID that cannot be validated here. Use OFX, or the 3-column CSV for QuickBooks Online.
- OFX requires a closing balance. If your source has none, the file contains the sum of the transactions, which is not your real balance.
- Investment transactions in OFX and QIF are not read. Split lines in QIF are kept as one transaction with its total.
- File size is limited by your device memory, not by any quota. The work runs on the page, so very large files can pause it for a moment.
Frequently asked questions
Is this CSV to OFX converter really free?
Yes. It is 100% free, with no usage limits, no account and no sign-up. There is no paid plan and no feature is locked.
Are my bank statements uploaded to a server?
No. Your files never leave your device: they are read and converted inside your browser. The page only downloads its own code and open-source libraries from this site. If you accept analytics cookies, Google Analytics receives anonymous usage data such as page views, never the contents or names of your files.
Will my program accept the file?
The OFX output follows version 1.02 and was checked with two independent open-source OFX readers. It has not been tested inside each accounting program, and some, especially QuickBooks Desktop, add requirements of their own. Try a small file first.
Can I create a QBO or QFX file?
Not at the moment. These formats depend on an institution ID assigned by Intuit, which cannot be validated here. Use OFX or QIF where your program accepts them. For QuickBooks Online, the 3-column CSV is usually the simplest.
What happens if I import the same transaction twice?
Each transaction gets a FITID built from its account, date, amount, description and reference, so converting the same data again gives the same ID. Programs that use the FITID to spot duplicates can therefore skip them.
How do I handle a credit card CSV?
Choose “Credit card” under Output options. If purchases appear as positive amounts, tick the option to invert the sign under Columns.
What do I put as the account number?
If the CSV has an account column it is used. If not, type a name or number under Columns. Use the same one every time so your program recognises the account.
Analytics: only if you accept cookies, the page loads Google Analytics (through Google Tag Manager) to count visits and see which tools are used. It never receives the contents or names of your files. You can change your choice at any time with “Cookie settings” at the bottom of the page.