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

# Status Codes and Templates

> Understand VKYC status codes, sub-status combinations, user templates, and agent templates for Video KYC implementation.

This reference guide explains the status codes, user templates, and agent templates available for Video KYC (VKYC) implementation. Use this information to understand response parameters and configure your VKYC flow.

## Status and sub-status reference

The following table describes all possible status and sub-status combinations returned by the VKYC API, along with recommended actions for each scenario.

### Request status types

The status codes are organised by verification phase. Each phase contains specific sub-status codes that indicate the current state and required actions.

<Accordion title="REJECTED - Request rejected">
  | Sub-status             | Description                                         | Recommended action                              |
  | ---------------------- | --------------------------------------------------- | ----------------------------------------------- |
  | `INSUFFICIENT_BALANCE` | The request is rejected due to insufficient balance | Add funds to your account and retry the request |
</Accordion>

<Accordion title="RECEIVED - Request accepted">
  | Sub-status       | Description                                       | Recommended action                                          |
  | ---------------- | ------------------------------------------------- | ----------------------------------------------------------- |
  | `LINK_GENERATED` | The link for Video KYC was generated successfully | Share the link with the user through your preferred channel |
</Accordion>

<Accordion title="PRE_VIDEO_CALL - Pre-verification checks">
  | Sub-status                           | Description                                           | Recommended action                                     |
  | ------------------------------------ | ----------------------------------------------------- | ------------------------------------------------------ |
  | `AADHAAR_VERIFICATION_SUCCESS`       | The user's Aadhaar details were verified successfully | Proceed to the next verification step                  |
  | `AADHAAR_VERIFICATION_FAILED`        | The user's Aadhaar details could not be verified      | Ask the user to retry with correct Aadhaar information |
  | `AADHAAR_VERIFICATION_EXPIRED`       | The Aadhaar verification session expired              | Restart the Aadhaar verification process               |
  | `USER_IP_VERIFICATION_SUCCESSFUL`    | The user's IP address was verified successfully       | Continue with the verification flow                    |
  | `USER_PROXY_DETECTED`                | A proxy or VPN was detected                           | Ask the user to disable proxy/VPN and retry            |
  | `TECHNICAL_FAILURE`                  | A technical issue occurred during verification        | Retry after some time or contact support               |
  | `USER_LOCATION_VERIFICATION_SUCCESS` | The user's location was verified successfully         | Proceed to device checks                               |
  | `USER_LOCATION_OUTSIDE_INDIA`        | The user is outside India                             | Reject the request or ask user to retry from India     |
  | `USER_AUDIO_CHECK_FAILED`            | The user's microphone is not enabled                  | Ask the user to enable microphone access               |
  | `USER_VIDEO_CHECK_FAILED`            | The user's camera is not enabled                      | Ask the user to enable camera access                   |
  | `USER_LOCATION_PERMISSION_DISABLED`  | The user did not grant location access                | Ask the user to allow location permissions             |
  | `USER_DEVICE_CHECK_SUCCESS`          | The user's device passed all checks                   | Proceed to agent assignment                            |
  | `USER_QUEUED`                        | The user is waiting for an available agent            | Display queue position and estimated wait time         |
  | `SCHEDULED_USER_QUEUED`              | The user is queued for a scheduled appointment        | Notify user of scheduled time                          |
  | `NO_AGENT_FOUND`                     | No agent is available at this time                    | Retry after some time or offer scheduling              |
  | `AGENT_ASSIGNED_TO_USER`             | An agent has been assigned to the user                | Notify user that verification will begin               |
  | `USER_MEETING_SCHEDULED`             | The user's meeting is scheduled successfully          | Send meeting details to the user                       |
  | `USER_MEETING_CANCELLED`             | The user's meeting was cancelled                      | Offer rescheduling options                             |
</Accordion>

<Accordion title="VIDEO_CALL - During video verification">
  | Sub-status              | Description                                | Recommended action                        |
  | ----------------------- | ------------------------------------------ | ----------------------------------------- |
  | `USER_ACCEPTED_MEETING` | The user accepted the meeting invitation   | Start the VKYC verification process       |
  | `USER_REJECTED_MEETING` | The user rejected the meeting invitation   | Reschedule or mark verification as failed |
  | `USER_MISSED_MEETING`   | The user missed the scheduled meeting      | Offer rescheduling options                |
  | `USER_DROPPED_OFF`      | The user disconnected during verification  | Log the issue and offer reconnection      |
  | `AGENT_DROPPED_OFF`     | The agent disconnected during verification | Retry with another agent                  |
  | `USER_ENDED_CALL`       | The user ended the call                    | Review session completeness               |
  | `AGENT_ENDED_CALL`      | The agent ended the call                   | Review agent's remarks and next steps     |
</Accordion>

<Accordion title="FAILED - Verification failed">
  | Sub-status        | Description                                    | Recommended action                            |
  | ----------------- | ---------------------------------------------- | --------------------------------------------- |
  | `TECHNICAL_ERROR` | A technical error occurred during verification | Retry the verification or escalate to support |
</Accordion>

