Skip to content

Bank Sync

Actual Budget connects to your bank. Actual Bench can schedule the existing Actual bank sync and report its result for each account. It does not connect to your bank, store bank credentials, or add a bank provider.

Set one up from Tools → Automations → New automation → Bank sync (/automations).

Budget impact: Actual creates imported transactions. Actual Bench schedules the sync and saves its run record and per-account result. The bank sync dialog, warning that no account in this budget is linked to a bank.

Set the schedule and Bench works out the rest - including telling you, before you save, that this budget has no bank-linked accounts and the sync would import nothing.

  • Accounts linked to a bank in Actual (SimpleFIN or GoCardless). Bench cannot create those links.
  • The budget enrolled for unattended access, in HTTP API or Direct mode - a scheduled sync runs with your browser closed, so the server needs credentials of its own.
  1. Open Tools → Automations and select New automation → Bank sync.
  2. Confirm that the budget is enrolled for unattended access.
  3. Choose a schedule and save the automation.

Before you save, the dialog shows which accounts will actually sync:

  • Accounts linked to a bank are listed with when each last synced.
  • Accounts with no bank link are listed too, marked not connected to a bank - skipped.

That list is the point. Without it, scheduling can only assert “every linked account is synced” and hope - and someone whose accounts are all unlinked would create an automation that does nothing, forever, without a hint as to why. If none are linked, Bench refuses to schedule the run rather than letting you create it.

Then choose how often. Every few hours suits most people; the minimum interval is 15 minutes, because below that a run spends its time reopening the budget rather than syncing.

Each account is synced separately, so one bank being down does not stop the others:

ResultMeaning
SyncedActual accepted the pull for this account
FailedThis account’s provider or link failed - the reason is on the run
SkippedThe account is closed, or not linked to a bank

A run where some accounts failed is reported as partial. It does not count against the automation’s failure streak: one unreachable bank out of twelve is a normal Tuesday, and pausing the whole automation over it would be wrong. A run where every account failed does count.

Full results, including per-account reasons and the redacted log, are in Run history.

  • It does not connect to your bank, or store bank credentials. Actual owns that.
  • It does not re-import a statement or reconcile anything. For a downloaded statement, use Bank Reconciliation.
  • It does not fix a broken bank link. If a provider needs re-authorising, that is done in Actual; Bench will keep reporting the failure until it is.