Skip to main content
Most of the rules below hold by construction inside the SDK. doctor() checks your registered redirect URI and the registration clock; the session cookie stays yours, with a reminder printed at mount. Run doctor() in CI.

The rules

Never render an input for the approval code. It belongs on Payman’s page, in the account owner’s session; an app that collects it is phishing its own customers.

What your app can see

A deployment id: the one deployment of the customer’s own agent that they connected. That is the entire list. No name or publisher for the customer’s agent, no providers, no balances, no credentials. The grant is a pointer into Payman, not a copy of anything. Conversations file under the grant, so no other app connected to the same deployment can read yours.

An approval ref is not a credential

A ref presented without your grant answers 404, and holding one buys nothing: approving takes the owner’s own Payman session plus the code emailed to them. That is why a ref is safe to hand to a model, and a URL or token is not.