Actual Budget
Sync your bank transactions and balances from Synci straight into Actual Budget, using Actual's built-in SimpleFIN bank sync. No scripts, no browser extensions, and it works with any hosted Actual server, including PikaPods.
Written By Matias
Last updated About 9 hours ago
How it works
Synci gives Actual Budget a secure, read-only connection to the accounts you choose. Whenever you press Bank Sync, Actual Budget asks Synci for your latest transactions and balances and imports anything new. Synci never pushes to Actual Budget and can't see or change your budget: Actual Budget does the fetching, on your command, and you can revoke access from Synci at any time.
Before you start
A hosted Actual Budget server. Actual's bank sync runs on the server (self-hosted via Docker, PikaPods, Fly.io, or similar), so a local-only budget can't use it.
A Synci account with at least one connected account (bank, investment/brokerage, or crypto). They all sync into Actual Budget as budget accounts.
Set it up
1. Create a connection in Synci
In Synci, go to Destinations > Actual Budget and add a new connection.
Choose which accounts to expose to Actual: All accounts (everything you have now, plus anything you connect later) or select specific accounts.
Synci shows a one-time setup token. Copy it, you'll paste it into Actual Budget next.
The token is valid for 7 days and can be used once. If it expires before you get to it, regenerate it from the destination's page (regenerating replaces the old token).
2. Link your accounts in Actual Budget
In Actual, open your budget and go to Bank Sync or Add account β Link bank account (or an existing account's menu β link).
Pick SimpleFIN as the provider.
Paste the setup token from Synci and continue.
Actual Budget lists the accounts you exposed. Link each one to a new or existing Actual account.
3. Sync
Press Bank Sync in Actual whenever you want fresh data. Actual imports new transactions and updated balances and matches them against what's already in your budget, so re-syncing never creates duplicates.
Actual Budget doesn't sync on its own schedule. Run Bank Sync when you want it, or use a community scheduler to automate it.
Good to know
Works on managed hosts like PikaPods. Because Actual Budget pulls from Synci, there's nothing to install and no cron job to babysit on your own machine, so it works even on hosted setups where script-based tools can't run.
History goes back about 90 days. For older history, export a CSV from Synci and import it into Actual Budget once; bank sync takes over from there.
Customizing how transactions look. To change payees or clean up descriptions, use Synci's bank account rules. Their changes are saved to your transactions and flow into Actual Budget automatically, and Actual's own rules work on top.
Changing which accounts are shared. Edit the destination in Synci any time; changes apply on Actual's next sync. If you stop sharing an account that's still linked in Actual Budget, that account will show a connection error. Unlink it there, or re-add it in Synci.
Multiple connections. One Actual Budget connection per server is the simplest setup, but you can create as many as you like, each with its own token and account selection.
Security and revoking access
The connection is read-only and limited to the accounts the destination exposes: it can only fetch account data and nothing else in your Synci account. If you chose "share all accounts," that scope includes accounts you connect in the future.
You can revoke access at any time from the destination's page in Synci. Actual's next sync will then report that the connection is no longer valid. To reconnect later, create a new Actual Budget destination and link your accounts again.
Troubleshooting
Still stuck? Contact support and we'll help you get connected.