# Stripe Identity (slim) > Stripe Identity verifies government-issued photo IDs from more than 120 countries, matches them to selfies and validates US Social Security numbers. Sessions are created and read through the Stripe API, and the end user completes the check in Stripe's flow. - Full: https://www.anchorterminal.com/tools/stripe-identity.md (~6,250 tokens) · this version ~1,480 tokens · JSON https://www.anchorterminal.com/tools/stripe-identity.json · canonical https://www.anchorterminal.com/tools/stripe-identity - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-14 **BB · 77.7/100 · rank #21 of 1076 · #1 in Identity & business verification · agent-ready · confidence medium** Assessment: Stripe Identity runs on the Stripe API, with a public OpenAPI spec, idempotency keys, restricted keys for sensitive fields and a redact endpoint. The product page lists £1.25 per document and selfie check, and the first 50 are free. It has no watchlist or business screening, and outside GB, JP and the US it is in public beta. ## Facts - Kind: HTTP API · vendor: Stripe, LLC · category: Identity & business verification · legal entity: Stripe, LLC · provenance 98/100 - Local only (HTTP): npm `stripe`, pypi `stripe` - Auth: API key · pricing: Pay per use · x402: no · licence: Proprietary service under the Stripe Services Agreement and Stripe Identity Terms. The OpenAPI spec and official SDKs are MIT - Probe metrics: not measured yet (probes haven't run) - Surface graded: Identity endpoints of the Stripe API (VerificationSessions and VerificationReports). Stripe's general MCP server is listed separately as stripe-mcp - Endpoints: POST, GET and list /v1/identity/verification_sessions, POST /{id}, /{id}/cancel and /{id}/redact, GET and list /v1/identity/verification_reports - Checks: Document (government photo ID from 120+ countries), selfie with face match, ID number (US SSN). Phone, email and address checks are invite only - Credentials: Secret keys, restricted keys with Identity permissions, IP-restricted keys for sensitive results older than 48 hours - Rate limits: 100 requests a second live, 25 in a sandbox, 25 per endpoint unless noted. 429 with `Stripe-Rate-Limited-Reason` - Retries: Idempotency-Key on every POST, recommended when creating a VerificationSession - Events: identity.verification_session created, processing, requires_input, verified, canceled and redacted - Session links: Hosted verification URLs expire 48 hours after creation and are single-use - Retention: Redact on request, up to 4 days. Stripe keeps its copy until the end user asks Stripe support to delete it - Eligibility: No use for minors, FCRA permissible purposes, government or law enforcement, or resale. Restricted jurisdictions excluded - Status: status.stripe.com, readable only with JavaScript - Scores: Reliability 62, Performance pending, Schema & documentation 94, Agent ergonomics 93, Security & auth 86, Payments & pricing 40, Task success pending, Maintenance & community 85, Transparency & trust 85 · total over the 7 assessed categories - Why: Reliability, Read with the hosted lines and scored on the Identity endpoints of the Stripe API. · Schema & documentation, Stripe's public OpenAPI 3 spec (stripe/openapi, MIT, version 2026-09-30.endive) covers the six Identity operations under /v1/identity (25). · Agent ergonomics, Sensitive fields come back only when expanded (`verified_outputs`, `verified_outputs.dob`, `last_verification_report`), so the default respo… · Security & auth, Secret keys, restricted keys with chosen permissions and IP-restricted keys. · Payments & pricing, No x402, MPP or L402 on the Identity endpoints (0). · Maintenance & community, Graded on the surface agents use, the Stripe API and its SDKs. · Transparency & trust, Closed service under published Stripe Identity Terms, last updated 2 October 2026, which limit use to compliance, fraud prevention and safet… - Sources: 17, open questions: 5, both in the full twin - Capabilities: kyc.identity, kyc.documents - JSON: https://www.anchorterminal.com/api/v1/tools/stripe-identity.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/stripe-identity.svg` or a link to https://www.anchorterminal.com/tools/stripe-identity from a page on stripe.com or one of its subdomains, or the README of github.com/stripe/openapi, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Send an Idempotency-Key based on your user reference when creating a VerificationSession, so a retry doesn't make a second session 2. Send the end user the session URL or client secret. The person completes the check, the agent can't. Links expire after 48 hours 3. Use a restricted key for `verified_outputs.dob` and `id_number`. Without an IP restriction it reads them only for 48 hours 4. Wait for `identity.verification_session.verified` or `requires_input` webhooks instead of polling 5. Treat `redact` as irreversible, and don't put personal data in metadata ## Connect ```bash curl https://api.stripe.com/v1/identity/verification_sessions \ -u "<>:" \ -d type=document ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/stripe-identity ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Didit | BB | 75 | kyc.identity, kyc.documents | https://www.anchorterminal.com/tools/didit.min.md | | Persona | B | 69.5 | kyc.identity, kyc.documents | https://www.anchorterminal.com/tools/persona.min.md | | Sumsub | B | 68.5 | kyc.identity, kyc.documents | https://www.anchorterminal.com/tools/sumsub.min.md | | Plaid Identity Verification | B | 67.1 | kyc.identity, kyc.documents | https://www.anchorterminal.com/tools/plaid-identity-verification.min.md | | ComplyCube | B | 63.7 | kyc.identity, kyc.documents | https://www.anchorterminal.com/tools/complycube.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)