YNAB ↔ SimpleFIN Sync
Automatic balance syncing that runs in your GitHub account. Your credentials are sealed in your browser and stored only as encrypted secrets in a repository you own — this site never sees or stores them. Learn how it works ↓
1 Connect GitHub
The sync runs as a scheduled GitHub Actions workflow in a private repository created in your account.
2 Connect SimpleFIN
Get a Setup Token from SimpleFIN Bridge (Settings → New App), or paste an Access URL you already have. Setup tokens are single-use; claiming happens now and the resulting credential goes only into your repository's encrypted secrets.
3 Connect YNAB
Create a Personal Access Token in YNAB under Settings → Developer Settings. Your browser talks to YNAB directly — the token never touches this server.
4 Map accounts
Pick which SimpleFIN account(s) feed each YNAB account. Select more than one to sum them (for example an HSA's cash and investment sides). Leave an account unchecked to skip it.
5 Set up your sync repository
The sync lives in a repository you create and control. This app only ever gets access to that one repository — nothing else in your account.
- Create a private repository named to match the field below (check “Add a README”).
- Install this app and choose Only select repositories → your new repository.
- Then continue here — the workflow is added and your credentials are sealed into the repository's encrypted Actions secrets, all from this browser.
Optional: Slack notifications & transaction archive
Archive account history: each selected account's raw SimpleFIN data — including its full transaction history — is saved as JSON into the repository whenever SimpleFIN refreshes it. SimpleFIN only serves a rolling 90-day window, so unarchived history is eventually unrecoverable.
Both can be enabled, changed, or disabled later by editing the repository's Actions secrets — the workflow adapts automatically.
Done ✓
A dry run has been started so you can see the plan with nothing written.
First real run: the initial catch-up adjustment may trip the
large-adjustment safety guard. Check the numbers in the dry-run log, then run the
workflow once with force checked. After that it runs itself.
About
What this is
YNAB is great at budgeting but can't see inside most investment accounts — brokerages, 401(k)s, HSAs — so those balances go stale unless you update them by hand. This tool keeps them matched to what your institutions actually report, automatically, using SimpleFIN Bridge as the read-only connection to your institutions.
How it works
- The wizard above creates a private repository in your own GitHub account containing a small scheduled workflow.
- Every 2 hours, that workflow fetches your balances from SimpleFIN and posts one Balance Adjustment transaction per mapped account in YNAB for any difference. Repeat runs amend the same day's transaction, so your register stays clean, and built-in guards refuse implausibly large adjustments and never treat a missing account as zero.
- Optionally, each run notifies Slack, and each account's raw transaction history is archived into the repository — SimpleFIN only serves a rolling 90-day window, so the archive preserves what would otherwise age away.
Where your credentials live
Your SimpleFIN and YNAB credentials are sealed in your browser with libsodium sealed boxes and written directly into that repository's encrypted GitHub Actions secrets — readable only by your own workflow runs. This site stores nothing and keeps no accounts, and after setup nothing depends on it: if this site disappeared tomorrow, your sync would keep running untouched. The GitHub access you grant is scoped to the single repository you pick.
What it costs
Nothing, here. The sync runs well within GitHub's free Actions tier, and this site is open source — this is the only official instance. SimpleFIN Bridge charges a small subscription (about $1.50/month), paid by you directly to SimpleFIN.