curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=MEX" \
-F "services=mex_curp" \
-F "vendor_data=user-1234" \
-F "personal_number=ABCD900101HDFABC09"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="MEX",
services=["mex_curp"],
personal_number="ABCD900101HDFABC09",
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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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: "MEX",
Services: didit.Some([]string{"mex_curp"}),
PersonalNumber: didit.String("ABCD900101HDFABC09"),
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("MEX")
.services(List.of("mex_curp"))
.personalNumber("ABCD900101HDFABC09")
.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' => 'MEX',
'services' => ['mex_curp'],
'personal_number' => 'ABCD900101HDFABC09',
'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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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 = "MEX",
Services = new string[] { "mex_curp" },
PersonalNumber = "ABCD900101HDFABC09",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "MEX",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"curp_status": "sample_value",
"date_of_birth": "1990-01-01",
"doc_probatorio": "sample_value",
"first_name": "John",
"full_name": "John Doe",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"nationality": "USA",
"num_acta": "sample_value",
"registration_municipality": "sample_value",
"registration_state": "sample_value",
"registration_year": "sample_value",
"state_of_birth": "sample_value"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "MEX",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
🇲🇽 المكسيك
التحقق من CURP في المكسيك عبر واجهة API
تحقق من CURP عبر التحقق من قواعد البيانات الموثوقة في المكسيك باستخدام بنية 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=MEX" \
-F "services=mex_curp" \
-F "vendor_data=user-1234" \
-F "personal_number=ABCD900101HDFABC09"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="MEX",
services=["mex_curp"],
personal_number="ABCD900101HDFABC09",
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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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: "MEX",
Services: didit.Some([]string{"mex_curp"}),
PersonalNumber: didit.String("ABCD900101HDFABC09"),
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("MEX")
.services(List.of("mex_curp"))
.personalNumber("ABCD900101HDFABC09")
.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' => 'MEX',
'services' => ['mex_curp'],
'personal_number' => 'ABCD900101HDFABC09',
'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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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 = "MEX",
Services = new string[] { "mex_curp" },
PersonalNumber = "ABCD900101HDFABC09",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "MEX",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"curp_status": "sample_value",
"date_of_birth": "1990-01-01",
"doc_probatorio": "sample_value",
"first_name": "John",
"full_name": "John Doe",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"nationality": "USA",
"num_acta": "sample_value",
"registration_municipality": "sample_value",
"registration_state": "sample_value",
"registration_year": "sample_value",
"state_of_birth": "sample_value"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "MEX",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
يتحقق من CURP المكسيكي مقابل سجل RENAPO الوطني للمعرّفات. يتيح Didit هذه الخدمة عبر
POST /v3/database-validation/ لتتمكن من التحقق من البيانات المرسلة مقابل المصدر الموثوق والحصول على نتائج مطابقة موحّدة. صيغة المدخلات: يأخذ personal_number رمز CURP المكسيكي (18 محرفاً أبجدياً رقمياً بالضبط).
التغطية
- التغطية: ~ 100%
- الدولة: المكسيك
- معرّف الخدمة:
mex_curp - نطاق البيانات: الهوية
- الفئة: NationalIDRegistry
المدخلات
| الحقل | مطلوب | مثال |
|---|---|---|
personal_number | نعم | ABCD900101HDFABC09 |
first_name | لا | John |
last_name | لا | Doe |
vendor_data | لا | user-1234 |
- المدخلات المطلوبة:
personal_number - المدخلات الاختيارية:
first_name،last_name،vendor_data - الموافقة: غير مطلوبة
- التوفر في سير العمل: متاح في سير العمل
- التغطية: ~ 100%
- السعر: $0.20 لكل استعلام ناجح
معاملات الجسم
string
افتراضي:"MEX"
مطلوب
رمز الدولة وفق ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.مثال:
MEXstring
افتراضي:"mex_curp"
مطلوب
مصفوفة تحتوي على معرّف هذه الخدمة. يُبقي تثبيت الخدمة الطلب مقتصراً على قاعدة البيانات المحددة هذه بالضبط.مثال:
mex_curpstring
افتراضي:"ABCD900101HDFABC09"
مطلوب
رقم الهوية الشخصية الخاص بالدولة.مثال:
ABCD900101HDFABC09string
الاسم الأول المراد التحقق منه.مثال:
Johnstring
اسم العائلة المراد التحقق منه.مثال:
Doestring
افتراضي:"user-1234"
المرجع الثابت للمستخدم لدى نظامك، مثل معرّف المستخدم الداخلي. يستخدمه Didit لربط الفحوصات المستقلة بالمستخدم النهائي نفسه وتقليل ضجيج اكتشاف التكرار.مثال:
user-1234قواعد المدخلات وملاحظات التحقق
- CURP المكسيكي (18 محرفاً أبجدياً رقمياً بالضبط)
- يجب أن يكون طول
personal_number18 حرفاً بالضبط.
كيفية الاستدعاء
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=MEX" \
-F "services=mex_curp" \
-F "vendor_data=user-1234" \
-F "personal_number=ABCD900101HDFABC09"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="MEX",
services=["mex_curp"],
personal_number="ABCD900101HDFABC09",
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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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: "MEX",
Services: didit.Some([]string{"mex_curp"}),
PersonalNumber: didit.String("ABCD900101HDFABC09"),
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("MEX")
.services(List.of("mex_curp"))
.personalNumber("ABCD900101HDFABC09")
.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' => 'MEX',
'services' => ['mex_curp'],
'personal_number' => 'ABCD900101HDFABC09',
'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: "MEX",
services: ["mex_curp"],
personal_number: "ABCD900101HDFABC09",
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 = "MEX",
Services = new string[] { "mex_curp" },
PersonalNumber = "ABCD900101HDFABC09",
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": "MEX",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"curp_status": "sample_value",
"date_of_birth": "1990-01-01",
"doc_probatorio": "sample_value",
"first_name": "John",
"full_name": "John Doe",
"gender": "M",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"nationality": "USA",
"num_acta": "sample_value",
"registration_municipality": "sample_value",
"registration_state": "sample_value",
"registration_year": "sample_value",
"state_of_birth": "sample_value"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
NO_MATCH: لم يُعِد السجل أي تطابق للبيانات المرسلة.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "MEX",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "mex_curp",
"service_name": "Mexico - CURP verification",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
البيانات المُعادة
تعتمد الحقول الدقيقة المعروضة فيsource_data على ما يُعيده السجل. يوثّق المثال المُولَّد لـ mex_curp حالياً الشكل الموحّد التالي:
curp_statusdate_of_birthdoc_probatoriofirst_namefull_namegenderidentification_numberlast_namenationalitynum_actaregistration_municipalityregistration_stateregistration_yearstate_of_birth
الأسعار واتفاقيات مستوى الخدمة
المكسيك - تُحتسب استعلامات التحقق من CURP فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.- السعر لكل استدعاء: $0.20 USD.
- الفوترة: لكل استعلام ناجح. لا يُحتسب أي رسوم عندما يتعذر الوصول إلى السجل، أو عند غياب الحقول المطلوبة، أو عند رفض الطلب قبل وصوله إلى المصدر.
- زمن الاستجابة: زمن الاستجابة المعتاد عند p95 أقل من ثانيتين.
- التوفر: 99.9% لكل ربع سنة من جانب Didit؛ ويختلف توفر المصدر التابع بحسب الدولة ومجموعة البيانات.
متابعة القراءة
آخر تعديل في ٧ نوفمبر ٢٠٢٦