BrandKwikID Documentation
API SuiteDriver's License Verification

V1

Verify an Indian driving licence against RTO records with DL number, DOB, and consent. Server-side POST with Bearer auth.

Driver's License Verification (V1)

API reference

Try itLoading playground…
Loading…
AuthorizationBearer <token>

JWT Bearer token authentication. Obtain a token from the KwikID dashboard.

In: header

consentstring

Applicant consent for DL verification. Must be Y.

Value in"Y"
dl_no?string

Driving licence number as printed on the licence (for example DL22XXXX1234567).

dob?string

Date of birth in YYYY-MM-DD format.

Formatdate

Response Body

curl -X POST "https://__playground__/verification/v1/idverification/dl/basic" \  -H "Content-Type: application/json" \  -d '{    "consent": "Y",    "dl_no": "DL22XXXX1234567",    "dob": "1990-06-15"  }'

{
  "COV": [
    "NT",
    "TR"
  ],
  "COV_category": [
    "MCWG",
    "LMV"
  ],
  "captcha_tries": 2,
  "date_of_birth": "15-06-1990",
  "expiry_date": "31-Dec-2028",
  "issue_date": "01-Jan-2020",
  "licence_number": "DL22XXXX1234567",
  "name": "J*A*N*E  D*O*E*",
  "rto_name": "RTO,MUMBAI",
  "status": "ACTIVE",
  "credits_consumed": 2
}
{
  "detail": {},
  "message": "string"
}
{
  "detail": {},
  "message": "string"
}

Overview

Call POST /verification/v1/idverification/dl/basic from your backend with Authorization: Bearer <token> and JSON consent (Y only), dl_no, and dob (YYYY-MM-DD). The 200 response returns masked name, licence_number, status, issue and expiry dates, COV / COV_category, rto_name, and credits_consumed.

Key features

  • Official-record style fields for underwriting and identity checks.
  • Explicit consent required in consent.

Implementation

Step 1: Prepare the request body

Send consent, dl_no, and dob in the JSON body.

FieldTypeRequiredDescription
consentstringYesApplicant consent for DL verification. Must be Y.
dl_nostringNoDriving licence number as printed on the licence (for example DL22XXXX1234567).
dobstringNoDate of birth in YYYY-MM-DD format (for example 1990-06-15).

Example request (mock values):

{
  "consent": "Y",
  "dl_no": "DL22XXXX1234567",
  "dob": "1990-06-15"
}

Step 2: Call from your backend

POST /verification/v1/idverification/dl/basic HTTP/1.1
Host: <verification-api-base-url>
Authorization: Bearer <token>
Content-Type: application/json

{
  "consent": "Y",
  "dl_no": "DL22XXXX1234567",
  "dob": "1990-06-15"
}

Step 3: Use the response

Validate status (for example ACTIVE) and map name, COV_category, and dates into your records. Store licence fields securely; do not log raw holder names.

Response

FieldTypeDescription
COVarray of stringClass-of-vehicle codes as returned by the RTO source.
COV_categoryarray of stringHuman-readable class-of-vehicle categories (for example MCWG, LMV).
captcha_triesintegerNumber of captcha attempts used during upstream lookup.
date_of_birthstringDate of birth on the licence in DD-MM-YYYY format.
expiry_datestringLicence expiry date (for example 31-Dec-2028).
issue_datestringLicence issue date (for example 01-Jan-2020).
licence_numberstringVerified driving licence number.
namestringHolder name as returned by the source. Often partially masked (for example J*A*N*E D*O*E*).
rto_namestringIssuing RTO office name (for example RTO,MUMBAI).
statusstringLicence status (for example ACTIVE).
credits_consumednumberVerification credits consumed for this call.

Example response (mock values):

{
  "COV": ["NT", "TR"],
  "COV_category": ["MCWG", "LMV"],
  "captcha_tries": 2,
  "date_of_birth": "15-06-1990",
  "expiry_date": "31-Dec-2028",
  "issue_date": "01-Jan-2020",
  "licence_number": "DL22XXXX1234567",
  "name": "J*A*N*E  D*O*E*",
  "rto_name": "RTO,MUMBAI",
  "status": "ACTIVE",
  "credits_consumed": 2
}

Error handling

HTTP statusWhen
400Validation error.
401Auth failure.

Benefits

  • Reduces fake DL uploads by matching against structured RTO-style data.

Next steps