Skip to main content
POST
Initiate Video KYC
Refer to the Status and Status Code reference page for a comprehensive list of status and status_code combinations.

Authorizations

x-client-id
string
header
required

Your unique client identifier issued by Cashfree. You can find this in your Merchant Dashboard.

x-client-secret
string
header
required

The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your Merchant Dashboard.

Headers

x-api-version
string
default:2025-11-01
required

API version to be used. Format is in YYYY-MM-DD.

Example:

"2025-11-01"

Body

application/json

Request parameters to initiate Video KYC verification for a user and generate a VKYC link.

user_id
string
required

Unique identifier for the user, as provided by you during PPI user creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.

Required string length: 1 - 50
Example:

"USER827364"

verification_id
string
required

Unique identifier that you create to identify the VKYC verification request in your system. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.

Required string length: 1 - 50
Example:

"TestVkycVerification"

notification_modes
enum<string>[]
required

Notification channels on which VKYC link is sent.

Minimum array length: 1
Available options:
SMS,
WHATSAPP
Example:

Response

Success response for initiating Video KYC verification.

verification_id
string

Unique identifier for the VKYC verification request, as provided by you during the request.

Example:

"TestVkycVerification"

cf_verification_id
string

Unique identifier for the VKYC verification request, generated by Cashfree.

Example:

"8901234567890123458"

user_id
string

Unique identifier for the user, as provided by you during PPI user creation.

Example:

"USER827364"

status
enum<string>

Status of the VKYC verification process. Refer to VKYC status and status-code mapping for all valid combinations.

Available options:
RECEIVED,
FAILED,
EXPIRED,
AGENT_REVIEWED,
PRE_VIDEO_CALL,
VIDEO_CALL,
AUDITOR_REVIEWED
Example:

"RECEIVED"

status_code
enum<string>

Status code for detailed tracking of the VKYC verification process. Refer to VKYC status and status-code mapping for all valid combinations.

Available options:
LINK_GENERATED,
VKYC_EXPIRED,
AADHAAR_VERIFICATION_SUCCESS,
AADHAAR_VERIFICATION_FAILED,
AADHAAR_VERIFICATION_EXPIRED,
USER_IP_VERIFICATION_SUCCESSFUL,
USER_PROXY_DETECTED,
TECHNICAL_FAILURE,
USER_LOCATION_VERIFICATION_SUCCESS,
USER_LOCATION_OUTSIDE_INDIA,
USER_AUDIO_CHECK_FAILED,
USER_VIDEO_CHECK_FAILED,
USER_LOCATION_PERMISSION_DISABLED,
USER_DEVICE_CHECK_SUCCESS,
USER_QUEUED,
SCHEDULED_USER_QUEUED,
NO_AGENT_FOUND,
AGENT_ASSIGNED_TO_USER,
USER_MEETING_SCHEDULED,
USER_MEETING_CANCELLED,
USER_ACCEPTED_MEETING,
USER_REJECTED_MEETING,
USER_MISSED_MEETING,
USER_DROPPED_OFF,
AGENT_DROPPED_OFF,
USER_ENDED_CALL,
AGENT_ENDED_CALL,
TECHNICAL_ERROR,
AGENT_APPROVED,
AGENT_REJECTED,
AGENT_UNABLE_TO_VALIDATE,
AUDITOR_APPROVED,
AUDITOR_REJECTED,
INITIATE_FAILED
Example:

"LINK_GENERATED"

Generated VKYC session link for the user.

Example:

"https://vkyc.cashfree.com/session/abc123"

The date on which the vKYC link will expire.

Example:

"2026-06-03"

notification_modes
enum<string>[]

Notification channels used for sharing VKYC link, passed in the request.

Available options:
SMS,
WHATSAPP
meeting_schedule
string | null

Scheduled UTC timestamp for the VKYC meeting. Returns null if no meeting is scheduled.

Example:

"2026-06-04T10:15:30Z"

auditor_remarks
string | null

Remarks provided by the auditor during the Video KYC process. Returns null if not yet reviewed.

Example:

"Verification completed successfully"

agent_remarks
string | null

Remarks provided by the agent during the Video KYC process. Returns null if the call is not completed.

Example:

"Pan not available during video call"