KYC in one minute
- Create a session: You call
POST /v1/kyc/sessionswith your Bearer public key. You receive asessionIdand averificationUrl. - Send your user: Redirect or link your user to the
verificationUrlto complete the hosted verification flow. - Check status: You can
GET /v1/kyc/sessions/{sessionId}to verify ownership and see the currentstatus.
Authentication
Use your public API key in the Authorization header. Public keys map to workspaces in Firestore atworkspaces.apiPublicKey.
Create a hosted session
Optional body lets you add a return link and metadata to track your users.Send the user to verify
Open theverificationUrl in a browser or in-app webview. The hosted UI captures documents and face images, then invokes a server action to produce a structured verdict.
The API does not expose this verdict directly; persist results in your backend if needed.
Retrieve a session
- The requesting user must be the session owner (
userId) OR the owner of the associatedworkspaceId.
Status lifecycle
- Initial:
not_started - Typical progression:
not_started→processing→completed(orfailed) - The Verify UI prevents reuse when
status === "completed".
Errors
- 401
{ "error": "missing_authorization" }when header is absent - 401
{ "error": "invalid_credentials" }when public key is invalid - 403
{ "error": "forbidden" }when the user does not own the session/workspace - 404
{ "error": "not_found" }when session does not exist - 500
{ "error": "internal_error", "message": "..." }on server error
Hosts and CORS
- Base host:
https://api.verisecid.com - Served only on allowed hosts:
api.verisecid.com,localhost,127.0.0.1 - Override with env var:
API_ALLOWED_HOSTS=api.verisecid.com,localhost,127.0.0.1 - Disallowed hosts return
404with{ "error": "invalid_host" }
Development
Environment variables and security model.
API reference
Endpoint details and examples.

