> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Configure Cashfree Video KYC webhooks to receive real-time event updates so you can track session progress, completion, and outcomes without polling APIs.

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://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/webhook.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=d8662cc06a8874021806a0119209d58f" width="3424" height="1796" data-path="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.              |
| VKYC\_AUDITOR\_REVIEW\_COMPLETED | Triggered when an auditor approves or rejects a VKYC packet. |

<AccordionGroup>
  <Accordion title="VKYC_USER_LINK_GENERATED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_LINK_EXPIRED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_AADHAAR_VERIFIED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_CALL_SCHEDULED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": "2025-05-23T14:30:00Z",
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_PRECHECK_FAILED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_CALL_QUEUED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_CALL_STARTED">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_DROPOFF_FROM_CALL">
    ```json theme={"dark"}
    {
      "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": null,
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": null
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_USER_CALL_COMPLETED">
    ```json theme={"dark"}
    {
      "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/ashortCode",
        "link_expiry": "2025-06-21",
        "recording_link": "https://storage.cashfree.com/vkyc/recordings/test333.mp4",
        "meeting_schedule": null,
        "auditor_remarks": null,
        "agent_remarks": "Good to go"
      }
    }
    ```
  </Accordion>

  <Accordion title="VKYC_AUDITOR_REVIEW_COMPLETED">
    ```json theme={"dark"}
    {
      "signature": "wBBgeTOZUyXgj6vySAm9fJYCtdXvlVHQCA6dV5uVssw=",
      "event_type": "VKYC_AUDITOR_REVIEW_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": "AUDITOR_REVIEWED",
        "sub_status": "AUDITOR_APPROVED",
        "vkyc_link": "https://forms.qa.cashfree.net/verification/ashortCode",
        "link_expiry": "2025-06-21",
        "recording_link": "https://storage.cashfree.com/vkyc/recordings/test333.mp4",
        "meeting_schedule": null,
        "auditor_remarks": "Looks Good",
        "agent_remarks": "Good to go"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## 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.                                       |

### data object fields

| Field               | Type               | Description                                                                                             |
| ------------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| `verification_id`   | `string`           | The unique ID for the VKYC verification request.                                                        |
| `reference_id`      | `number`           | The internal reference ID for the request.                                                              |
| `user_reference_id` | `number`           | The internal reference ID for the user.                                                                 |
| `user_id`           | `string`           | The user ID provided when creating the VKYC request.                                                    |
| `status`            | `string`           | The current status of the VKYC request.                                                                 |
| `sub_status`        | `string`           | The sub-status providing additional detail about the current state.                                     |
| `vkyc_link`         | `string`           | The URL shared with the user to complete the VKYC process.                                              |
| `link_expiry`       | `string`           | The date on which the VKYC link expires.                                                                |
| `recording_link`    | `string` or `null` | A link to the VKYC session recording. Returns `null` until the video call is completed.                 |
| `meeting_schedule`  | `string` or `null` | The scheduled UTC timestamp for the VKYC meeting. Returns `null` if no meeting is scheduled.            |
| `auditor_remarks`   | `string` or `null` | Remarks provided by the auditor after reviewing the VKYC session. Returns `null` if not yet reviewed.   |
| `agent_remarks`     | `string` or `null` | Remarks provided by the agent at the end of the VKYC call. Returns `null` if the call is not completed. |

## 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>
