Skip to main content
An agent is a Stripe-shaped resource: it owns cards, tokens, transactions, and exactly one policy at a time. Agents are typed for AI use — they carry a purpose, optional framework (openai-assistants, anthropic-sdk, langgraph, crewai), and optional capabilities so the dashboard and audit trail can describe what they’re for.

The agent model

Minimal create

The dashboard create drawer (and the documented happy path) is name + purpose + policyId. Other profile fields are optional, hidden behind an “Advanced” toggle.

Lifecycle

Agent tokens

Agents can hold their own scoped tokens (at_*). A token is bound to one agent, carries typed permissions, and may have an optional spend cap (via delegation).
Use at_* tokens in your runtime instead of sharing your org-level sk_* key. Cross-agent reads with an at_* token return 403 E_AGENT_ISOLATION — strict isolation is one of the sacred invariants.

Signing keys (Phase 8 prep)

For each agent, an Ed25519 keypair is provisioned async. The public JWK is exposed at:
This is wiring for Visa Trusted Agent Protocol (RFC 9421 HTTP Message Signatures). No outbound signing is enabled in v1.2 — code lands when the first TAP-aware merchant requires it.

Webhooks

  • agent.created
  • agent.frozen
  • agent.unfrozen

Plan-tier limits

Surfaces

Next

Cards

Issue cards bound to an agent.

Policies

Define what an agent can spend.

Intents

The approval primitive every charge starts with.

Pay

How an agent actually pays.