curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FRA" \
-F "services=fra_phone" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "phone=+15550101000"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FRA",
services=["fra_phone"],
first_name="John",
last_name="Doe",
phone="+15550101000",
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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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: "FRA",
Services: didit.Some([]string{"fra_phone"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("FRA")
.services(List.of("fra_phone"))
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.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' => 'FRA',
'services' => ['fra_phone'],
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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 = "FRA",
Services = new string[] { "fra_phone" },
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"full_name": "NO_MATCH"
},
"validation": {
"full_name": "no_match"
}
}
]
}
🇫🇷 فرنسا
واجهة التحقق من رقم الهاتف في فرنسا: بحث فوري
تحقق من رقم الهاتف في فرنسا عبر قاعدة بيانات فرنسا الموثوقة من خلال بنية Didit للهوية، بسعر يبدأ من $1.12 لكل استدعاء، دون عقود أو حدود دنيا.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FRA" \
-F "services=fra_phone" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "phone=+15550101000"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FRA",
services=["fra_phone"],
first_name="John",
last_name="Doe",
phone="+15550101000",
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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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: "FRA",
Services: didit.Some([]string{"fra_phone"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("FRA")
.services(List.of("fra_phone"))
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.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' => 'FRA',
'services' => ['fra_phone'],
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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 = "FRA",
Services = new string[] { "fra_phone" },
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"full_name": "NO_MATCH"
},
"validation": {
"full_name": "no_match"
}
}
]
}
يتحقق من بيانات الإدخال مقابل بيانات مشغلي شبكات الهاتف المحمول. تتيح لك Didit الوصول إلى هذه الخدمة عبر
POST /v3/database-validation/ للتحقق من البيانات المُرسلة مقابل المصدر الموثوق والحصول على نتائج مطابقة موحّدة.
التغطية
- التغطية: ~ 90%
- الدولة: فرنسا
- معرّف الخدمة:
fra_phone - نطاق البيانات: الاتصالات
- الفئة: الاتصالات
المدخلات
| الحقل | مطلوب | مثال |
|---|---|---|
first_name | نعم | John |
last_name | نعم | Doe |
phone | نعم | +15550101000 |
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 |
vendor_data | لا | user-1234 |
- الحقول المطلوبة:
first_name،last_name،phone - الحقول الاختيارية:
date_of_birth،address.street_1،address.street_2،address.city،address.region،address.postal_code،vendor_data - الموافقة: غير مطلوبة
- توفّر سير العمل: متاح في سير العمل
- التغطية: ~ 90%
- السعر: $1.12 لكل استعلام ناجح
معاملات الجسم
string
افتراضي:"FRA"
مطلوب
رمز الدولة وفق ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.مثال:
FRAstring
افتراضي:"fra_phone"
مطلوب
مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يُبقي الطلب مقصوراً على قاعدة البيانات المحددة هذه تحديداً.مثال:
fra_phonestring
افتراضي:"John"
مطلوب
الاسم الأول المراد التحقق منه.مثال:
Johnstring
افتراضي:"Doe"
مطلوب
اسم العائلة المراد التحقق منه.مثال:
Doestring
افتراضي:"+15550101000"
مطلوب
رقم الهاتف بالتنسيق الدولي.مثال:
+15550101000string
تاريخ الميلاد بصيغة
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
افتراضي:"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=FRA" \
-F "services=fra_phone" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "phone=+15550101000"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FRA",
services=["fra_phone"],
first_name="John",
last_name="Doe",
phone="+15550101000",
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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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: "FRA",
Services: didit.Some([]string{"fra_phone"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("FRA")
.services(List.of("fra_phone"))
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.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' => 'FRA',
'services' => ['fra_phone'],
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'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: "FRA",
services: ["fra_phone"],
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
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 = "FRA",
Services = new string[] { "fra_phone" },
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
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": "FRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"full_name": "full_match"
}
}
]
}
NO_MATCH: لم يُرجع السجل أي تطابق للبيانات المُرسلة.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fra_phone",
"service_name": "France Phone",
"source_data": {
"full_name": "NO_MATCH"
},
"validation": {
"full_name": "no_match"
}
}
]
}
البيانات المُرجعة
تعتمد الحقول الدقيقة التي تظهر فيsource_data على ما يُرجعه السجل. يوضح المثال المُنشأ تلقائياً لـ fra_phone حالياً الشكل الموحّد التالي:
addressdate_of_birthfirst_namelast_name
الأسعار واتفاقيات مستوى الخدمة (SLA)
تُحتسب استعلامات الهاتف في فرنسا فقط عندما تتلقى Didit نتيجة حاسمة من مصدر التحقق.- السعر لكل استدعاء: $1.12 USD.
- الفوترة: لكل استعلام ناجح. لا تُحتسب الرسوم عندما تكون الجهة المصدرة غير متاحة، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل وصوله إلى المصدر.
- زمن الاستجابة: زمن الاستجابة المعتاد عند النسبة المئوية 95 أقل من ثانيتين.
- التوفر: 99.9% لكل ربع سنة من جانب Didit، ويختلف توفر المصدر التابع حسب الدولة ومجموعة البيانات.
متابعة القراءة
آخر تعديل في ٧ نوفمبر ٢٠٢٦