Skip to main content

Import transactions from QFX or OFX

Bring transactions from a Quicken/QFX or Open Financial Exchange (OFX) file downloaded from your bank.

Prerequisites

Steps

  1. In the left navigation, click Import, or open an account register and click Import to pre-select that account.
  2. In step File and account, choose the target account where imported rows should land.
  3. Drag a .qfx or .ofx file onto the drop zone, or click Choose file and select your bank download.
  4. Wait for the app to parse the file. A format badge shows QFX or OFX and the source filename.
  5. The wizard skips Column mapping — bank fields are read directly from the file.
  6. In Review staging, confirm which new rows to import:
    • New rows are accepted by default.
    • Uncheck any new row you want to exclude.
    • Duplicate rows are always skipped.
  7. Click Continue to open the Commit summary.
  8. Review counts, the duplicate log (if any), and click Commit.

Aborting an import

While the app is writing transactions (status Importing on Import → Import & sync activity), click Abort to stop. Transactions already written stay in the register; the import is marked Aborted.

If you close or quit the app while an import is writing, the next time you unlock the file that import is marked Aborted so it does not look like it is still running. Rows written before the app closed remain in the register.

Duplicate handling

Rows that match an existing transaction or a prior import for the same account are always skipped. Bank FITID values (when present) are included in the row fingerprint so overlapping downloads are detected reliably.

The import summary lists skipped duplicates for your records.

Expected result

  • The commit summary shows how many transactions were added
  • Accepted rows appear in that account’s register with correct dates, descriptions, and signed amounts
  • Expenses show as negative amounts; deposits as positive
  • Skipped duplicate rows do not appear in the register; they are listed in the import summary
  • Canceling before commit leaves the register unchanged
  • Aborting (or closing the app) during write keeps any transactions already imported and marks the run Aborted