Quickstart
15-minute happy path
Evaluate policy, create a session, run the in-browser check, submit result server-side, verify signature, and reconcile webhooks.
Prerequisites
- Server endpoint to evaluate policy, create sessions, and submit results.
- Secure storage for API keys (never expose on client).
- Webhook endpoint with signature verification support.
- UI path for retry/fallback messages.
Canonical flow
1) Evaluate policy (server)
POST /api/v1/policy/evaluate
{operatorId, action, route?, category?, geographyBasis?}
=> {verificationRequired, method}2) Create session + model access (server)
POST /api/v1/verification-sessions
{operatorId, idempotencyKey}
=> {sessionId}
POST /api/v1/verification-sessions/{id}/model-access
=> {modelBasePath, modelAccessToken}3) Run check (browser)
runDefaultBiometricCheck({ modelBasePath, modelAccessToken })
=> { passed, reason?, subjectId? }
// or checkbox companion UX where policy allows4) Submit + enforce (server)
POST /api/v1/verification-sessions/{id}/biometric-result
// or /checkbox-result
=> { outcome, decisionToken? }
if outcome === 'inconclusive' -> POST /api/v1/fallback/initiateLocal dev checklist
- Run policy evaluate, session create, and result submission against test keys.
- Simulate token expiry and verify refresh behavior.
- Replay webhook event payload to validate dedupe logic.
- Test camera denied and low-light user messaging.
Common pitfalls
- Token expiry: reject stale model access tokens and request fresh model access.
- Double submit: enforce idempotency keys on session creation and result submission.
- Webhook retries: store event IDs and process idempotently.
- Client-only enforcement: always enforce from verified server outcome.
Troubleshooting framework
When issues occur, isolate the stage first: policy evaluate, session create/model access, browser run, result submit, or webhook delivery. This avoids broad debugging and keeps incident response focused.
- If evaluate/create fails, validate key scope, billing state, and request payload shape.
- If browser run fails, validate camera permission, lighting, and model access token freshness.
- If submit fails, confirm idempotency key reuse and outcome payload integrity.
- If webhook fails, verify signature parsing and dedupe persistence.
Ready to run your first check?
Create your account, generate an API key, and run the happy path end-to-end.