> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# التحقق من جواز السفر الصيني API: استعلام فوري

> التحقق من جواز السفر الصيني عبر قاعدة بيانات موثوقة ضمن البنية التحتية للهوية في Didit. الدفع لكل استدعاء بدءاً من $1.67، بدون عقود أو حد أدنى.

يتحقق من البيانات المُدخلة مقابل خدمة البيانات الرسمية في الصين. تعرض Didit هذه الخدمة عبر `POST /v3/database-validation/` لتتمكن من التحقق من البيانات المُرسلة مقابل المصدر الموثوق والحصول على نتائج تطابق موحّدة. تنسيق الإدخال: يقبل `date_of_birth` تاريخ الميلاد، ويجب أن يطابق تاريخ الميلاد المشفّر في رقم الهوية الوطنية الصينية (الأرقام من 7 إلى 14 في رقم مكوّن من 18 خانة، ومن 7 إلى 12 في رقم قديم مكوّن من 15 خانة).

## التغطية

* **التغطية:** \~ 100%
* **الدولة:** الصين
* **معرّف الخدمة:** `chn_passport_verification`
* **نطاق البيانات:** المستند
* **الفئة:** جواز السفر

## المدخلات

| الحقل | مطلوب | المثال |
| - | -: | - |
| `full_name` | نعم | `王新伟` |
| `date_of_birth` | نعم | `1990-01-01` |
| `national_id` | نعم | `11010519900101003X` |
| `passport_number` | نعم | `SAMPLE-PASS-12345` |
| `vendor_data` | لا | `user-1234` |

* **المدخلات المطلوبة:** `full_name`، `date_of_birth`، `national_id`، `passport_number`
* **المدخلات الاختيارية:** `vendor_data`
* **الموافقة:** مطلوبة
* **التوفر في سير العمل:** متاح في سير العمل
* **التغطية:** \~ 100%
* **السعر:** \$1.67 لكل استعلام ناجح

لا تحمل كل الوثائق التي تقبلها هذه الخدمة المعرّف الذي تستعلم به. عندما لا يُستخرج المعرّف من الوثيقة، يُسجَّل الفحص بوصفه **غير قابل للتطبيق**: لا يُستعلم عن أي قاعدة بيانات ولا يُحتسب عليك أي رسوم، وهذا يمثل نسبة كبيرة من المستخدمين الفعليين في بعض الدول. لتغطية هؤلاء المستخدمين، اجمع المعرّف أيضاً من إجابة في أحد الاستبيانات، أو من حقل استخراج في Document AI، أو من قيمة ترسلها عند إنشاء الجلسة، ثم اربطه في خطوة التحقق من قاعدة البيانات.

## معاملات الجسم

**issuing\_state** `string` *required* (default: CHN)

رمز الدولة وفق ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.

مثال: `CHN`

**services** `string` *required* (default: chn\_passport\_verification)

مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يُبقي الطلب مقصوراً على قاعدة البيانات المحددة هذه بالضبط.

مثال: `chn_passport_verification`

**consent** `boolean` *required* (default: true)

موافقة صريحة من المستخدم النهائي على هذه الخدمة.

مثال: `true`

**full\_name** `string` *required* (default: 王新伟)

الاسم القانوني الكامل المراد التحقق منه.

مثال: `王新伟`

**date\_of\_birth** `string` *required* (default: 1990-01-01)

تاريخ الميلاد بتنسيق `YYYY-MM-DD`.

مثال: `1990-01-01`

**national\_id** `string` *required* (default: 11010519900101003X)

رقم الهوية الوطنية لهذه الخدمة.

مثال: `11010519900101003X`

**passport\_number** `string` *required* (default: SAMPLE-PASS-12345)

رقم جواز السفر.

مثال: `SAMPLE-PASS-12345`

**vendor\_data** `string` (default: user-1234)

مرجعك الثابت لهذا الشخص، مثل معرّف المستخدم الداخلي لديك. تستخدمه Didit لربط الفحوصات المستقلة بالمستخدم النهائي نفسه وتقليل الضجيج الناتج عن اكتشاف التكرار.

مثال: `user-1234`

## قواعد المدخلات وملاحظات التحقق

* يجب أن يطابق تاريخ الميلاد المشفّر في رقم الهوية الوطنية الصينية (الأرقام من 7 إلى 14 في رقم مكوّن من 18 خانة، ومن 7 إلى 12 في رقم قديم مكوّن من 15 خانة)
* يجب أن يطابق `date_of_birth` تاريخ الميلاد المشفّر في `national_id`؛ يرفض المصدر الطلب فوراً عند وجود تعارض بينهما، فيُرفض قبل الاستعلام ولا يُحتسب عليك أي رسوم.
* يجب أن يطابق `national_id` التعبير `(?:\d{15}|\d{17}[\dXx])`.
* يتم التحقق من حرف التحقق الأخير في بطاقة الهوية للمقيمين الصينيين.
* يجب أن يكون `full_name` الاسم الأصلي بالخط الصيني كما يظهر في السجل أو في الوثيقة. لا ترسل الاسم المكتوب بالحروف اللاتينية (النقل الصوتي) في فحوصات قواعد البيانات الخاصة بالصين.

