curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=IND" \
-F "services=ind_drivers_licence" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "full_name=John Doe" \
-F "date_of_birth=1990-01-01" \
-F "driver_license_number=SAMPLE-DL-12345"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="IND",
services=["ind_drivers_licence"],
consent=True,
full_name="John Doe",
date_of_birth="1990-01-01",
driver_license_number="SAMPLE-DL-12345",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "IND",
Services: didit.Some([]string{"ind_drivers_licence"}),
Consent: didit.Bool(true),
FullName: didit.String("John Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("SAMPLE-DL-12345"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("IND")
.services(List.of("ind_drivers_licence"))
.consent(true)
.fullName("John Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("SAMPLE-DL-12345")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'IND',
'services' => ['ind_drivers_licence'],
'consent' => true,
'full_name' => 'John Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'SAMPLE-DL-12345',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "IND",
Services = new string[] { "ind_drivers_licence" },
Consent = true,
FullName = "John Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "SAMPLE-DL-12345",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "IND",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": true,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "IND",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": false,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "IND",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
🇮🇳 भारत
ड्राइविंग लाइसेंस (RTO) सत्यापन API भारत
Didit के पहचान इंफ्रास्ट्रक्चर से भारत के आधिकारिक डेटाबेस पर ड्राइविंग लाइसेंस (RTO) सत्यापित करें। प्रति कॉल $0.15 से, कोई अनुबंध नहीं, कोई न्यूनतम नहीं।
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=IND" \
-F "services=ind_drivers_licence" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "full_name=John Doe" \
-F "date_of_birth=1990-01-01" \
-F "driver_license_number=SAMPLE-DL-12345"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="IND",
services=["ind_drivers_licence"],
consent=True,
full_name="John Doe",
date_of_birth="1990-01-01",
driver_license_number="SAMPLE-DL-12345",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "IND",
Services: didit.Some([]string{"ind_drivers_licence"}),
Consent: didit.Bool(true),
FullName: didit.String("John Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("SAMPLE-DL-12345"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("IND")
.services(List.of("ind_drivers_licence"))
.consent(true)
.fullName("John Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("SAMPLE-DL-12345")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'IND',
'services' => ['ind_drivers_licence'],
'consent' => true,
'full_name' => 'John Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'SAMPLE-DL-12345',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "IND",
Services = new string[] { "ind_drivers_licence" },
Consent = true,
FullName = "John Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "SAMPLE-DL-12345",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "IND",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": true,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "IND",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": false,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "IND",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
यह सेवा इनपुट डेटा को भारत के राज्यों के सड़क परिवहन कार्यालयों के डेटाबेस से सत्यापित करती है। Didit इस सेवा को
POST /v3/database-validation/ के माध्यम से उपलब्ध कराता है, ताकि आप सबमिट किए गए डेटा को प्रामाणिक स्रोत से सत्यापित कर सकें और सामान्यीकृत मिलान परिणाम प्राप्त कर सकें।
कवरेज
- कवरेज: > 75%
- देश: India
- सेवा ID:
ind_drivers_licence - डेटा डोमेन: दस्तावेज़
- श्रेणी: DriverLicence
इनपुट
| फ़ील्ड | आवश्यक | उदाहरण |
|---|---|---|
full_name | हाँ | John Doe |
date_of_birth | हाँ | 1990-01-01 |
driver_license_number | हाँ | SAMPLE-DL-12345 |
address.street_1 | नहीं | 123 Sample Street |
address.street_2 | नहीं | Unit 4 |
address.city | नहीं | Sample City |
address.region | नहीं | Sample State |
address.postal_code | नहीं | 10001 |
vendor_data | नहीं | user-1234 |
- आवश्यक इनपुट:
full_name,date_of_birth,driver_license_number - वैकल्पिक इनपुट:
address.street_1,address.street_2,address.city,address.region,address.postal_code,vendor_data - सहमति: आवश्यक
- वर्कफ़्लो में उपलब्धता: वर्कफ़्लो में उपलब्ध
- कवरेज: > 75%
- कीमत: प्रति सफल क्वेरी $0.15
बॉडी पैरामीटर
string
डिफ़ॉल्ट:"IND"
आवश्यक
इस डेटाबेस सेवा के लिए ISO 3166-1 alpha-3 देश कोड।उदाहरण:
INDstring
डिफ़ॉल्ट:"ind_drivers_licence"
आवश्यक
इस सेवा ID वाला एक ऐरे। सेवा को पिन करने से अनुरोध इसी सटीक डेटाबेस तक सीमित रहता है।उदाहरण:
ind_drivers_licenceboolean
डिफ़ॉल्ट:"true"
आवश्यक
इस सेवा के लिए अंतिम उपयोगकर्ता की स्पष्ट सहमति।उदाहरण:
truestring
डिफ़ॉल्ट:"John Doe"
आवश्यक
सत्यापित किया जाने वाला पूरा कानूनी नाम।उदाहरण:
John Doestring
डिफ़ॉल्ट:"1990-01-01"
आवश्यक
YYYY-MM-DD प्रारूप में जन्म तिथि।उदाहरण: 1990-01-01string
डिफ़ॉल्ट:"SAMPLE-DL-12345"
आवश्यक
ड्राइवर लाइसेंस नंबर।उदाहरण:
SAMPLE-DL-12345object
संरचित आवासीय पता ऑब्जेक्ट।
street_1, street_2, city, region, postal_code और country का उपयोग करें। पते की पूरी स्ट्रिंग (पुराना फ़ॉर्मेट) अब भी स्वीकार की जाती है, लेकिन इसकी सिफारिश नहीं की जाती।उदाहरण: {"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}string
डिफ़ॉल्ट:"user-1234"
इस व्यक्ति के लिए आपका स्थायी उपयोगकर्ता संदर्भ, जैसे आपकी आंतरिक उपयोगकर्ता ID। Didit इसका उपयोग स्वतंत्र जाँचों को उसी अंतिम उपयोगकर्ता से जोड़ने और डुप्लिकेट पहचान से जुड़े अनावश्यक शोर को कम करने के लिए करता है।उदाहरण:
user-1234इनपुट नियम और सत्यापन नोट्स
- इस सेवा के लिए
addressवैकल्पिक है। आप एक पूरीaddressस्ट्रिंग भेज सकते हैं, और संभव होने पर Didit उसे संरचित पता तत्वों में बाँट देगा, या आप संरचित फ़ील्ड स्पष्ट रूप से भेज सकते हैं। - पता-आधारित सेवाओं के लिए, संभव होने पर एकल
addressस्ट्रिंग के बजाय संरचित पता फ़ील्ड भेजें। address.street_1सड़क का पता है, जिसमें भवन संख्या और सड़क का प्रकार शामिल है।address.street_2अपार्टमेंट, यूनिट, भवन, मंज़िल या अतिरिक्त पता पंक्ति है। इसे केवल तभी भेजें जब आपके पास यह हो।address.cityशहर, उपनगर, ज़िला, इलाका या मोहल्ला है।address.regionराज्य, प्रांत, क्षेत्र या कस्बा है।address.postal_codeपिन कोड या पोस्टल कोड है।- पते पर आधारित डेटाबेस सेवाओं के लिए कम से कम सड़क का पता और पोस्टल कोड आवश्यक है; स्रोत खोज से पहले अस्वीकार किए गए अनुरोधों पर शुल्क नहीं लिया जाता।
इसे कॉल करने का तरीका
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=IND" \
-F "services=ind_drivers_licence" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "full_name=John Doe" \
-F "date_of_birth=1990-01-01" \
-F "driver_license_number=SAMPLE-DL-12345"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="IND",
services=["ind_drivers_licence"],
consent=True,
full_name="John Doe",
date_of_birth="1990-01-01",
driver_license_number="SAMPLE-DL-12345",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "IND",
Services: didit.Some([]string{"ind_drivers_licence"}),
Consent: didit.Bool(true),
FullName: didit.String("John Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("SAMPLE-DL-12345"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("IND")
.services(List.of("ind_drivers_licence"))
.consent(true)
.fullName("John Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("SAMPLE-DL-12345")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'IND',
'services' => ['ind_drivers_licence'],
'consent' => true,
'full_name' => 'John Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'SAMPLE-DL-12345',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "IND",
services: ["ind_drivers_licence"],
consent: true,
full_name: "John Doe",
date_of_birth: "1990-01-01",
driver_license_number: "SAMPLE-DL-12345",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "IND",
Services = new string[] { "ind_drivers_licence" },
Consent = true,
FullName = "John Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "SAMPLE-DL-12345",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
हर सफल कॉल HTTP
200 लौटाता है। outcome_code फ़ील्ड बताता है कि वास्तव में क्या हुआ। उदाहरण के लिए, यह वास्तविक बायोमेट्रिक मिलान न होने (BIOMETRIC_NO_MATCH) को उस सेल्फ़ी से अलग करता है जिसे पढ़ा नहीं जा सका (BIOMETRIC_IMAGE_UNUSABLE)। दिखाई गई status डिफ़ॉल्ट सुविधा स्थिति है; आपकी कॉन्फ़िगर की गई आंशिक मिलान / कोई मिलान नहीं कार्रवाइयाँ इसे बदल सकती हैं।MATCH: रजिस्ट्री ने पहचान की पुष्टि की और जाँची गई हर फ़ील्ड मेल खा गई।{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "IND",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": true,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH: पहचान नंबर मिल गया, लेकिन एक या अधिक व्यक्तिगत फ़ील्ड (आमतौर पर नाम या जन्म तिथि) पूरी तरह से मेल नहीं खाए।{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "IND",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"address": "123 Sample Street",
"address_match_score": "1.000",
"date_of_birth": "1990-01-01",
"identification_number": "SAMPLE-ID-12345",
"verifications": {
"date_of_birth": true,
"full_name": false,
"identification_number": true
}
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
NO_MATCH: सबमिट किए गए डेटा के लिए रजिस्ट्री से कोई मिलान नहीं मिला।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "IND",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ind_drivers_licence",
"service_name": "India Drivers Licence (RTO)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
लौटाया गया डेटा
source_data में कौन-से सटीक फ़ील्ड दिखेंगे, यह इस पर निर्भर करता है कि रजिस्ट्री क्या लौटाती है। ind_drivers_licence के लिए जनरेट किया गया उदाहरण फ़िलहाल इस सामान्यीकृत संरचना का दस्तावेज़ीकरण करता है:
addressaddress_match_scoredate_of_birthidentification_number
मूल्य निर्धारण और SLA
भारत ड्राइविंग लाइसेंस (RTO) क्वेरी के लिए शुल्क तभी लिया जाता है जब Didit को सत्यापन स्रोत से निर्णायक परिणाम मिलता है।- प्रति कॉल मूल्य: $0.15 USD।
- बिलिंग: प्रति सफल क्वेरी। जब रजिस्ट्री तक पहुँच नहीं हो पाती, आवश्यक फ़ील्ड गायब होते हैं, या अनुरोध स्रोत तक पहुँचने से पहले ही अस्वीकार हो जाता है, तब आपसे शुल्क नहीं लिया जाता।
- विलंबता: सामान्य p95 < 2 s।
- उपलब्धता: Didit की ओर से प्रति तिमाही 99.9%; डाउनस्ट्रीम स्रोत की उपलब्धता देश और डेटासेट के अनुसार अलग होती है।
आगे पढ़ें
अंतिम संशोधन 7 नवंबर 2026