> ## 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. الدفع لكل استدعاء من $0.50، دون عقود أو حد أدنى.

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

## التغطية

* **التغطية:** \~ 100%
* **الدولة:** الصين
* **معرّف الخدمة:** `chn_national_id`
* **نطاق البيانات:** الهوية
* **الفئة:** NationalIDRegistry

## المدخلات

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

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

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

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

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

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

مثال: `CHN`

**services** `string` *required* (default: chn\_national\_id)

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

مثال: `chn_national_id`

**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`

**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_national_id" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=王新伟" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=11010519900101003X"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_national_id"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    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_national_id"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  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_national_id"}),
	Consent:      didit.Bool(true),
	FullName:     didit.String("王新伟"),
	DateOfBirth:  didit.String("1990-01-01"),
	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_national_id"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .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_national_id'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    '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_national_id"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  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_national_id" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    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_national_id",
      "service_name": "China National ID",
      "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_national_id",
      "service_name": "China National ID",
      "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_national_id",
      "service_name": "China 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` على ما يُرجعه السجل. يوثّق النموذج المُولَّد للخدمة `chn_national_id` حالياً هذا الشكل الموحّد:

* `date_of_birth`
* `identification_number`

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

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

* **السعر لكل استدعاء:** \$0.50 USD.
* **الفوترة:** لكل استعلام ناجح. لا تُحتسب أي رسوم عندما يتعذّر الوصول إلى السجل، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل أن يصل إلى المصدر.
* **زمن الاستجابة:** أقل من ثانيتين عادةً عند المئين 95.
* **التوفر:** 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.