packages/docs/docs/transactions/importing.md
There are various ways to get transactions into Actual.
Actual Budget supports linking your bank accounts to sync using SimpleFIN, GoCardless or Pluggy.ai.
There are also community projects that implement bank syncing.
A quick way to import transactions is to login to your bank's website and download a file.
Actual supports importing CSV, QIF, OFX, QFX and CAMT files. Your bank probably allows you to download one of these formats (OFX/QFX is recommended).
If your bank doesn't support downloading financial files, you can import a CSV file instead.
If desired, you can manually add transactions. This is the most work but allows you to manage accounts that may not work with any other importing mechanism.
Actual will automatically try to avoid duplicate transactions. This works best with OFX/QFX files since they provide rich data about transactions. They provide an id that we can use to avoid importing duplicates.
After checking the id, Actual will look for transactions around the same date, with the same amount, and with a similar payee. If it thinks the transaction already exists, it will avoid creating a duplicate. This means you can manually enter a transaction, and later it will be matched when you import it from a file.
It will always favor the imported transaction. If it matches a manually-entered transaction, it will update the date to match the imported transaction. Keeping dates in sync with your bank is important as it allows you to compare the balance at any point in time with your bank.
When "Merge with existing transactions" is enabled, a Reimport deleted transactions checkbox is also available. When checked (the default for file imports), any transactions that were previously imported and then deleted will be reimported. Disable this option if you do not want deleted transactions to reappear during import.
:::note
The API defaults reimportDeleted to true for backward compatibility. If you are importing via the API and want to skip deleted transactions, pass reimportDeleted: false explicitly.
:::