<Accordion title="AGENT_REVIEWED - Agent review complete">
  | Sub-status                 | Description                                    | Recommended action                      |
  | -------------------------- | ---------------------------------------------- | --------------------------------------- |
  | `AGENT_APPROVED`           | The agent approved the user's KYC verification | Proceed to auditor review stage         |
  | `AGENT_REJECTED`           | The agent rejected the user's KYC verification | Notify user with rejection reason       |
  | `AGENT_UNABLE_TO_VALIDATE` | The agent could not complete validation        | Retry with another agent or new session |
</Accordion>

<Accordion title="AUDITOR_REVIEWED - Final review complete">
  | Sub-status         | Description                                      | Recommended action            |
  | ------------------ | ------------------------------------------------ | ----------------------------- |
  | `AUDITOR_APPROVED` | The auditor approved the user's KYC verification | Mark verification as complete |
  | `AUDITOR_REJECTED` | The auditor rejected the user's KYC verification | Mark verification as failed   |
</Accordion>

## User templates

User templates define the customer journey and determine which verification steps are included in the VKYC process. The template you choose affects the user experience and verification flow.

### vkyc\_user\_template\_v1

This is the standard template that includes mobile OTP authentication, conditional DigiLocker Aadhaar verification, and agent-assisted video verification.

The template behaviour depends on whether Aadhaar details are provided in the [Initiate Video KYC Request](/api-reference/vrs/v2/video-kyc/initiate-vkyc):

<Tabs>
  <Tab title="With Aadhaar details">
    **When Aadhaar details are provided:** The DigiLocker verification step is skipped, creating a streamlined 2-step process.

    <CardGroup cols={2}>
      <Card title="Step 1: Mobile authentication" icon="mobile">
        <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/mobile-login.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=5dbab494b4670ca5354ccc760bf0d0d1" width="200" className="mx-auto mb-3 border border-gray-200 rounded-lg shadow-sm" alt="Mobile OTP authentication screen" data-path="static/secure-id/vkyc/mobile-login.png" />

        <p className="text-sm text-gray-600">User authenticates using mobile OTP sent to their registered number</p>
      </Card>

      <Card title="Step 2: Video verification" icon="video">
        <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/vkyc-start-screen.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=28ab24f74a4d2e28d7a4eae8e2a7a2cc" width="200" className="mx-auto mb-3 border border-gray-200 rounded-lg shadow-sm" alt="Video verification start screen" data-path="static/secure-id/vkyc/vkyc-start-screen.png" />

        <p className="text-sm text-gray-600">Direct connection with verification agent for identity confirmation</p>
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Without Aadhaar details">
    **When Aadhaar details are not provided:** The complete 3-step verification process including DigiLocker authentication.

    <CardGroup cols={3}>
      <Card title="Step 1: Mobile authentication" icon="mobile">
        <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/mobile-login.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=5dbab494b4670ca5354ccc760bf0d0d1" width="180" className="mx-auto mb-3 border border-gray-200 rounded-lg shadow-sm" alt="Mobile OTP authentication screen" data-path="static/secure-id/vkyc/mobile-login.png" />

        <p className="text-sm text-gray-600">User authenticates using mobile OTP</p>
      </Card>

      <Card title="Step 2: DigiLocker verification" icon="id-card">
        <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/vkyc-aadhaar-digilocker.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=51f489845816ffd8a2b008388fb99aac" width="180" className="mx-auto mb-3 border border-gray-200 rounded-lg shadow-sm" alt="DigiLocker Aadhaar verification screen" data-path="static/secure-id/vkyc/vkyc-aadhaar-digilocker.png" />

        <p className="text-sm text-gray-600">Aadhaar verification through DigiLocker</p>
      </Card>

      <Card title="Step 3: Video verification" icon="video">
        <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/vkyc-start-screen.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=28ab24f74a4d2e28d7a4eae8e2a7a2cc" width="180" className="mx-auto mb-3 border border-gray-200 rounded-lg shadow-sm" alt="Video verification start screen" data-path="static/secure-id/vkyc/vkyc-start-screen.png" />

        <p className="text-sm text-gray-600">Agent-assisted video verification call</p>
      </Card>
    </CardGroup>
  </Tab>
</Tabs>

<Note>
  **Custom templates:** To create a custom `user_template` tailored to your specific requirements, contact your account manager.
</Note>

## Agent templates

Agent templates define the verification steps that agents must complete during the VKYC process. These templates ensure consistent verification procedures across all sessions.

### vkyc\_agent\_template\_v2

This is the default template used by verification agents during the VKYC process. It includes standardised verification steps and documentation requirements.

<Card title="Default agent verification template" icon="user-check">
  <div className="flex justify-center">
    <img src="https://mintcdn.com/cashfreepayments-d00050e9/iGW1Vcgx_yo5v_1g/static/secure-id/vkyc/vkyc-agent-template.png?fit=max&auto=format&n=iGW1Vcgx_yo5v_1g&q=85&s=e789e779190af8d6d7fac6d366fd013a" width="250" className="border border-gray-200 rounded-lg shadow-sm" alt="Default agent template interface showing verification steps" data-path="static/secure-id/vkyc/vkyc-agent-template.png" />
  </div>

  <p className="text-sm text-gray-600 mt-3 text-center">
    Standard agent interface with verification checklist and documentation requirements
  </p>
</Card>

<Note>
  **Custom agent templates:** To create a custom `agent_template` with specific verification steps or compliance requirements, contact your account manager.
</Note>
