Convert a bank or credit card CSV or Excel file to an OFX statement for Xero, Sage, FreeAgent or GnuCash. Columns detected, Debit and Credit combined, stable IDs. Free up to 100 rows.
Only have a PDF statement? Use the PDF statement converter.
Any bank, card or app export: CSV (comma, semicolon or tab), Excel .xlsx, OFX/QFX/QBO downloads or Quicken QIF exports.
We detect the date, description and amount (or debit/credit) columns and the date format. Change anything, flip signs, and preview the result.
Get .QBO for QuickBooks, .IIF for QuickBooks Desktop, .QIF for Quicken, a Xero CSV, an OFX file or a clean CSV. Same file, any format.
Xero, Sage Accounting, FreeAgent and GnuCash all import OFX statement files with no column mapping, while a bank CSV often needs editing first: separate Debit and Credit columns, a running balance, summary rows or the wrong date format. This converter reads the CSV the way it is, gives every transaction one signed amount and a stable transaction ID, and writes a standard OFX file.
One row of our sample bank CSV, with separate Debit and Credit columns and a running balance:
Date,Description,Debit,Credit,Balance
09/01/2026,ACH DEBIT GUSTO PAYROLL 0912,6420.18,,5998.18
becomes this transaction in the OFX file:
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260901120000<TRNAMT>-6420.18
<FITID>202609019989CD404B4200<NAME>ACH DEBIT GUSTO PAYROLL 0912
<MEMO>ACH DEBIT GUSTO PAYROLL 0912</STMTTRN>
| In the CSV | In the OFX file |
|---|---|
| Date, in the format the preview detected | DTPOSTED, the same date written at noon. Transactions are in date order. |
| Amount, or Debit and Credit | TRNAMT, one signed amount with two decimals. TRNTYPE is CREDIT for money in and DEBIT for money out. |
| Description | NAME cut to 32 characters, with the full text in MEMO. Accents become plain letters and & becomes "and", because the file is plain ASCII. |
| Running Balance column | The ending balance (LEDGERBAL), but only when the column matches every row. Otherwise 0.00, and the file says nothing about your real balance. |
| Account type | A bank statement (checking) or a credit card statement, as you chose in the preview. |
| Nothing (CSVs don't have them) | A transaction ID (FITID) made from the account, date, amount and description, and an account ID: the last 4 digits or nickname you type, or one made from the file's columns. Bank ID 999999999. |
The same transaction always gets the same ID when you convert it again, so programs that skip known IDs skip the repeats when two files from here overlap. A CSV carries no routing number, so the bank ID is the placeholder 999999999.
| Program | Where to import it |
|---|---|
| Xero | Accounting → Bank accounts → the account's menu icon (⋮) → Import a Statement. Xero lists OFX with QBO, QFX, QIF and CSV, and suggests OFX over CSV when you have the choice (Xero Central). |
| Sage Accounting | The bank statement import under Banking. Sage says OFX files upload without editing, and only the first bank account in a file is imported (Sage help). |
| FreeAgent | Banking → Bank Accounts → the account → Upload Statement. FreeAgent takes OFX, QIF and CSV, and a CSV has to be reformatted first (FreeAgent help). |
| GnuCash | File → Import → Import OFX/QFX transactions. Pick the account the first time; GnuCash remembers it for the next file from the same account (GnuCash manual). |
| QuickBooks | QuickBooks Online's Upload from file takes OFX (Intuit), but choose the .QBO output for QuickBooks: Desktop's Web Connect only reads .qbo files. On Desktop without Web Connect, use the .IIF. |
| Quicken | Use the QIF output for Quicken for Windows (File → File Import → QIF File). Quicken validates Web Connect files with its online service and says it doesn't support files made by third-party conversion software (Quicken), so we don't promise an OFX or QFX will open there. |
Import one file per account, into the matching bank or credit card account, and only for dates that aren't in the program yet.
| Problem | Fix |
|---|---|
| Payments show as spending (or the other way round) | Tick Flip signs in the preview, and for a card export choose Credit card as the account type. |
| Dates in the wrong month | The file uses day-first dates. Pick %d/%m/%Y as the date format in the preview before downloading. |
| Transactions imported twice | The file overlapped dates already imported from a bank feed or another file. Delete the extra copies and import only new dates next time. See duplicate transactions after importing. |
| The program's balance doesn't match the bank | Most programs work the balance out from the transactions you import, so a missing opening balance or a missing month shows up here. See how to find bank reconciliation discrepancies. |
Free for files up to 100 transactions, which covers a typical month of activity. Larger files (a year of catch-up, a client's full history) use 1 credit from the same $9 pack of 5 as our PDF statement converter, or unlimited on Pro at $19/month. The preview is always free.
Yes for files up to 100 transactions: no sign-up, no watermark. Bigger files (multi-month catch-up work) use 1 credit from the same $9 / 5-credit pack as our PDF converter, and the preview is always free.
Xero: Accounting → Bank accounts → the account's menu icon (⋮) → Import a Statement. Sage Accounting: its bank statement import under Banking (Sage says OFX files upload without editing). FreeAgent: Banking → Bank Accounts → the account → Upload Statement. GnuCash: File → Import → Import OFX/QFX. QuickBooks Online also takes an OFX under Upload from file, but for QuickBooks pick the .QBO output instead.
A date, a description and either one signed Amount column or separate Debit and Credit columns. We detect them automatically and you can change the mapping before downloading.
No. Files are processed in memory and deleted after 1 hour. We never use your data for AI training.
Yes. Click a sample button under the upload box. It opens a made-up export from a fictional bank in the same preview your own file gets, and every format is free to download, so you can test an import in a test or backup company file first. Don't import a sample into your real books.
Xero, Sage Accounting, FreeAgent and GnuCash import it as a bank statement, and QuickBooks Online's Upload from file takes OFX too. For QuickBooks, choose the .QBO output instead: it's the same data in Intuit's Web Connect format, and QuickBooks Desktop only reads .qbo files.
We don't promise that. Quicken validates Web Connect files with its online service, and its Web Connect help says it doesn't support files made by third-party conversion software. For Quicken for Windows, choose the QIF output and use File → File Import → QIF File.
No. A CSV doesn't contain it, so the file uses 999999999 as the bank ID and the last 4 digits of the account (or the nickname you type) as the account ID. Programs that remember accounts by ID, like GnuCash, ask you to pick the account the first time and remember it after that.
Yes. Upload the .xlsx here (first worksheet) and download the OFX. Separate Debit and Credit columns are combined into one signed amount.
Free converter →
Free converter →
Free converter →
Free converter →
Free converter →
Free converter →