Attestation
Verify the signed result of a liveness session.
Attestation is how your backend convinces itself — and eventually an auditor — that a verdict really came from iLive, not from a user tampering with the redirect.
What ships today
Cryptographic signing of verdict payloads is on our short-term roadmap. Today's integrity pattern is built around server-side retrieval with a per-session token.
The current design treats the session_id plus its session token as the
handle, and the server-side fetch as the source of truth:
- Your backend creates the session via
POST /api/v1/managed-sessionusing your API key. The response includes asession_idand a single-usetoken. Store both. - The user completes the flow. iLive redirects them back to your
redirect_urlwith thesession_idin the query string and — if configured — POSTs a verdict notification to yourwebhook_url. - Your backend pulls the verdict from
GET /api/v1/session/{id}/result?token=.... The token is constant-time compared server-side; anyone without the token gets a 401/404. - Your backend pulls the photo from
GET /api/v1/session/{id}/photo?token=.... The URL is also token-guarded.
Because the definitive verdict read goes straight from your server to
iLive over TLS with the session token, a tampered redirect cannot change
the result. Treat the webhook as a push-notification convenience and the
/result call as the authoritative answer.
What's on the roadmap
Signed verdict payloads are the next step. The plan:
- What's signed. The verdict tuple
(session_id, verdict, confidence, timestamp, photo_sha256). - Algorithm. Detached Ed25519 signatures, base64url-encoded in a
signaturefield alongside the verdict body. - Key distribution. A published JWKS document at a stable URL, with
key rotation supported via
kidheaders. - Verification. A short, copy-pasteable snippet in the language tabs on this page, analogous to the webhook receiver examples.
When that lands, you'll be able to verify verdicts entirely offline — no
round-trip to /result required. Until then, the
session_id + token + server-side fetch pattern above is the
supported way to establish trust.
Related: Managed sessions · Webhooks.