Account Grants and Connect

How Connect creates grants and how your backend checks readiness.

Connect is where the end user signs in to their broker, reviews your company’s request, picks accounts, and approves scopes. Your app works with grants and accountId values — not raw broker credentials.

What a grant does

ActionEffect
Create grantYour company gets read (and optional trade) access to one financial account
Update grantChange read/trade flags or data clusters
Revoke grantRemove your company’s access and revoke the linked compliance consent record; user’s broker login stays
Full disconnectUser removes the broker connection and stored data is cleared

Create access only through Connect (user consent). List, update, and revoke existing grants via the company API after the user has granted.

Connect flow (token)

  1. Backend creates a session (X-API-Key).
  2. Backend creates a portal link for that session.
  3. Browser opens Connect with the one-time token.
  4. User authenticates and selects accounts.
  5. Grants are created for your company.
  6. Wait until data is ready (poll or webhooks).

Check readiness after Connect

Server — poll session sync status:

Client — after Connect, list accounts with sync status (session sync poll is server-only):

Or subscribe to account.grant.created and account.sync.succeeded webhooks — see Webhooks.

List grants (company API)

Resource scopes

ClusterEnables
ACCOUNTSAccount list and details
BALANCESCash and buying power
POSITIONSPositions and lots
TRANSACTIONSActivity history
ORDERSOrder history and trading (with canTrade)

Set canTrade only when you place orders. Read-only apps should leave it false.

No-token Connect

End users can open Connect without your company session to manage grants across companies or fully disconnect a broker. Use that for user-owned settings screens — not as a substitute for your API key.

Store after Connect

  • Your user ID
  • Granted accountId values (and grantId for revoke/webhooks)
  • Trace IDs from API responses and webhooks

Initial Connect success does not mean every balance or position is current yet — poll sync status or use webhooks before assuming data is fresh.