curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=KEN" \
-F "services=ken_national_id" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=12345678"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="KEN",
services=["ken_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="12345678",
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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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: "KEN",
Services: didit.Some([]string{"ken_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("12345678"),
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("KEN")
.services(List.of("ken_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("12345678")
.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' => 'KEN',
'services' => ['ken_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '12345678',
'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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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 = "KEN",
Services = new string[] { "ken_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "12345678",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "KEN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "KEN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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"
}
}
]
}
डेटाबेस सत्यापन
केन्या राष्ट्रीय ID सत्यापन API: पहचान लुकअप
केन्या राष्ट्रीय ID: Didit के पहचान इन्फ्रास्ट्रक्चर के ज़रिए आधिकारिक केन्या डेटाबेस सत्यापन। प्रति कॉल $0.75 से, कोई अनुबंध नहीं, कोई न्यूनतम नहीं।
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=KEN" \
-F "services=ken_national_id" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=12345678"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="KEN",
services=["ken_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="12345678",
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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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: "KEN",
Services: didit.Some([]string{"ken_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("12345678"),
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("KEN")
.services(List.of("ken_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("12345678")
.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' => 'KEN',
'services' => ['ken_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '12345678',
'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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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 = "KEN",
Services = new string[] { "ken_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "12345678",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "KEN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "KEN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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"
}
}
]
}
यह सेवा केन्याई राष्ट्रीय पहचान संख्या को National Registration Bureau के विरुद्ध सत्यापित करती है और धारक के नाम, जन्म तिथि और लिंग की तुलना रजिस्टर के रिकॉर्ड से करती है। Didit इस सेवा को
POST /v3/database-validation/ के माध्यम से उपलब्ध कराता है, ताकि आप सबमिट किए गए डेटा को प्रामाणिक स्रोत से सत्यापित कर सकें और सामान्यीकृत मिलान परिणाम प्राप्त कर सकें।
कवरेज
- कवरेज: ~ 90%
- देश: Kenya
- सेवा ID:
ken_national_id - डेटा डोमेन: पहचान
- श्रेणी: NationalIDRegistry
इनपुट
| फ़ील्ड | आवश्यक | उदाहरण |
|---|---|---|
first_name | हाँ | John |
last_name | हाँ | Doe |
date_of_birth | हाँ | 1990-01-01 |
national_id | हाँ | 12345678 |
vendor_data | नहीं | user-1234 |
- आवश्यक इनपुट:
first_name,last_name,date_of_birth,national_id - वैकल्पिक इनपुट:
vendor_data - सहमति: आवश्यक नहीं
- वर्कफ़्लो में उपलब्धता: वर्कफ़्लो में उपलब्ध
- कवरेज: ~ 90%
- मूल्य: $0.75 प्रति सफल क्वेरी
बॉडी पैरामीटर
string
डिफ़ॉल्ट:"KEN"
आवश्यक
इस डेटाबेस सेवा के लिए ISO 3166-1 alpha-3 देश कोड।उदाहरण:
KENstring
डिफ़ॉल्ट:"ken_national_id"
आवश्यक
इस सेवा ID वाला एरे। सेवा को पिन करने से अनुरोध इसी सटीक डेटाबेस तक सीमित रहता है।उदाहरण:
ken_national_idstring
डिफ़ॉल्ट:"John"
आवश्यक
सत्यापित किया जाने वाला पहला नाम।उदाहरण:
Johnstring
डिफ़ॉल्ट:"Doe"
आवश्यक
सत्यापित किया जाने वाला उपनाम।उदाहरण:
Doestring
डिफ़ॉल्ट:"1990-01-01"
आवश्यक
YYYY-MM-DD प्रारूप में जन्म तिथि।उदाहरण: 1990-01-01string
डिफ़ॉल्ट:"12345678"
आवश्यक
इस सेवा के लिए राष्ट्रीय पहचान संख्या।उदाहरण:
12345678string
डिफ़ॉल्ट:"user-1234"
इस व्यक्ति के लिए आपका स्थिर उपयोगकर्ता संदर्भ, जैसे आपकी आंतरिक उपयोगकर्ता ID। Didit इसका उपयोग स्वतंत्र जाँचों को उसी अंतिम उपयोगकर्ता से जोड़ने और डुप्लिकेट-पहचान के शोर को कम करने के लिए करता है।उदाहरण:
user-1234इनपुट नियम और सत्यापन नोट्स
national_idका\d{8,9}से मेल खाना आवश्यक है।
इसे कॉल करने का तरीका
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=KEN" \
-F "services=ken_national_id" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=12345678"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="KEN",
services=["ken_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="12345678",
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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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: "KEN",
Services: didit.Some([]string{"ken_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("12345678"),
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("KEN")
.services(List.of("ken_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("12345678")
.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' => 'KEN',
'services' => ['ken_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '12345678',
'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: "KEN",
services: ["ken_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "12345678",
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 = "KEN",
Services = new string[] { "ken_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "12345678",
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": "KEN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"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": "KEN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
NO_MATCH - रजिस्ट्री ने सबमिट किए गए डेटा के लिए कोई मिलान नहीं लौटाया।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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"
}
}
]
}
DOCUMENT_NOT_FOUND - सबमिट किया गया दस्तावेज़ नंबर रजिस्ट्री के किसी भी रिकॉर्ड से मेल नहीं खाता।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "KEN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "ken_national_id",
"service_name": "Kenya National ID",
"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 में कौन-से फ़ील्ड दिखेंगे, यह इस बात पर निर्भर करता है कि रजिस्ट्री क्या लौटाती है। ken_national_id के लिए बना उदाहरण फ़िलहाल इस सामान्यीकृत संरचना का दस्तावेज़ीकरण करता है:
date_of_birthfirst_namegenderidentification_numberlast_name
मूल्य निर्धारण और SLA
केन्या की राष्ट्रीय पहचान क्वेरी का शुल्क तभी लिया जाता है जब Didit को सत्यापन स्रोत से निर्णायक परिणाम मिलता है।- प्रति कॉल मूल्य: $0.75 USD।
- बिलिंग: प्रति सफल क्वेरी। जब रजिस्ट्री तक पहुँचा नहीं जा सकता, जब आवश्यक फ़ील्ड गायब हों, या जब अनुरोध स्रोत तक पहुँचने से पहले अस्वीकार हो जाए, तब आपसे शुल्क नहीं लिया जाता।
- विलंबता: सामान्य p95 < 2 s।
- उपलब्धता: Didit की ओर से प्रति तिमाही 99.9%; डाउनस्ट्रीम स्रोत की उपलब्धता देश और डेटासेट के अनुसार बदलती है।
आगे पढ़ें
अंतिम संशोधन 7 नवंबर 2026