Flow
Create the session
Parent calls Create KYC Session with
flow_type: "email", the customer’s email, and a webhook_url.1. Create the KYC session (register the webhook)
Auth: parent main account —
X-Auth-ID: MA_xxxx + X-Auth-Token: <token> (or Authorization: Bearer <JWT>). The sub_auth_id path param (SA_xxxx) identifies the sub-account being verified.| Field | Required | Notes |
|---|---|---|
flow_type | yes | "email" for this flow (default). |
customer_email | yes (email flow) | Where the KYC link is sent. Falls back to the sub-account’s email if omitted. |
webhook_url | no but needed for callbacks | HTTPS endpoint that receives the events below. No webhook_url = no callbacks. |
expires_in_days | no | 1–365, default 30. |
reminder_schedule | no | Reminder emails, e.g. 3 days before expiry. |
metadata | no | Arbitrary JSON, echoed back in every webhook payload. |
account_auth_id in the schema is set automatically from the path sub_auth_id for this flow — you don’t need to send it.201:
widget_url is only populated for flow_type: "redirect"; kyc_link is returned only in dev for testing without email.
2. Webhook events you’ll receive
Vobiz POSTs JSON to yourwebhook_url as the session progresses:
| Event | When |
|---|---|
kyc.initiated | Session created / email dispatched. |
kyc.submitted | Customer submitted their documents. |
kyc.completed | Verification passed. |
kyc.failed | Verification failed. |
kyc.session_expired | Link expired before completion. |
kyc.session_revoked | Session manually revoked. |
3. Verify the signature
Every delivery includes an HMAC signature header:- Algorithm: HMAC-SHA256 over the raw request body.
- Secret: your parent account’s
auth_token.
2xx to acknowledge. Failed deliveries are retried with exponential backoff.