FaceVerifyDocs
Browse docsTap to expand

Redirect contract

If you passed a redirect_url in your /v1/verify call, the end user's browser is redirected there once the hosted verify page finishes — successfully or not — with two query parameters appended.

redirect_url is set per-request, not account-level — pass it with every /v1/verify call where you want a browser redirect. If omitted, the hosted page shows a static success/failure screen and doesn't redirect anywhere. This is separate from your account's webhook URL, which receives a server-to-server event regardless of whether a redirect_url was provided.

Query parameters

FieldTypeRequiredDescription
tokenstringrequiredThe session token — pass this to GET /v1/sessions/:token to confirm the real result server-side.
status"verified" | "failed"requiredWhat the browser was told. Do not treat this as authoritative on its own.
https://yourapp.com/verify/callback?token=7yV0N3z8_26yZpxtUKZRVRvy04KeHT5-&status=verified
A query string is visible and editable by the person holding the browser. Never grant access, unlock a resource, or mark someone as verified purely because this redirect happened with status=verified — always confirm with GET /v1/sessions/:token or the signed webhook first.

Allowed redirect origins

redirect_url must be an https:// URL whose hostname is in your account's allowed redirect origins list, configured in Settings. A /v1/verify call with a hostname not on that list is rejected with a 400 before any verification session is created. This prevents your verification flow from being used to redirect users to an untrusted destination.

Recommended flow

  1. User lands on your redirect URL with token and status.
  2. Your backend calls GET /v1/sessions/:token with the token, server-to-server.
  3. Trust that response's status, not the query string.
  4. Show the user the appropriate next screen in your own product.