Create a VerificationSession object server-side by calling the Stripe API with the type parameter set to document or id number
Return the client secret from the VerificationSession to the frontend to initialize Stripe.js and mount the identity verification flow
Listen for the identity.verification_session.verified or identity.verification_session.requires_input webhook events from Stripe
On the verified event, retrieve the VerificationSession server-side using the session ID to access the verified output fields
Inspect the verified output sub-object for fields such as first name, last name, date of birth, and id number depending on the session type
Store the VerificationSession ID and the relevant verified fields against your user record; do not persist raw document images
Known gotchas
Stripe does not expose raw identity document images through the API by default; accessing them requires configuring the session with the appropriate options and handling data retention obligations
The client secret is sensitive — treat it like a payment intent client secret and never log or expose it publicly
VerificationSession objects in test mode use specific test document values; real document images are rejected in test mode
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp