Why OFX is the safest import format
A CSV can be read in many ways. Is 03/04/2026 March or April? Is a positive amount a deposit or a purchase? Is the third column the payee or a memo? Every import screen asks again, and a wrong answer means cleaning up dozens of transactions. An OFX file settles those questions once: dates are written as YYYYMMDD, amounts are signed from the account holder's side, and the account type is explicit.
What's inside the file
- An account block with the account type (checking, savings or credit card) and the account number you enter, so the importer can tell your accounts apart.
- A statement period taken from the first and last transaction, or from the dates you set in the review step.
- One transaction per row, with type (debit, credit, check), date, amount, a unique ID, the payee name and the full description as memo. Check numbers go to their own field.
- The ledger balance when the CSV provides one.
Importing into common programs
Xero
Open the bank account, choose Manage Account > Import a Statement, select the OFX file and import. Check the statement dates against what's already in Xero so you don't import the same period twice.
Wave
Go to Transactions, choose More > Upload a bank statement, select the file and pick the payment account.
GnuCash and Moneydance
Use File > Import > Import OFX/QFX (GnuCash) or File > Import (Moneydance), then match the file to an account. Both remember the match for the next import.
Before you convert
- Export the CSV straight from the bank and avoid re-saving it in a spreadsheet, which can rewrite dates.
- Convert one account at a time. Use the same account number for every file of that account so your software keeps them together.
- Check the sign of a few purchases in the review table. If a card export shows purchases as positive, flip all signs in one click.