curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_drivers_license" \
-F "vendor_data=user-1234" \
-F "driver_license_number=ABC12345AA12" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_drivers_license"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
driver_license_number="ABC12345AA12",
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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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: "NGA",
Services: didit.Some([]string{"nga_drivers_license"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("ABC12345AA12"),
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("NGA")
.services(List.of("nga_drivers_license"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("ABC12345AA12")
.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' => 'NGA',
'services' => ['nga_drivers_license'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'ABC12345AA12',
'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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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 = "NGA",
Services = new string[] { "nga_drivers_license" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "ABC12345AA12",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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"
}
}
]
}
🇳🇬 نيجيريا
التحقق من رخصة القيادة النيجيرية (FRSC) API
استعلام من قاعدة بيانات نيجيريا الرسمية عبر البنية التحتية للهوية في Didit. تسعير لكل استعلام يبدأ من $0.20، دون عقود أو حد أدنى.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_drivers_license" \
-F "vendor_data=user-1234" \
-F "driver_license_number=ABC12345AA12" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_drivers_license"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
driver_license_number="ABC12345AA12",
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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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: "NGA",
Services: didit.Some([]string{"nga_drivers_license"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("ABC12345AA12"),
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("NGA")
.services(List.of("nga_drivers_license"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("ABC12345AA12")
.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' => 'NGA',
'services' => ['nga_drivers_license'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'ABC12345AA12',
'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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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 = "NGA",
Services = new string[] { "nga_drivers_license" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "ABC12345AA12",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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"
}
}
]
}
يتحقق من رخصة القيادة النيجيرية مقابل سجل التراخيص لدى Federal Road Safety Corps. لا يُرجع السجل نتيجة إلا إذا كان رقم الرخصة والأسماء وتاريخ الميلاد متطابقة مع بعضها. يوفّر Didit هذه الخدمة عبر
POST /v3/database-validation/، لتتحقق من البيانات المُرسلة مقابل المصدر الرسمي وتحصل على نتائج مطابقة موحّدة.
التغطية
- التغطية: ~ 100%
- الدولة: نيجيريا
- معرّف الخدمة:
nga_drivers_license - نطاق البيانات: الهوية
- الفئة: DriverLicence
المدخلات
| الحقل | مطلوب | مثال |
|---|---|---|
driver_license_number | نعم | ABC12345AA12 |
first_name | نعم | John |
last_name | نعم | Doe |
date_of_birth | نعم | 1990-01-01 |
vendor_data | لا | user-1234 |
- المدخلات المطلوبة:
driver_license_number،first_name،last_name،date_of_birth - المدخلات الاختيارية:
vendor_data - الموافقة: غير مطلوبة
- توفر سير العمل: متاحة في سير العمل
- التغطية: ~ 100%
- السعر: $0.20 لكل استعلام ناجح
معاملات الجسم
string
افتراضي:"NGA"
مطلوب
رمز الدولة وفق ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.مثال:
NGAstring
افتراضي:"nga_drivers_license"
مطلوب
مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يحصر الطلب في قاعدة البيانات المحددة هذه.مثال:
nga_drivers_licensestring
افتراضي:"ABC12345AA12"
مطلوب
رقم رخصة القيادة.مثال:
ABC12345AA12string
افتراضي:"John"
مطلوب
الاسم الأول المراد التحقق منه.مثال:
Johnstring
افتراضي:"Doe"
مطلوب
اسم العائلة المراد التحقق منه.مثال:
Doestring
افتراضي:"1990-01-01"
مطلوب
تاريخ الميلاد بتنسيق
YYYY-MM-DD.مثال: 1990-01-01string
افتراضي:"user-1234"
مرجعك الثابت لهذا الشخص، مثل معرّف المستخدم الداخلي لديك. يستخدمه Didit لربط الفحوصات المستقلة بالمستخدم النهائي نفسه، ولتقليل التشويش الناتج عن اكتشاف التكرار.مثال:
user-1234قواعد المدخلات وملاحظات التحقق
- يجب استخدام أحرف كبيرة في
driver_license_number. - يجب أن يطابق
driver_license_numberالنمط[A-Z0-9]{8,20}.
كيفية الاستدعاء
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_drivers_license" \
-F "vendor_data=user-1234" \
-F "driver_license_number=ABC12345AA12" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_drivers_license"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
driver_license_number="ABC12345AA12",
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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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: "NGA",
Services: didit.Some([]string{"nga_drivers_license"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
DriverLicenseNumber: didit.String("ABC12345AA12"),
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("NGA")
.services(List.of("nga_drivers_license"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.driverLicenseNumber("ABC12345AA12")
.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' => 'NGA',
'services' => ['nga_drivers_license'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'driver_license_number' => 'ABC12345AA12',
'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: "NGA",
services: ["nga_drivers_license"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
driver_license_number: "ABC12345AA12",
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 = "NGA",
Services = new string[] { "nga_drivers_license" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
DriverLicenseNumber = "ABC12345AA12",
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": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_drivers_license",
"service_name": "Nigeria Driver's Licence (FRSC)",
"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 على ما يُرجعه السجل. يوضح المثال المُنشأ تلقائياً لـ nga_drivers_license البنية الموحدة التالية حالياً:
date_of_birthfirst_nameidentification_numberlast_name
الأسعار واتفاقيات مستوى الخدمة
تُحتسب استعلامات رخصة القيادة النيجيرية (FRSC) فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.- السعر لكل استدعاء: $0.20 USD.
- الفوترة: لكل استعلام ناجح. لا يُحتسب عليك أي مبلغ عند تعذّر الوصول إلى السجل، أو عند غياب الحقول المطلوبة، أو عند رفض الطلب قبل وصوله إلى المصدر.
- زمن الاستجابة: المعتاد للمئين 95 (p95) أقل من 2 ثانية.
- التوافر: 99.9% لكل ربع سنة من جهة Didit؛ ويختلف توافر المصدر التابع بحسب الدولة ومجموعة البيانات.
متابعة القراءة
آخر تعديل في ٧ نوفمبر ٢٠٢٦