Skip to main content
How a parent account starts a hosted KYC for one of its sub-accounts via email link, and registers a webhook to receive status updates.

Flow

1

Create the session

Parent calls Create KYC Session with flow_type: "email", the customer’s email, and a webhook_url.
2

Vobiz emails the link

Vobiz emails the customer a signed link to the Vobiz-hosted KYC widget.
3

Customer completes KYC

Customer completes KYC in the widget.
4

Receive webhook events

Vobiz POSTs webhook events to your webhook_url at each stage (initiated → submitted → completed/failed).

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.
Body:
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.
Response 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 your webhook_url as the session progresses: Payload:

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.
Verify (Python):
Return 2xx to acknowledge. Failed deliveries are retried with exponential backoff.

cURL example

Copy-paste starter - create an email-flow session and register your webhook in one call: