Skip to main content

CVL KRA Download API

This document highlights the CVL KRA Download API details.

Objective

The CVL KRA Download API retrieves an applicant's existing KYC data from registered KYC Registration Agencies (KRAs). These include CVL, NDML, CAMS, Karvy, and Dotex.

API URL

https://ind-engine.thomas.hyperverge.co/v1/CVLKRADownload

API Endpoint

CVLKRADownload

Overview

The API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should Download all images and files as form-data through a POST request.

Authentication

You need a unique pair of application ID (appId) and application key (appKey) from HyperVerge to verify your identity for accessing the API.

API Request Details

Method - POST

Headers

ParameterMandatory or OptionalDescriptionAllowed Values
content-type MandatoryThis parameter defines the media type for the request payloadapplication/json
appId MandatoryThe application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
appKey MandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
transactionIdMandatoryA unique identifier for tracking a user journeyThis should be both unique and easily associated with the user's journey in your application(s)

Inputs

The following table provides the details of the parameters required for the API's request body:

ParameterMandatory or OptionalDescriptionAllowed ValuesDefault Value
panMandatoryThe user's Permanent Account Number (PAN)Not ApplicableNot Applicable
dateOfBirthMandatoryThe user's date of birthThe input format for this parameter should be 'DD-MM-YYYY'Not Applicable
KRATypeMandatoryThe KRA where the user's KYC records are maintained "CVLKRA", "CAMS", "NDML", "KARVY", "DOTEX"Not Applicable
fetchTypeMandatoryThe category of information to be retrieved from the KRA"I", "E", and "X"
info
I – For when DATA and IMAGE are required
E – For when only DATA is required
X – For when only IMAGE is required
Not Applicable

Request

The following code snippet demonstrates a standard curl request for the API:

curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/CVLKRADownload' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionId: <Enter_the_HyperVerge_transactionID>' \
--data '{
"pan": "<Enter_the_PAN>",
"dateOfBirth": "<Enter_the_Date_of_Birth_DD-MM-YYYY>",
"KRAType": "<Enter_the_name_of_KRA>",
"fetchType": "<Enter_I_E_or_X>"
}'

Success Response

The following code snippets demonstrate success responses from the API:

