India eKYC verification matches submitted individual data against Indian sources of truth. See the eKYC API Reference for common response semantics that apply across all sources.
Available sources
| Source | API source string | Description |
|---|---|---|
| INDIA PAN | INDIA_PAN |
Verifies submitted data against records associated with the provided PAN (Permanent Account Number). |
| India DMV | {/* TODO: source string unknown */} | Verifies submitted driver's license details. |
{/* TODO: Confirm with PM — no existing API documentation is available for India DMV. Provide source string, request parameter list, response schema, and overallLevel calculation. Also confirm the customer-facing description: "DMV" is a United States term for driver's license authorities and does not correspond to a real Indian institution, so confirm whether this source verifies against a driver's license database (Sarathi or a state-level RTO record) or something else. */}
INDIA PAN
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be INDIA_PAN. |
country |
Mandatory | Must be IN. |
panNumber |
Mandatory | Indian PAN (Permanent Account Number). Ten characters: five letters, four digits, one letter. |
firstName |
Mandatory | First name of the individual. |
middleName |
Optional | Middle name of the individual. |
surName |
Mandatory | Last name of the individual. |
Response fields
INDIA PAN anchors verification on the PAN card. See the eKYC API Reference for common status values.
| Field | Statuses | Description |
|---|---|---|
panNumberMatch |
match, nomatch |
Indicates whether the PAN number was found in the source of truth. |
firstNameMatch |
match, approximatematch, nomatch |
Matches first name submitted against the value in the source of truth. |
middleNameMatch |
match, approximatematch, nomatch |
Matches middle name submitted against the value in the source of truth. |
lastNameMatch |
match, approximatematch, nomatch |
Matches last name submitted against the value in the source of truth. |
fullNameMatch |
match, approximatematch, nomatch |
Matches full name submitted against the full name associated with the PAN number in the source of truth. |
panNameMatch |
match, approximatematch, nomatch |
Matches the name on the PAN card record against the name on the physical PAN card document. |
panLastUpdate |
Date | Date the PAN card was last updated. |
panStatus |
Active, Inactive |
Indicates whether the PAN number is active or inactive. |
panStatusDescription |
String | Indicates whether the PAN number is existing and valid. |
panHolderType |
String | The type of entity for the PAN number provided (for example, Individual, Business). |
overallLevel |
low, medium, high |
Overall risk level. See below for calculation logic. |
overallLevel calculation
overallLevel is calculated based on the submitted full name and the name on the PAN card:
lowwhenfullNameMatchandpanNameMatchare bothmatch.highwhenfullNameMatchisnomatchORpanNameMatchisnomatch.mediumfor all other combinations.
Contact your Incode representative to customize the overallLevel calculation for your use case.
Sample response
{
"kyc": [
{ "key": "panNumberMatch", "status": "match" },
{ "key": "fullNameMatch", "status": "approximatematch" },
{ "key": "panNameMatch", "status": "approximatematch" },
{ "key": "panLastUpdate", "status": "12-02-1998" },
{ "key": "panStatus", "status": "Active" },
{ "key": "panStatusDescription", "status": "Existing and Valid" },
{ "key": "panHolderType", "status": "Individual" },
{ "key": "overallLevel", "status": "medium" }
]
}
India DMV
{/* TODO: No existing API documentation is available for this source. Request source string, request parameter list, response schema, and overallLevel calculation from PM. */}
Documentation for this source is forthcoming. Contact your Incode representative for details in the meantime.