> ## Documentation Index
> Fetch the complete documentation index at: https://cashfreepayments-d00050e9-theme-update.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Configure webhooks to receive real-time updates about VKYC events.

Webhooks are event-based notifications that are received when specific events related to Video KYC occur. These notifications help you track the status and progress of VKYC in real-time.

## Add webhooks

Add your webhook URL in our system for us to deliver webhook events.

Follow the instructions below to configure the webhook URL. Ensure to provide the publicly accessible HTTPS URL to your webhook endpoint.

1. Log in to the **[Merchant Dashboard](https://merchant.cashfree.com/merchants/)** and click **Developers**.
2. Click **Webhooks** listed under the **Secure ID** card.
3. Click **Add Webhook URL** in the **Webhook** screen.
4. In the **Add Webhook** popup, fill in the following information:
   * **Webhook URL** - Enter the URL in this field.
5. Click **Test & Add Webhook**.

<Frame caption="Add Webhook">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/cashfreepayments-d00050e9-theme-update/static/secure-id/webhook.png" />
</Frame>

## VKYC webhook events

The following events are triggered at different stages of the Video KYC process:

| Event                           | Description                                              |
| :------------------------------ | :------------------------------------------------------- |
| VKYC\_USER\_LINK\_GENERATED     | User VKYC link has been generated for the user           |
| VKYC\_USER\_LINK\_EXPIRED       | User VKYC link has expired                               |
| VKYC\_USER\_AADHAAR\_VERIFIED   | User's Aadhaar has been successfully verified            |
| VKYC\_USER\_CALL\_SCHEDULED     | User VKYC call has been scheduled                        |
| VKYC\_USER\_PRECHECK\_FAILED    | User Pre-verification checks have failed                 |
| VKYC\_USER\_CALL\_QUEUED        | User has joined and is waiting in the queue for an agent |
| VKYC\_USER\_CALL\_STARTED       | User VKYC call has started with an agent                 |
| VKYC\_USER\_DROPOFF\_FROM\_CALL | User has dropped off from the VKYC call                  |
| VKYC\_USER\_CALL\_COMPLETED     | User VKYC call has been completed successfully           |

<CodeGroup>
  ```Text VKYC_USER_LINK_GENERATED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_LINK_GENERATED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "RECEIVED",
      "sub_status": "LINK_GENERATED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_LINK_EXPIRED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_LINK_EXPIRED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "EXPIRED",
      "sub_status": "VKYC_EXPIRED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-05-22",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_AADHAAR_VERIFIED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_AADHAAR_VERIFIED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "PRE_VIDEO_CALL",
      "sub_status": "AADHAAR_VERIFICATION_SUCCESS",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_CALL_SCHEDULED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_CALL_SCHEDULED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "PRE_VIDEO_CALL",
      "sub_status": "USER_MEETING_SCHEDULED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": "2025-05-23T14:30:00Z"
    }
  }
  ```

  ```Text VKYC_USER_PRECHECK_FAILED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_PRECHECK_FAILED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "PRE_VIDEO_CALL",
      "sub_status": "USER_VIDEO_CHECK_FAILED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_CALL_QUEUED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_CALL_QUEUED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "PRE_VIDEO_CALL",
      "sub_status": "USER_QUEUED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_CALL_STARTED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_CALL_STARTED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "VIDEO_CALL",
      "sub_status": "USER_ACCEPTED_MEETING",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_DROPOFF_FROM_CALL
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_DROPOFF_FROM_CALL",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "VIDEO_CALL",
      "sub_status": "USER_DROPPED_OFF",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "",
      "meeting_schedule": ""
    }
  }
  ```

  ```Text VKYC_USER_CALL_COMPLETED
  {
    "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
    "event_type": "VKYC_USER_CALL_COMPLETED",
    "event_time": "2025-05-22T03:51:14Z",
    "version": "v1",
    "data": {
      "verification_id": "test333",
      "reference_id": 10449,
      "user_reference_id": 10259,
      "user_id": "test11",
      "status": "POST_VIDEO_CALL",
      "sub_status": "AGENT_APPROVED",
      "vkyc_link": "https://forms.qa.cashfree.net/verification/c8k926bpt84g",
      "link_expiry": "2025-06-21",
      "recording_link": "https://storage.cashfree.com/vkyc/recordings/test333.mp4",
      "meeting_schedule": ""
    }
  }
  ```
</CodeGroup>

## Webhook payload fields

The webhook payload contains important metadata in its top-level fields.

| Field        | Type     | Description                                                                                    |
| ------------ | -------- | ---------------------------------------------------------------------------------------------- |
| `signature`  | `string` | A Base64-encoded HMAC-SHA256 signature of the payload, generated using a shared client secret. |
| `event_type` | `string` | Indicates the type of event that triggered the webhook.                                        |
| `event_time` | `string` | The UTC timestamp of when the event occurred, formatted in ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`).  |
| `version`    | `string` | Indicates the webhook format being used. Default version is "v1".                              |
| `data`       | `object` | Contains event-specific details related to this feature.                                       |

## Important status information

For certain webhook Events, specifically **`VKYC_USER_PRECHECK_FAILED`** and **`VKYC_USER_CALL_SCHEDULED`**, you may encounter more than one `subStatus` value.

**Action:** Consult the [Status-SubStatus Mapping](https://www.cashfree.com/docs/api-reference/vrs/v2/video-kyc/vkyc-descriptions#status-substatus-mapping) for a comprehensive list.

<Note>
  Verifying the signature is mandatory before processing any response. Refer to [Signature Verification](/api-reference/vrs/webhook-signature-verification) for more details.
</Note>
