curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FIN" \
-F "services=fin_consumer_2" \
-F "vendor_data=user-1234" \
-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="FIN",
services=["fin_consumer_2"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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: "FIN",
Services: didit.Some([]string{"fin_consumer_2"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
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("FIN")
.services(List.of("fin_consumer_2"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.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' => 'FIN',
'services' => ['fin_consumer_2'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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 = "FIN",
Services = new string[] { "fin_consumer_2" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match"
}
}
]
}
🇫🇮 فنلندا
التحقق من قواعد البيانات في فنلندا (مستهلك 2): مطابقة الهوية
التحقق من قواعد البيانات الرسمية في فنلندا عبر بنية Didit للهوية. بدءاً من $1.62 لكل عملية، دون عقود أو حد أدنى.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FIN" \
-F "services=fin_consumer_2" \
-F "vendor_data=user-1234" \
-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="FIN",
services=["fin_consumer_2"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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: "FIN",
Services: didit.Some([]string{"fin_consumer_2"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
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("FIN")
.services(List.of("fin_consumer_2"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.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' => 'FIN',
'services' => ['fin_consumer_2'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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 = "FIN",
Services = new string[] { "fin_consumer_2" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match"
}
}
]
}
يتحقق من خدمة Finland Consumer 2. تعرض Didit هذه الخدمة عبر
POST /v3/database-validation/ لتتمكن من التحقق من البيانات المُرسلة مقابل المصدر الرسمي والحصول على نتائج مطابقة موحدة.
التغطية
- التغطية: —
- الدولة: فنلندا
- معرّف الخدمة:
fin_consumer_2 - نطاق البيانات: العنوان
- الفئة: سكني
المدخلات
| الحقل | مطلوب | مثال |
|---|---|---|
first_name | نعم | John |
last_name | نعم | Doe |
date_of_birth | نعم | 1990-01-01 |
address.street_1 | لا | 123 Sample Street |
address.street_2 | لا | Unit 4 |
address.city | لا | Sample City |
address.region | لا | Sample State |
address.postal_code | لا | 10001 |
phone | لا | +15550101000 |
email | لا | john.doe@example.com |
vendor_data | لا | user-1234 |
- المدخلات المطلوبة:
first_name،last_name،date_of_birth - المدخلات الاختيارية:
address.street_1،address.street_2،address.city،address.region،address.postal_code،phone،email،vendor_data - الموافقة: غير مطلوبة
- التوفر في سير العمل: متاح في سير العمل
- التغطية: —
- السعر: $1.62 لكل استعلام ناجح
معاملات نص الطلب
string
افتراضي:"FIN"
مطلوب
رمز الدولة ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.مثال:
FINstring
افتراضي:"fin_consumer_2"
مطلوب
مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يُبقي الطلب مقصوراً على قاعدة البيانات المحددة هذه.مثال:
fin_consumer_2string
افتراضي:"John"
مطلوب
الاسم الأول المراد التحقق منه.مثال:
Johnstring
افتراضي:"Doe"
مطلوب
اسم العائلة المراد التحقق منه.مثال:
Doestring
افتراضي:"1990-01-01"
مطلوب
تاريخ الميلاد بتنسيق
YYYY-MM-DD.مثال: 1990-01-01object
كائن عنوان سكني منظم. استخدم
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
رقم الهاتف بالتنسيق الدولي.مثال:
+15550101000string
عنوان البريد الإلكتروني.مثال:
john.doe@example.comstring
افتراضي:"user-1234"
المعرّف الثابت للمستخدم لدى نظامك لهذا الشخص، مثل معرّف المستخدم الداخلي لديك. تستخدمه 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=FIN" \
-F "services=fin_consumer_2" \
-F "vendor_data=user-1234" \
-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="FIN",
services=["fin_consumer_2"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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: "FIN",
Services: didit.Some([]string{"fin_consumer_2"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
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("FIN")
.services(List.of("fin_consumer_2"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.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' => 'FIN',
'services' => ['fin_consumer_2'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'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: "FIN",
services: ["fin_consumer_2"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
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 = "FIN",
Services = new string[] { "fin_consumer_2" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
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": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
PARTIAL_MATCH: لم يتطابق حقل واحد أو أكثر تقارنه هذه الخدمة تطابقاً تاماً. في هذا المثال، لم يتطابق full_name، بينما تطابق date_of_birth.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
NO_MATCH: لم يُرجع السجل أي تطابق للبيانات المُرسلة.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_consumer_2",
"service_name": "Finland Consumer 2",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match"
}
}
]
}
البيانات المُرجَعة
تعتمد الحقول الدقيقة المعروضة فيsource_data على ما يُرجعه السجل. يوثّق المثال المُنشأ لـ fin_consumer_2 حالياً هذا الشكل الموحّد:
addressdate_of_birthfirst_namelast_name
الأسعار واتفاقيات مستوى الخدمة (SLAs)
لا تُحتسب استعلامات Finland Consumer 2 إلا عندما تتلقى Didit نتيجة قاطعة من مصدر التحقق.- السعر لكل استدعاء: $1.62 USD.
- الفوترة: لكل استعلام ناجح. لا تُحتسب أي رسوم عندما يكون السجل غير قابل للوصول، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل وصوله إلى المصدر.
- زمن الاستجابة: عادةً p95 < 2 s.
- التوفر: 99.9% لكل ربع سنة من جهة Didit؛ ويختلف توفر المصادر التابعة حسب الدولة ومجموعة البيانات.
متابعة القراءة
آخر تعديل في ٧ نوفمبر ٢٠٢٦