{
"status": "success",
"statusCode": 200,
"result": {
"kycData": {
"appIopFlg": "<Interoperable_Flag>",
"appPosCode": "<Point_Of_Service_Code>",
"appType": "<Applicant_Type>",
"appKycMode": "<KYC_Mode_Code>",
"appNo": "<Application_Number>",
"appDate": "<Application_Date_in_DD-MM-YYYY_Format>",
"appPanNo": "<PAN_Number>",
"appPanCopy": "<PAN_Copy_Provided_Flag>",
"appExmt": "<Exemption_Status>",
"appExmtCat": null,
"appExmtIdProof": "<Exemption_ID_Proof_Type>",
"appIpvFlag": "<IPV_Completed_Flag>",
"appIpvDate": "<IPV_Completion_Date_in_DD-MM-YYYY_Format>",
"appGen": "<Gender_Code>",
"appName": "<Full_Name_of_the_Applicant>",
"appFName": "<Father's_Name>",
"appRegno": "<Registration_Number>",
"appDobDt": "<Date_Of_Birth_in_DD-MM-YYYY_Format>",
"appCommenceDt": "<Commencement_Date_or_NA>",
"appNationality": "<Nationality>",
"appOthNationality": null,
"appCompStatus": "<Compliance_Status_Code>",
"appOthCompStatus": "<Other_Compliance_Status>",
"appResStatus": "<Residential_Status>",
"appResStatusProof": "<Residential_Status_Proof>",
"appUidNo": null,
"appCorAdd1": "<Correspondence_Address_Line_1>",
"appCorAdd2": "<Correspondence_Address_Line_2>",
"appCorAdd3": "<Correspondence_Address_Line_3>",
"appCorCity": "<Correspondence_City>",
"appCorPincd": "<Correspondence_Pincode>",
"appCorState": "<Correspondence_State>",
"appCorCtry": "<Correspondence_Country>",
"appOffNo": null,
"appResNo": null,
"appMobNo": "<Mobile_Number>",
"appFaxNo": null,
"appEmail": "<Email_Address>",
"appCorAddProof": "<Address_Proof_Type>",
"appCorAddRef": "<Address_Reference_or_NA>",
"appCorAddDt": "<Address_Date_or_Default>",
"appPerAdd1": "<Permanent_Address_Line_1>",
"appPerAdd2": "<Permanent_Address_Line_2>",
"appPerAdd3": "<Permanent_Address_Line_3>",
"appPerCity": "<Permanent_City>",
"appPerPincd": "<Permanent_Pincode>",
"appPerState": "<Permanent_State>",
"appPerCtry": "<Permanent_Country>",
"appPerAddProof": "<Permanent_Address_Proof>",
"appPerAddRef": "<Permanent_Address_Reference_or_NA>",
"appPerAddDt": "<Permanent_Address_Date_or_Default>",
"appIncome": "<Income_Bracket>",
"appOcc": "<Occupation_Type>",
"appOthOcc": null,
"appPolConn": null,
"appDocProof": "<Document_Proof_Statement>",
"appInternalRef": null,
"appBranchCode": "<Branch_Code_or_NA>",
"appMarStatus": "<Marital_Status>",
"appNetwrth": null,
"appNetworthDt": "<Networth_Date_or_Default>",
"appIncorpPlc": "<Place_of_Incorporation_or_NA>",
"appOtherinfo": null,
"appFiller1": null,
"appFiller2": "<Filler_Field_Value>",
"appFiller3": "<Filler_Field_Value_or_NA>",
"appRemarks": null,
"appStatus": "<Application_Status_Code>",
"appStatusdt": "<Application_Status_Date_in_DD-MM-YYYY_Format>",
"appErrorDesc": null,
"appDumpType": "<Dump_Type>",
"appDnlddt": "<Download_Date_in_DD-MM-YYYY_Format>",
"appKraInfo": "<KRA_Source>",
"appSignature": null,
"appAccOpendt": null,
"appAccActivedt": null,
"appAccUpdtdt": null,
"appUidToken": null,
"appVerNo": "<Version_Number>",
"appFatcaApplicableFlag": "<FATCA_Flag>",
"appFatcaBirthPlace": null,
"appFatcaBirthCountry": null,
"appFatcaCountryRes": null,
"appFatcaCountryCityzenship": null,
"appFatcaDateDeclaration": "<FATCA_Declaration_Date>"
},
"appPanSumm": {
"appReqDate": "<PAN_Request_Timestamp>",
"appOthkraBatch": "<Other_KRA_Batch_Number>",
"appOthkraCode": "<Other_KRA_Code>",
"appResponseDate": "<PAN_Response_Timestamp>",
"appTotalRec": "<Total_Records>",
"noOfFatcaAddlDtlsRecords": "<FATCA_Additional_Records_Count>"
}
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Success Response Details

ParameterTypeDescription
statusstringThe status of the API request
statusCodeintegerThe HTTP status code of the response
resultobjectContainer for the response data
metaDataobjectMetadata associated with the request
appIopFlgstringIndicates whether the KYC application is associated with CVL or another KRA. Returns "I" if the application belongs to CVL, and "II" if it belongs to any other KRA
appPosCodestringPOS code of the Asset Management Company (AMC) on whose behalf the request is being updated
appTypestringSpecifies whether the application is for an individual applicant or a non-individual applicant
Note
From this point forward, 'user' refers to an individual applicant, and 'organization' refers to a non-individual applicant
appKycModestringThe mode of KYC verification. It could be one of the following:
  • Normal(In-person) KYC
  • e-KYC with OTP
  • e-KYC with Biometric
  • Online Data Entry and IPV
  • Offline KYC - Aadhaar
  • Digilocker
appNostringThe unique number generated for each KYC application
appDatestringThe date on which the KYC application was submitted
appPanNostringThe PAN of the user
appPanCopystringThe value is 'yes' if the user's PAN card image was submitted; otherwise, the value is 'no'
appExmtstringThe value is 'no' if the user's PAN card image has been submitted, and 'yes' if user's exempted from submitting the PAN card
appExmtCatstringThe user was exempted from submitting their PAN card image due to one or more valid reasons. For the complete list of exemption criteria, please refer to this page
appExmtIdProofstringThe document used as Proof of Identity (when the user is exempted from submitting PAN as a valid ID Proof). For the complete list of valid ID proof documents, please refer to this page
appIpvFlagstringThe value is 'yes' if an In-Person Verification (IPV) was conducted for the KYC application; 'no' if not conducted, or 'exempted' if completed online
appIpvDatestringThe date when the IPV was conducted, if applicable
appGenstringThe gender of the user
appNamestringThe full name of the user
appFNamestringThe name of the user's father/husband
appRegnostringThe registration number of the organization
appDobDtstringThe date of birth of the user
appCommenceDtstringThe date when the organization commenced business
appNationalitystringThe nationality of the user
appOthNationalitystringThe user's nationality, if not Indian; for example, Argentina, Greece, etc
appCompStatusstringThe type of organization (Company Status). For the complete list of different types of valid organizations , please refer to this page.
appOthCompStatusstringThe status of the company, if 'Others' (as from appCompStatus's value)
appResStatusstringThe residential status of the user. It could be one of the following:
  • Resident Individual
  • Non-Resident Individual
  • Foreign National
  • QFI
  • Eligible Foreign Investor - Category III
appResStatusProofstringThe address proof for a non-residential Indian or person of Indian origin. It could be one of the following documents:
  • Passport
  • PIO Card
  • OCI Card
appUidNostringThe last four digits of the UID/Aadhaar number of the user
appCorAdd1stringThe first line of the correspondence address. It includes the house number and the street name
appCorAdd2stringThe second line of the correspondence address. It includes the district name
appCorAdd3stringThe third line of the correspondence address. It includes the name of the corresponding state
appCorCitystringThe city of correspondence address
appCorPincdstringThe PIN code for correspondence address
appCorStatestringThe state of correspondence address
appCorCtrystringThe country of correspondence address
appOffNostringThe user's office contact number
appResNostringThe user's residential contact number
appMobNostringThe user's mobile phone number
appFaxNostringThe fax number for the user
appEmailstringThe email address of the user
appCorAddProofstringThe document serving as proof of the correspondence address.
For the complete list of accepted documents, please refer to this page
appCorAddRefstringThe identification number linked to the correspondence address proof document. For instance, if the Aadhaar card is provided as the address proof, the Aadhaar number serves as the reference ID
appCorAddDtstringThe validity date of the corresponding address proof, as specified in the address proof document
appPerAdd1stringThe first line of the permanent address. It includes the house number and the street name
appPerAdd2stringThe second line of the permanent address. It includes the name of the district
appPerAdd3stringThe third line of the permanent address. It includes the name of the state
appPerCitystringThe city of the permanent address
appPerPincdstringThe PIN code for the permanent address
appPerStatestringThe state of the permanent address
appPerCtrystringThe country of the permanent address
appPerAddProofstringThe document serving as proof of the permanent address.
For the complete list of accepted documents, please refer to this page
appPerAddRefstringThe identification number linked to the permanent address proof document. For instance, if the Aadhaar card is provided as the address proof, the Aadhaar number serves as the reference ID
appPerAddDtstringThe validity date of the permanent address proof, as specified in the address proof document
appIncomestringThe user's gross annual income, represented as a range. For more details on income slabs, please refer to this page
appOccstringThe occupation of the user, specified by selecting a domain from this list
appOthOccstringThe occupation details of the user, if 'Others' (as from appOcc's value)
appPolConnstringThe PEP status of the user, which they can select based on the category that applies to them. The categories are:
  • Not Politically Exposed
  • Politically Exposed Person (PEP)
  • Related to a Politically Exposed Person(RPEP)
appDocProofstringThe details of the documents submitted by the user: whether they are self-certified copies or true copies of the documents
appInternalRefstringInternal reference number for intermediaries
appBranchCodestringThe branch code to which the KYC is attached
appMarStatusstringThe marital status of the user, whether they are married or unmarried
appNetwrthstringThe net worth of the user or the organization
appNetworthDtstringThe net worth of the user or the organization as on date
appIncorpPlcstringThe place of incorporation of the organization, if applicable
appOtherinfostringAny additional information about the user or organization
appRemarksstringThe remarks associated with the application
appStatusstringA code that represents the current status of the KYC application. The complete list of this can be accessed here
appStatusdtstringThe date when the KYC application was initiated
appErrorDescstringThe description of any errors encountered
appDumpTypestringThe type of data dump classification
appDnlddtstringThe date when data was downloaded
appKraInfostringThe KRA information
appSignaturestringThe Digital signature information
appAccOpendtstringThe date when account was opened
appAccActivedtstringThe date when account was activated
appAccUpdtdtstringThe date when account was last updated
appUidTokenstringThe unique identifier token
appVerNostringThe Version number of the application
appFatcaApplicableFlagstringThe confirmation on whether the application is subject to FATCA regulations
appFatcaBirthPlacestringPlace of birth for FATCA reporting
appFatcaBirthCountrystringThe country of birth for FATCA reporting
appFatcaCountryResstringThe country of residence for FATCA reporting
appFatcaCountryCityzenshipstringThe country of citizenship for FATCA reporting
appFatcaDateDeclarationstringThe date of FATCA declaration
appReqDatestringThe date and time of request submission
appOthkraBatchstringThe batch number for other KRA processing
appOthkraCodestringThe code for the other KRA agency
appResponseDatestringThe date and time when response was received
appTotalRecstringThe total number of records in the response
noOfFatcaAddlDtlsRecordsstringThe number of additional FATCA detail records
requestIdstringThe unique identifier for the request
transactionIdstringThe identifier for the transaction

Error Responses

The following are some error responses from the API:

{
"status": "failure",
"statusCode": "400",
"message": "Invalid PAN format"
}
{
"message": "Missing/Invalid credentials",
"statusCode": 401,
"status": "failure"
}

Error Response Details

An error response from the module contains a failure status, with a relevant status code and error message.
The following table lists all error responses:

Status CodeError MessageError Description
400Invalid PAN formatThe PAN provided is not in the correct format. ('CCCCCDDDDC' format, where 'C' represents a character and 'D' represents a digit)
400Invalid DOB providedThe date of birth provided is not valid
400Invalid request detailsThe request details provided are incomplete or incorrect
400Duplicate requestThe request has already been submitted previously ???
401Missing/Invalid credentialsThe request is either missing the mandatory appId and appKey combination or has invalid values
415Unsupported media typeThe media type provided in the request is not supported
500Internal Server ErrorPlease check the request headers or contact the HyperVerge team for resolution
500Invalid User ID / PosCode / Password / Access Privilege Not SetThe provided user credentials or access privileges are not correctly configured
500Invalid Intermediary Code providedThe POS code of the AMC provided in the request is not valid

Application Status Codes

appStatus codes and their respective descriptions, representing the current status of the KYC Application.

CodeDescription
00DRAFT
01SUBMITTED
02DOCUMENTS RECEIVED
03UNDER VERIFICATION
04HOLD
06DEACTIVATED
07KRA Validated
11OLD RECORD SUBMITTED
12OLD RECORD DOCUMENT RECEIVED
13OLD RECORD UNDER VERIFICATION
14OLD RECORD ON HOLD
18OLD RECORD VERIFIED BY CVLKRA
19OLD RECORD REJECTED BY CVLKRA
21OLD RECORD SCANNED COPY RECEIVED
24OLD RECORD ON HOLD BY CVLKRA
28OLD RECORD VERIFIED BY CVLKRA (WITHOUT DOCUMENTATION)
29REJECTED DUE TO LATEST RECORD AVAILABILITY (TILL THE CASE IS APPROVED)
44HOLD BY CVLKRA
98VERIFIED BY CVLKRA
99REJECTED BY CVLKRA
199REJECTED - PRESENT IN NDML
299REJECTED - PRESENT IN DOTEX
399REJECTED - PRESENT IN CAMS KRA
499REJECTED - PRESENT IN KARVY KRA
998MF - VERIFIED BY CVLMF
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: