India eKYC verification matches submitted individual data against an Indian government source of truth. See the eKYC API Reference for common response semantics that apply across all sources.
Available sources
| Source | API source string | Description |
|---|---|---|
| India DMV | IN_DMV |
Verifies submitted driver's license details. |
India DMV
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be IN_DMV. |
country |
Mandatory | Must be IN. countryCode takes priority over country if both are provided. |
firstName |
Mandatory | First name of the individual. Must not contain digits. |
surName |
Mandatory | Last name of the individual. Must not contain digits. |
middleName |
Optional | Middle name of the individual. Must not contain digits. |
dateOfBirth |
Mandatory | Date of birth. Format: YYYY-MM-DD (for example, 1991-08-02). |
idNumber |
Mandatory | Driving license number (for example, SS-RRRR-YYYY-NNNNNNN). |
street |
Optional | House number and street name of the individual's address. |
city |
Optional | City of the individual's address (for example, Bengaluru). |
state |
Optional | State of the individual's address (for example, Karnataka). |
postalCode |
Optional | PIN code. Must be exactly 6 digits (for example, 560001). |
gender |
Optional | Accepted values are m or f. |
The endpoint can accept an empty body ({}), in which case information is pulled from module configuration and session details.
Sample request
{
"plugins": ["kyc"],
"source": "IN_DMV",
"country": "IN",
"firstName": "Rahul",
"middleName": "Kumar",
"surName": "Sharma",
"dateOfBirth": "1991-08-02",
"idNumber": "DL0420110123456",
"street": "24 MG Road",
"city": "Bengaluru",
"state": "Karnataka",
"postalCode": "560001",
"gender": "m"
}
Sample response
{
"kyc": [
{ "key": "firstNameMatch", "status": "exact" },
{ "key": "middleNameMatch", "status": "exact" },
{ "key": "lastNameMatch", "status": "exact" },
{ "key": "fullNameMatch", "status": "exact" },
{ "key": "dobMatch", "status": "exact" },
{ "key": "idNumMatch", "status": "exact" },
{ "key": "streetMatch", "status": "exact" },
{ "key": "cityMatch", "status": "exact" },
{ "key": "stateMatch", "status": "exact" },
{ "key": "postalCodeMatch", "status": "exact" },
{ "key": "fullAddressMatch", "status": "exact" },
{ "key": "genderMatch", "status": "nomatch" },
{ "key": "overallLevel", "status": "low" }
]
}
Response fields
| Field | Statuses | Description |
|---|---|---|
firstNameMatch |
exact, fuzzy, nomatch |
Matches first name submitted against the value in the source of truth. |
middleNameMatch |
exact, fuzzy, nomatch, nodata |
Matches middle name submitted against the value in the source of truth. |
lastNameMatch |
exact, fuzzy, nomatch |
Matches last name submitted against the value in the source of truth. |
fullNameMatch |
exact, fuzzy, nomatch |
Matches full name (first, middle, last) submitted against the full name in the source of truth. |
dobMatch |
exact, fuzzy, nomatch, nodata |
Matches date of birth submitted against the value in the source of truth. |
idNumMatch |
exact, fuzzy, nomatch, nodata |
Matches driving license number submitted against the value in the source of truth. |
streetMatch |
exact, fuzzy, nomatch, nodata |
Matches street submitted against the value in the source of truth. |
cityMatch |
exact, fuzzy, nomatch, nodata |
Matches city submitted against the value in the source of truth. |
stateMatch |
exact, fuzzy, nomatch, nodata |
Matches state submitted against the value in the source of truth. |
postalCodeMatch |
exact, fuzzy, nomatch, nodata |
Matches postal code submitted against the value in the source of truth. |
fullAddressMatch |
exact, fuzzy, nomatch, nodata |
Matches full address (street, city, state, postal code) submitted against the full address in the source of truth. |
genderMatch |
exact, fuzzy, nomatch, nodata |
Matches gender submitted against the value in the source of truth. |
overallLevel |
low, medium, high |
Overall risk level based on submitted full name, date of birth, and driving license number. See below for calculation logic. |
overallLevel calculation
overallLevel is calculated based on the submitted full name, date of birth, and driving license number:
lowwhenfullNameMatch,dobMatch, andidNumMatchare allexact.highwhenfullNameMatch,dobMatch, ORidNumMatcharenomatch.mediumfor all other combinations.
Contact your Incode representative to customize the overallLevel calculation for your use case.
Error responses
See the eKYC API Reference for standard HTTP response codes and error handling conventions.
Single Session Dashboard results
Verification results for individual sessions are available in the Single Session view in Dashboard.