Account-First Model

Identity model, environments, session flow, and account-scoped paths.

Finatic is account-first: your company authenticates with API keys, the user connects a broker in Connect, and your app reads or trades only against financial account IDs they granted.

See Account model for the short overview.

Identity model

ConceptIn your app
Company workspaceAPI keys, sessions, webhooks — dashboard accountId / companyAccountId
Financial accountaccountId on /api/v1/accounts/{accountId}/... routes and SDK calls
Provider connectionInternal to Finatic — do not store or expose to customers

Persist company account ID, your user ID, and granted financial accountId values. Do not build on legacy beta connectionId or user_broker_connection_id.

End-to-end flow

  1. Backend creates a session and portal link (API key).
  2. Browser opens Connect with the one-time token.
  3. User signs in to the broker and selects accounts.
  4. Connect creates grants (read, optional trading).
  5. Wait until data is ready — poll session sync status or use per-account webhooks (account.grant.created, account.sync.succeeded). No session-level “all ready” webhook yet.
  6. Read or trade via account-scoped routes, e.g. /api/v1/accounts/{accountId}/positions.

Browser: Connect and first reads

Backend: check sync readiness

Environments

EnvironmentBehavior
liveReal broker auth and data (including broker paper accounts)
sandboxFinatic synthetic test data only

Do not mix sandbox and live account IDs.

Next