Skip to main content
POST
POST /v1/sessions
This endpoint is available on all tiers, gated by monthly quota (pricing).

Overview

Verification sessions let merchants bootstrap identity for agents that don’t have a wallet or operator credential. When an agent tries to perform a gated action without identity, the merchant creates a session and returns the verification URL to the agent. The session returns two secrets:
  • session_id: goes in the verification URL (user-facing)
  • poll_secret: given to the agent for polling (never in URLs)

Request

Headers

Body

The merchant name shown on the verify page is derived from your account’s merchant name (set in dashboard Settings), not from the request. Verification is agent-driven: after the user completes KYC they close the tab, and the requesting agent retrieves the credential by polling GET /v1/sessions/:token. There is no browser redirect back to the merchant; this API does not accept return_url or any payment-method metadata.

Response

Sessions expire after 1 hour.

Response fields

Polling

Poll response by status

Pending; user hasn’t completed verification yet:
Verified; user verified, one-time operator_token included:
The token is returned exactly once. Subsequent polls return consumed without the token. Consumed; token already issued to a previous poll:
Expired; session expired (1 hour TTL):
Failed; Stripe Identity verification did not succeed:
Flagged; identity verified but sanctions screening flagged a potential match. The user must contact support before a credential can be issued:

Poll response fields

Rate limits

The poll endpoint is rate-limited to 30 requests per minute per IP. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.