All field notes

Tutorial

Connect Actual Budget to BankSync with SimpleFIN

Set up Actual Budget bank sync through BankSync’s SimpleFIN-compatible connection, map accounts and avoid duplicate or stale imports.

By BankSync11 min read
SimpleFIN transaction records flowing into Actual Budget envelope drawers

Actual Budget is a strong destination for BankSync because its budgeting model is local-first while its server can perform scheduled bank imports. The connection uses SimpleFIN: BankSync handles supported bank connectivity and Actual consumes the standard account feed.

The setup is short, but three choices deserve care: create or select the right local Actual account, map each remote account once, and protect the server-side sync credential.

SimpleFIN transaction records flowing into Actual Budget envelope drawers
SimpleFIN transaction records flowing into Actual Budget envelope drawers

Before connecting

Update the Actual client and actual-server together; the official SimpleFIN guide requires version 24.10.0 or newer. Bank sync does not work with the local-only desktop client by itself—you need actual-server.

In BankSync, connect the supported bank and select the SimpleFIN-compatible destination flow. Use the current BankSync UI to create the connection value or setup token. A setup token is claimed once, so do not paste the same token into multiple budgets.

Actual’s security documentation is candid: bank-sync keys are stored server-side and are not covered by the budget’s end-to-end encryption. If you use third-party hosting, the operator may technically be able to access the sync credential. Self-host when that boundary matters.

Actual Budget setup

  1. Connect the bank in BankSync

    Complete the institution’s authorization or open-banking consent and confirm accounts appear.

  2. Create the SimpleFIN connection

    Use BankSync’s current SimpleFIN destination flow and copy the one-time setup token.

  3. Open Actual’s bank-sync setup

    In the budget, choose Add Account and the SimpleFIN option.

  4. Paste the setup token

    Submit it once and wait for Actual to discover the available accounts.

  5. Map accounts deliberately

    Link each remote account to an existing Actual account or create a new one.

  6. Run the first sync

    Compare balances and a small sample of recent transactions before linking the rest.

  7. Set a routine

    Use Actual’s Bank Sync action or current scheduled behavior and watch freshness.

Account mapping is the irreversible-feeling part

Linking to the wrong local account does not move money, but it creates cleanup work. Match institution, account type, currency and last four digits. Avoid creating a duplicate local account merely because an existing one was entered manually.

Actual documents a maximum of 90 days per SimpleFIN request and notes that provider updates are roughly daily. Older history may need CSV, QIF, OFX or another supported import path. Keep the one-time backfill separate from ongoing SimpleFIN sync and choose a date seam to prevent overlap.

Reconcile the first import

Check three things: the “last balance from bank,” the newest posted transaction and the sign of a credit-card purchase. Do not infer success from the number of imported rows alone. Pending transactions can change, and account balance semantics differ between deposits and liabilities.

First-sync verification

StageWhat to doCheck
ConnectionBankSync shows active consent or connectionNo reauthorisation warning
Account mappingRemote ID maps to intended Actual accountCurrency and last four digits match
TransactionsNewest posted item appears onceStable IDs prevent duplicates
BalanceBank balance matches expected semanticsLiability sign is sensible
FreshnessLast source and app sync timestamps are recentNo hidden stale state
HistoryBackfill seam is documentedNo overlap duplicates

Verify one account before scaling out.

Resetting and troubleshooting

Actual’s guide provides a Reset SimpleFIN credentials action from the Add Account menu. Use it when replacing the provider connection; generate a new setup token because the old token was single-use. If transactions import but the bank balance is stale, inspect Actual’s connection status and provider freshness separately. Community issues show that balance regressions and stale connections do occur, so keep versions current and report reproducible cases with redacted diagnostics.

For power users, snapshot the Actual database before remapping multiple accounts and never include the access URL in logs or issue reports.

Frequently asked questions

Primary sources