How to Import Bank Transactions into Moneydance (OFX, QFX, CSV)

Jul 23, 2026

Convert your bank statement to OFX now

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload your bank statement

Extract:
|
|

TL;DR: Moneydance imports bank transactions from OFX, QFX, QIF and CSV files through File then Import. Choose OFX when you have the choice, because it carries a unique ID per transaction that lets Moneydance detect duplicates reliably, which QIF and CSV cannot do. Open the account register first so the import lands in the right account, then review the proposed transactions in the confirmation screen before accepting them.

Which file format should you import into Moneydance?

Moneydance reads four formats and they are not equally good. The differences matter most when you import regularly, because they decide whether you spend time cleaning up duplicates later.

FormatDuplicate detectionSetup per importBest when
OFXReliable, uses the FITID per transactionNoneYour default choice for any regular import
QFXReliable, same structure as OFXNoneYour bank only offers the Quicken download
QIFWeak, no transaction ID existsDate format selectionMigrating history out of older software
CSVWeak, matched on date and amount onlyColumn mapping every timeNothing else is available from the bank

The column that decides it is duplicate detection. An OFX or QFX file gives every transaction a FITID, a unique identifier the bank assigns and never reuses. Moneydance stores it, so if you import an overlapping date range next month it knows exactly which transactions it has already seen. QIF and CSV have no such field, so matching falls back to comparing dates and amounts, which gets confused the moment you have two identical coffee purchases on the same day.

How to import an OFX or QFX file into Moneydance

Open your Moneydance file first, and open the register for the account you are importing into. Moneydance uses the active account as the default target, and starting from the right register removes one place to go wrong.

  1. Select File, then Import, and choose the OFX/QFX option.
  2. Browse to the downloaded file and select it.
  3. Confirm the target account when Moneydance asks. If the file contains account details that match an existing account, it will suggest that one.
  4. Review the list of transactions Moneydance proposes to add. Anything it believes is already in your register is flagged rather than added.
  5. Accept the import, then check the resulting balance against the closing balance on the statement.

That last step is the one people skip and it is the only real verification you get. If the register balance after import equals the statement closing balance, the import was complete and correctly signed. If it is off, the difference usually tells you what happened: a gap equal to exactly one transaction means a line was skipped, and a gap that is double a transaction amount means one came in with the wrong sign.

How to import a CSV file into Moneydance

CSV import takes an extra step because a CSV does not describe itself. Moneydance has no way to know which column holds the date until you tell it, so it opens a mapping screen.

  1. Select File, then Import, and choose the CSV option.
  2. Pick the file, then map each column: date, description, and amount at minimum.
  3. Set the date format to match your file. US bank exports are usually MM/DD/YYYY, but this is worth checking rather than assuming.
  4. If your bank uses separate debit and credit columns instead of one signed amount column, map both so directions come out right.
  5. Preview the parsed rows, confirm the target account, and import.

Save the mapping if Moneydance offers to. Bank CSV layouts are stable, so the same mapping will work every month, and reusing it removes the most error prone part of the process.

Why won't my file import into Moneydance?

Most failures come down to a small number of causes, and they are quick to work through.

The file imports nothing at all. Open it in a text editor. An OFX should contain STMTTRN blocks; if the transaction section is empty, the download itself was empty, often because the date range you requested had no activity.

Every amount is positive. The file was written without signed amounts. A valid OFX puts a minus sign on debit TRNAMT values, and a converter that skips that produces a file which imports but never reconciles.

Dates land in the wrong year or month. With CSV this is the date format setting on the mapping screen. With OFX it means the DTPOSTED values are malformed, which points back to whatever produced the file.

Moneydance refuses the QFX. Some QFX files carry Intuit Web Connect tags that non Quicken software handles inconsistently. Getting the same transactions as a plain OFX sidesteps the problem entirely.

Everything imported twice. You imported a QIF or CSV covering a range you had already loaded. Without a transaction ID there was nothing for Moneydance to match against. Undo it, and switch to OFX for future imports.

What if your bank does not offer OFX or QFX?

This is increasingly common. Plenty of US banks have quietly dropped the personal finance download formats and now offer only CSV, or only a PDF statement. That does not force you onto CSV import forever.

If you have a CSV, converting it to OFX first gets you the format Moneydance handles best, complete with the transaction IDs that make duplicate detection work. The CSV to OFX converter maps your columns once and writes a proper OFX file. If all you have is the PDF statement, the bank statement to OFX converter reads it directly and produces the same thing without a spreadsheet in the middle.

Either route means you map columns or check the extraction once per statement instead of configuring a CSV import every single month, and you get proper duplicate handling as a side effect.

Does Moneydance connect to banks directly?

It can, through Direct Connect and its own bank connection setup, but coverage depends entirely on whether your bank still supports the protocol and whether it charges for it. Some US banks support Direct Connect for third party software at no cost, some charge a monthly fee, and a growing number have retired it.

File import is the fallback that always works, and for a lot of Moneydance users it is not a fallback at all but the normal routine. There is nothing wrong with that. A monthly import of a clean OFX takes a couple of minutes and does not break when a bank changes its connection setup.

Keeping the register clean after import

A few habits keep imports from turning into cleanup work.

Import in chronological order and keep overlaps small. If the last import ended 30 June, start the next at 1 July.

Reconcile after every import rather than every few months. Catching a discrepancy against one statement is easy; catching it against six is not.

Let Moneydance's automatic categorization learn. It applies rules based on how you categorized similar descriptions before, so correcting a category once tends to fix it for every future import of that payee. For business spending where receipts need matching to card transactions rather than just categorizing, that is usually the point to hand the job to software that reads receipts and categorizes the spending and keep Moneydance for the ledger itself.

Check the closing balance every time. It is the only test that proves an import was complete.

The short version

Import into Moneydance through File then Import, with the destination register already open. Choose OFX whenever you can, because the FITID it carries is what makes duplicate detection dependable, and fall back to QFX, then QIF, then CSV only when nothing better is on offer. If your bank has stopped providing OFX, converting a CSV or the PDF statement into one is a small step that permanently improves every import that follows. Users coming from other software will find the same logic applies there, and the differences between importing into Quicken are mostly about which variant of the same OFX format each program prefers.