---
title: "Driving Licence Verification v2"
method: POST
path: "/v2/verify/driving_licence"
tags: ["Driving Licence v2"]
---

# Driving Licence Verification v2

`POST /v2/verify/driving_licence`

Verifies an Indian driving licence against the issuing RTO / Sarathi records using the customer's configured v2 verification setup. On a match, returns the holder's identity details, issuing authority, licence validity (transport and non-transport), authorised vehicle classes, and status.

**Response contract:** Every completed verification returns HTTP 200. A successful result returns `status: "success"` with `error_code: null` and a populated `data` object. A valid request with no matching record (or a business rejection) also returns HTTP 200 with `status: "failed"`, a non-null `error_code`, and `data: null`. Do not treat HTTP 200 alone as success — always branch on `status` and inspect `error_code`. Authenticate with your `X-Client-ID` and `X-API-KEY` headers. Transport, auth, and validation problems use standard 4xx/5xx status codes.

## Request body

- DrivingLicenceV2Request
  - `licence_number` string, required — Driving licence number exactly as printed on the licence (RTO code + serial).
  - `dob` string, date, required — Licence holder's date of birth in YYYY-MM-DD format.

## Response `200`

Verification completed. Inspect `status` and `error_code` for the business result.

- DrivingLicenceResponse
  - `status` string, required
  - `message` string, nullable
  - `error_code` string, nullable
  - `data` DrivingLicenceData
    - `dl_number` string, nullable
    - `name` string, nullable
    - `dob` string, nullable
    - `relative_name` string, nullable
    - `address` string, nullable
    - `pincode` string, nullable
    - `status` string, nullable
    - `issuing_authority` object, nullable
    - `validity` object, nullable
    - `vehicle_classes` unknown[], nullable
      - unknown
    - `blood_group` string, nullable
    - `photo` string, nullable
  - `tranx_id` string, nullable
  - `timestamp` string, nullable

## Other responses

- `400` — Invalid input — malformed request or missing required fields.
- `401` — Missing or invalid authentication credentials (X-Client-ID / X-API-KEY).
- `422` — Request body failed schema validation.
- `429` — Too many requests — rate limited (IDTO_006). Retry after a short wait.
- `500` — Internal server error.
- `503` — Vendor temporarily unavailable — verification could not be completed (IDTO_008). Retry shortly.

---

[API](https://skmtc.dev/idto/apis/verification-api.md) · [All operations](https://skmtc.dev/idto/apis/verification-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idto/verification-api/revisions/e3d57dab8db4/schema)
