Skip to main content
SimpleFIN is a paid third-party provider focused on US bank account connectivity. It offers a simpler, more affordable alternative to Plaid for personal finance management.

How it works

SimpleFIN uses a setup token system to establish secure access to your bank accounts:
  1. Obtain a setup token from SimpleFIN
  2. Sure claims the setup token to get an access URL with embedded credentials
  3. The access URL is used to fetch account data, balances, and transactions
  4. Data syncs automatically to keep your information current

Setting up SimpleFIN

To connect your US bank accounts:
  1. Sign up for a SimpleFIN account at simplefin.org
  2. Generate a setup token from your SimpleFIN dashboard
  3. In Sure, provide the setup token
  4. Sure will claim the token and establish access to your accounts

Setup token claiming

The setup token is a base64-encoded claim URL. When you provide it to Sure:
  1. Sure decodes the token to get the claim URL
  2. Makes a POST request to claim the access URL
  3. Receives an access URL with HTTP Basic Auth credentials embedded
  4. Uses this access URL for all subsequent API requests

Features

Account syncing

  • Account listing: View all connected accounts with current balances
  • Transaction history: Import transactions with date range filtering
  • Pending transactions: Optional support for pending transactions (varies by institution)
  • Multiple accounts: Connect multiple bank accounts from different institutions
  • Localized status messages: Sync status summaries (such as “2 accounts synced” or “1 account needs setup”) display in your chosen language

Date range filtering

When syncing transactions, you can specify:
  • Start date: Fetch transactions from this date forward
  • End date: Fetch transactions up to this date
  • Pending flag: Include or exclude pending transactions
SimpleFIN expects Unix timestamps for date parameters.

Reliability features

Sure’s SimpleFIN integration includes automatic retry logic:
  • Exponential backoff for transient network failures
  • Up to 3 retry attempts for network errors
  • Handles temporary connection issues gracefully
  • Prevents sync failures from intermittent network problems

API structure

SimpleFIN uses a simple REST API with embedded authentication:
  • POST /claim: Exchange setup token for access URL
  • GET /accounts: Fetch all accounts with balances and transactions
  • GET /info: Get server information
The access URL contains HTTP Basic Auth credentials, so no separate authentication headers are needed.

API reference

For detailed protocol documentation, see the SimpleFIN Protocol.

Pricing

SimpleFIN is a paid service, but typically more affordable than alternatives like Plaid. Check simplefin.org for current pricing.

Limitations

  • US-focused: Primarily supports US financial institutions
  • Setup token security: Setup tokens can only be claimed once and may expire
  • Pending transactions: Not all institutions return pending transactions, even when requested
  • Rate limits: Subject to SimpleFIN API rate limits
  • Access URL validity: Access URLs can be revoked or expire (returns 403 error)

Troubleshooting

Incorrect balance sign on credit cards or loans

SimpleFIN reports liability balances from the bank’s perspective (positive = you owe money). Sure converts these into the correct sign for net worth calculations — liabilities reduce net worth, so their balances are stored as negative values. For loans, Sure trusts the bank’s sign directly and stores the absolute value of the reported balance. Earlier versions incorrectly ran a transaction-history heuristic on loans, which could invert the balance and make the loan appear to add to your net worth instead of subtracting from it. This is now fixed. For credit cards, Sure uses recent transaction history to determine whether a positive balance represents debt (normal) or an overpayment credit (unusual). When there is not enough transaction history to decide, Sure falls back to sign-based normalization using both the posted and available balances reported by the institution. If a credit card or loan balance looks wrong after syncing:
  1. Re-sync the account from Settings → Providers → SimpleFIN.
  2. If the balance is still incorrect, check whether the account type is set to Credit Card or Loan in your account settings. An incorrect account type can cause the wrong normalization to be applied.

Duplicate accounts with the same name

If you have two accounts at the same institution with identical display names (for example, two accounts both named “CHECKING (0001)”), Sure’s sync logic previously could confuse them — the unlinked account would silently steal the linked account’s connection, merge in its transactions, and overwrite its balance on every sync. This has been fixed. Sure now tracks each account by its upstream account ID rather than by display name alone. Ambiguous same-name matches are skipped rather than resolved incorrectly. If you were affected, re-syncing after upgrading to the fixed version will restore the correct linkage.

Setup token issues

If you receive a 403 error when claiming a setup token:
  • The token may have already been used
  • The token may have expired
  • The token may have been compromised
Generate a new setup token from your SimpleFIN dashboard.

Duplicate accounts with the same name

If you have two accounts at the same institution with identical display names (for example, two accounts both named “CHECKING (0001)”), Sure uses the upstream account ID to distinguish them during sync. Previously, a stale-linkage repair could incorrectly reassign one account’s connection to the other. This is now resolved — each account is matched by its unique upstream ID, not just its name. If you notice an account that appears to have lost its transaction history after a sync, check Settings → Debug for any skipped stale-linkage repair entries that may indicate an ambiguous name match.

Missing pending transactions

Some institutions don’t return pending transactions even when the pending=1 parameter is set. This is a limitation of the institution’s data feed, not a bug in SimpleFIN or Sure.

Duplicate accounts with the same name

If you have two distinct accounts at the same institution that share a display name (for example, two accounts both named “CHECKING (0001)”), Sure uses the upstream account ID to distinguish them during sync. Only accounts whose ID is genuinely absent from the upstream response are treated as stale and eligible for re-linking. Ambiguous cases where multiple local accounts share a name are skipped rather than resolved automatically, preventing one account from silently inheriting another’s transaction history.

Network errors

If you experience intermittent sync failures:
  • Sure automatically retries failed requests up to 3 times
  • Network errors are logged for troubleshooting
  • Manual sync attempts may succeed where automatic syncs fail