## كيفية الاستدعاء

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=CHN" \
  -F "services=chn_passport_verification" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=王新伟" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=11010519900101003X" \
  -F "passport_number=SAMPLE-PASS-12345"
```

```python Python theme={null}
from didit import Didit

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_passport_verification"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    passport_number="SAMPLE-PASS-12345",
    national_id="11010519900101003X",
    vendor_data="user-1234",
)
print(result)
```

```javascript Node.js theme={null}
import Didit from "@didit-protocol/sdk-node";

// Reads DIDIT_API_KEY.
const didit = new Didit();

const result = await didit.databaseValidation.validate({
  issuing_state: "CHN",
  services: ["chn_passport_verification"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  passport_number: "SAMPLE-PASS-12345",
  national_id: "11010519900101003X",
  vendor_data: "user-1234",
});
console.log(result);
```

```go Go theme={null}
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()

result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
	IssuingState:   "CHN",
	Services:       didit.Some([]string{"chn_passport_verification"}),
	Consent:        didit.Bool(true),
	FullName:       didit.String("王新伟"),
	DateOfBirth:    didit.String("1990-01-01"),
	PassportNumber: didit.String("SAMPLE-PASS-12345"),
	NationalID:     didit.String("11010519900101003X"),
	VendorData:     didit.String("user-1234"),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
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("CHN")
        .services(List.of("chn_passport_verification"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .passportNumber("SAMPLE-PASS-12345")
        .nationalId("11010519900101003X")
        .vendorData("user-1234")
        .build());
System.out.println(result);
```

```php PHP theme={null}
<?php

require 'vendor/autoload.php';

use Didit\DiditClient;

// Reads DIDIT_API_KEY.
$didit = new DiditClient();

$result = $didit->databaseValidation->validate([
    'issuing_state' => 'CHN',
    'services' => ['chn_passport_verification'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    'passport_number' => 'SAMPLE-PASS-12345',
    'national_id' => '11010519900101003X',
    'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
```

```ruby Ruby theme={null}
require "didit"

# Reads DIDIT_API_KEY.
didit = Didit::Client.new

result = didit.database_validation.validate(
  issuing_state: "CHN",
  services: ["chn_passport_verification"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  passport_number: "SAMPLE-PASS-12345",
  national_id: "11010519900101003X",
  vendor_data: "user-1234"
)
puts result.to_h
```

```csharp .NET theme={null}
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 = "CHN",
    Services = new string[] { "chn_passport_verification" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    PassportNumber = "SAMPLE-PASS-12345",
    NationalId = "11010519900101003X",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

يُرجع كل استدعاء ناجح رمز HTTP `200`. يخبرك الحقل **`outcome_code`** بما حدث فعلاً، فيميّز مثلاً بين عدم تطابق بيومتري حقيقي (`BIOMETRIC_NO_MATCH`) وصورة سيلفي تعذّرت قراءتها (`BIOMETRIC_IMAGE_UNUSABLE`). الحالة `status` المعروضة هي حالة الميزة الافتراضية، ويمكن لإجراءاتك المُعدّة في [إجراءات التطابق الجزئي / عدم التطابق](https://docs.didit.me/ar/core-technology/database-validation/database-validation-warnings.md) أن تتجاوزها.

**`MATCH`** — أكّد السجل الهوية، وتطابق كل حقل تم فحصه.

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "CHN",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "chn_passport_verification",
      "service_name": "China Passport Verification",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "11010519900101003X",
        "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`** — تم العثور على رقم الهوية، لكن حقلاً شخصياً واحداً أو أكثر (غالباً الاسم أو تاريخ الميلاد) لم يتطابق تماماً.

```json 200 OK — PARTIAL_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "CHN",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "chn_passport_verification",
      "service_name": "China Passport Verification",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "11010519900101003X",
        "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`** — لم يُرجع السجل أي تطابق للبيانات المُرسلة.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "CHN",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "chn_passport_verification",
      "service_name": "China Passport Verification",
      "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` على ما يُرجعه السجل. يوثّق المثال المُولّد لـ `chn_passport_verification` حالياً هذا الشكل الموحّد:

* `date_of_birth`
* `identification_number`

## الأسعار واتفاقيات مستوى الخدمة

تُحتسب استعلامات التحقق من جواز السفر في الصين فقط عندما تتلقى Didit نتيجة حاسمة من مصدر التحقق.

* **السعر لكل استدعاء:** \$1.67 دولار أمريكي.
* **الفوترة:** لكل استعلام ناجح. لا يُحتسب عليك أي رسوم عندما يكون السجل غير قابل للوصول، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل وصوله إلى المصدر.
* **زمن الاستجابة:** النموذجي p95 \< 2 s.
* **التوفر:** 99.9% لكل ربع سنة من جهة Didit؛ ويختلف توفر المصدر لدى الجهة الأخرى حسب الدولة ومجموعة البيانات.

## متابعة القراءة

* [نظرة عامة على التحقق من قواعد البيانات في الصين](https://docs.didit.me/api-reference/database-validation/china.md)
* [نظرة عامة على التحقق من قواعد البيانات](https://docs.didit.me/ar/core-technology/database-validation/overview.md)
* [رموز النتائج](https://docs.didit.me/ar/core-technology/database-validation/database-validation-outcome-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.