Quickstart
-
Create an API key. In the operator console, open API keys → New API key. Give it a name (for example
Shop – production) and the URL where your server receives webhooks. The console shows the API key (vk_live_…) and the webhook signing secret (whsec_…) exactly once: store both in your server’s secret store. -
Choose what the key checks. In the same dialog, or later with Edit key, pick the steps of the flow, for example document then liveness. See Configure a key.
-
Create a verification from your server.
Terminal window curl -X POST https://verify.zetaid.com/api/v1/verifications \-H "X-SDK-Key: $ZETAID_API_KEY" \-H "Content-Type: application/json" \-d '{"return_url": "https://shop.example/checkout/verified?order=A-17","extra_data": {"order_id": "A-17"}}'{"verification_id": "3f6c2a9e-7d41-4b8a-9c2e-5a1f0d7b3e64","url": "https://verify.zetaid.com/?verification_id=3f6c2a9e-7d41-4b8a-9c2e-5a1f0d7b3e64","flow": ["document", "liveness"],"due_at": "2026-11-02T10:15:00Z","expires_at": "2027-01-30T10:15:00Z"} -
Send the person to
url. Redirect their browser to it. When they are done, the page sends them back to yourreturn_url. -
Receive the result. ZetaID posts a
verification.completedwebhook to your key’s URL. Check its signature, then act onstatus:{"event": "verification.completed","verification_id": "3f6c2a9e-7d41-4b8a-9c2e-5a1f0d7b3e64","status": "verified","reason_code": null,"export": { "personal_info": { "first_name": "ERIKA", "last_name": "MUSTERMANN", "date_of_birth": "1983-08-12" } },"extra_data": { "order_id": "A-17" },"completed_at": "2026-11-01T10:19:42Z"}You can also read the same fields at any time with
GET /api/v1/verifications/{verification_id}.
Next: integrate a website end to end, with signature checks, the return page and expired links.