curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=SWE" \
-F "services=swe_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=199001011234"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="SWE",
services=["swe_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="199001011234",
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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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: "SWE",
Services: didit.Some([]string{"swe_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("199001011234"),
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("SWE")
.services(List.of("swe_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("199001011234")
.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' => 'SWE',
'services' => ['swe_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '199001011234',
'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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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 = "SWE",
Services = new string[] { "swe_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "199001011234",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "SWE",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden 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"
}
}
]
}
🇸🇪 السويد
التحقق من الهوية الوطنية السويدية: مطابقة الهوية
التحقق من الهوية الوطنية في السويد عبر قاعدة بيانات موثوقة من Didit. دفع لكل استدعاء بسعر يبدأ من $0.59، بلا عقود ولا حد أدنى.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=SWE" \
-F "services=swe_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=199001011234"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="SWE",
services=["swe_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="199001011234",
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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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: "SWE",
Services: didit.Some([]string{"swe_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("199001011234"),
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("SWE")
.services(List.of("swe_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("199001011234")
.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' => 'SWE',
'services' => ['swe_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '199001011234',
'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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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 = "SWE",
Services = new string[] { "swe_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "199001011234",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "SWE",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden 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"
}
}
]
}
يتحقق من بيانات الإدخال مقابل خدمة هيئة الشرطة السويدية. تتيح لك Didit الوصول إلى هذه الخدمة عبر
POST /v3/database-validation/ للتحقق من البيانات المرسلة مقابل المصدر الرسمي والحصول على نتائج مطابقة موحّدة.
التغطية
- التغطية: ~ 100%
- الدولة: السويد
- معرّف الخدمة:
swe_national_id - نطاق البيانات: الهوية
- الفئة: NationalIDRegistry
المدخلات
| الحقل | مطلوب | مثال |
|---|---|---|
first_name | نعم | John |
last_name | نعم | Doe |
date_of_birth | نعم | 1990-01-01 |
national_id | نعم | 199001011234 |
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 |
- المدخلات المطلوبة:
first_name،last_name،date_of_birth،national_id - المدخلات الاختيارية:
address.street_1،address.street_2،address.city،address.region،address.postal_code،vendor_data - الموافقة: غير مطلوبة
- التوفر في سير العمل: متاح في سير العمل
- التغطية: ~ 100%
- السعر: $0.59 لكل استعلام ناجح
معاملات الجسم
string
افتراضي:"SWE"
مطلوب
رمز الدولة ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.مثال:
SWEstring
افتراضي:"swe_national_id"
مطلوب
مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يُبقي الطلب مقصورًا على قاعدة البيانات هذه بالتحديد.مثال:
swe_national_idstring
افتراضي:"John"
مطلوب
الاسم الأول المراد التحقق منه.مثال:
Johnstring
افتراضي:"Doe"
مطلوب
اسم العائلة المراد التحقق منه.مثال:
Doestring
افتراضي:"1990-01-01"
مطلوب
تاريخ الميلاد بصيغة
YYYY-MM-DD.مثال: 1990-01-01string
افتراضي:"199001011234"
مطلوب
الرقم الوطني للهوية لهذه الخدمة.مثال:
199001011234object
كائن عنوان سكني منظّم. استخدم
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"
معرّف المستخدم الثابت لدى نظامك لهذا الشخص، مثل معرّف المستخدم الداخلي لديك. تستخدمه Didit لربط الفحوصات المستقلة بالمستخدم النهائي نفسه وتقليل ضوضاء اكتشاف التكرار.مثال:
user-1234قواعد المدخلات وملاحظات التحقق
addressاختياري لهذه الخدمة. يمكنك إرسالaddressواحد كامل كنص، وستقوم Didit بتقسيمه إلى عناصر عنوان منظّمة عند الإمكان، أو يمكنك إرسال الحقول المنظّمة صراحةً.- يجب أن يحتوي
national_idعلى أرقام فقط. أزل المسافات والشرطات وعلامات الترقيم قبل إرسال الطلب. - يجب أن يطابق
national_idالنمط(\d{10}|\d{12}). - بالنسبة لخدمات العناوين، أرسل حقول العنوان المنظّمة بدلًا من نص
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=SWE" \
-F "services=swe_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=199001011234"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="SWE",
services=["swe_national_id"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="199001011234",
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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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: "SWE",
Services: didit.Some([]string{"swe_national_id"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("199001011234"),
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("SWE")
.services(List.of("swe_national_id"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("199001011234")
.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' => 'SWE',
'services' => ['swe_national_id'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '199001011234',
'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: "SWE",
services: ["swe_national_id"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "199001011234",
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 = "SWE",
Services = new string[] { "swe_national_id" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "199001011234",
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": "SWE",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden National ID",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"full_name": "John Doe",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"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": "SWE",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "swe_national_id",
"service_name": "Sweden 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 حسب ما يُرجعه السجل. يوثّق المثال المُنشأ للمعرّف swe_national_id حالياً هذا الشكل الموحّد:
date_of_birthfirst_namefull_nameidentification_numberlast_namename_match_score
الأسعار واتفاقيات مستوى الخدمة
تُحتسب استعلامات الرقم الوطني في السويد فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.- السعر لكل استدعاء: $0.59 USD.
- الفوترة: لكل استعلام ناجح. لا تُحتسب رسوم عندما يتعذر الوصول إلى السجل، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل وصوله إلى المصدر.
- زمن الاستجابة: المعتاد عند p95 أقل من ثانيتين.
- التوفر: 99.9% لكل ربع سنة من جهة Didit؛ ويختلف توفر المصدر التابع حسب الدولة ومجموعة البيانات.
مواصلة القراءة
آخر تعديل في ٧ نوفمبر ٢٠٢٦