Connecting banks
FinNudge uses Plaidto sync transactions and balances from 12,000+ US financial institutions. Here's how it works, and what to do when something goes sideways.
What gets synced
- Transactions: merchant, amount, timestamp, Plaid's category.
- Balances: current + available balance per account.
- Account metadata: type (checking / savings / credit / loan / investment), mask, name.
- Recurring charges: FinNudge detects subscriptions and bill-pay patterns from the synced transaction history (this analysis runs on our servers, not Plaid's).
We do notsync statements, check images, wire transfer details, or any read-write capability. Plaid's connection is strictly read-only.
How it works under the hood
- You click Connect a bank and Plaid Link opens in a modal.
- You authenticate with your bank directly inside that modal. FinNudge never sees your credentials.
- Plaid returns a short-lived
public_tokento us, which we exchange server-side for a long-livedaccess_token. - The access token is stored in our Supabase Postgres database, which encrypts data at rest using AES-256 (managed by AWS KMS). Row-Level Security policies prevent any other user account from reading the row.
- A background sync pulls the last 90 days of history and schedules incremental pulls from Plaid webhooks.
Plans that include bank sync
Live bank connectivity is a Plus and Pro feature. On Spark (free) you can still import via CSV and add transactions manually. Upgrade any time from Settings → Plan.
When a connection breaks
Banks rotate credentials, expire OAuth tokens, and occasionally change their API. When that happens the sync-health agent posts a nudge and the affected account shows a yellow or red badge on Accounts. Three statuses:
- Healthy: last sync under 24h.
- Stale: no sync in 24,48h. Usually transient; we'll retry automatically.
- Error: Plaid reported an explicit failure. Click Reconnect on the account row to re-authenticate.
Disconnecting
Remove an institution from Accounts. We immediately revoke the Plaid access token server-side and permanently delete the transactions tied to the disconnected accounts. This action can't be undone. Before you confirm, the disconnect dialog offers a Download CSV backup link so you can keep your own copy of every transaction. See Data retention for the full lifecycle.
Troubleshooting
- Modal won't open. Disable content blockers for
finnudge.moneyandcdn.plaid.com, then retry. - “Invalid credentials”.Confirm your login on the bank's own website first. If 2FA is enabled, you may need to approve the connection attempt in a second tab.
- Missing transactions. Most banks expose 90 days; a handful only expose 30. Older transactions can be backfilled via CSV import on Accounts.
Still stuck? Help Center has step-by-step reconnection walk-throughs per institution.