Skip to content

Work / Chitragupt / Wiki / Decisions

2026-10-05-broker-connect-is-connect-once

Decisioncanonicalverified 2026-10-05

DECISION.2026-10-05.BROKER-CONNECT-IS-CONNECT-ONCE

Broker Connect means connect once, not paste a token

Decision

A user links a broker once and holdings keep syncing. A flow that asks the user to paste a token, or to log in again every day, is not the product. The Android app gets Broker Connect as well as the website.

This changes the Dhan row of 2026-09-07-broker-connect-per-broker-auth (paste a personal access token) and the "reconnect daily is routine" stance for Zerodha and Upstox. The three auth shapes and the sync engine stand.

Why

The owner's call, 2026-10-05: "we want a proper one time lifetime connect/sync with brokers."

What each route can actually give, checked the same day. None of it has been built or tried here:

Route Connect once? What it needs
Account Aggregator — CDSL and NSDL share demat holdings (equity and mutual funds) to a consented app Yes, for the life of the consent, across every broker at once An AA partner (Setu, Finvu, Onemoney, CAMS Finserv) and standing as a Financial Information User. Whether Chitragupt can be one, directly or through a partner, is unanswered.
Upstox extended token Yes — read-only, one year, holdings included Upstox enrols multi-client apps on request
Dhan No token lasts past 24 hours; an API key and secret can mint a fresh one without the user The user's own API key and secret stored with us, or Dhan's partner programme
Zerodha (Kite Connect) No. A session ends every morning and needs the user's login Nothing fixes this through Kite
Angel One No. A new session needs the user's authenticator code Nothing fixes this without storing a TOTP secret, which we will not

So "connect once" is reachable for every broker only through the Account Aggregator route. Broker APIs alone give it for Upstox, partly for Dhan, and not for Zerodha or Angel One.

The free route comes first

Added the same day: there is no budget for an Account Aggregator, which charges per fetch. So the order is:

  1. Forwarded demat statement — free, every broker. CDSL and NSDL email each investor one consolidated statement a month, covering every broker and mutual fund under their PAN. The user sets a forward rule once, to their private Chitragupt address, and a statement arrives every month from then on. It is monthly, not live.
  2. Upstox one-year token — free, live, if Upstox enrols the app.
  3. Zerodha by its daily login, for a user who wants today's prices.
  4. Account Aggregator only if a partner offers a free tier.

Route 1 needs two things that do not exist yet: a way to receive mail at the private address (the settings screens and the allowlist are built; nothing receives), and a parser for the CDSL and NSDL statement (the parser reads a mutual-fund CAS today, not the depository one).

Impact

  • tasks.md T040 builds the forwarded-statement route. T028 asks the Account Aggregator partners and Upstox what is free.
  • Until then the shipped flows stay as they are; the daily reconnect on Zerodha and Upstox is a known gap, not the design.
  • Mobile: Broker Connect is drawn in .context/designs/mobile/ first, then built (T029).

Sources