> ## 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.67، دون عقود أو حد أدنى.

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

## التغطية

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

## المدخلات

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

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

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

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

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

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

مثال: `CHN`

**services** `string` *required* (default: chn\_bank\_card)

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

مثال: `chn_bank_card`

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

**bank\_card\_number** `string` *required* (default: 4111111111111111)

رقم البطاقة المصرفية.

مثال: `4111111111111111`

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

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

مثال: `user-1234`

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

* يجب أن يطابق تاريخ الميلاد تاريخ الميلاد المرمّز في الهوية الوطنية الصينية (الأرقام من 7 إلى 14 في رقم مكوّن من 18 خانة، أو من 7 إلى 12 في الرقم القديم المكوّن من 15 رقمًا)
* يجب أن يطابق `date_of_birth` تاريخ الميلاد المرمّز في `national_id`؛ يرفض المصدر الطلب فورًا عند عدم التطابق، لذا يُرفض الطلب قبل البحث ولا يُحتسب عليه أي رسوم.
* رقم بطاقة الهوية الصينية للمقيم (15 رقمًا أو 18 خانة مع رقم التحقق)
* يجب أن يطابق `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_bank_card" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=王新伟" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=11010519900101003X" \
  -F "bank_card_number=4111111111111111"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_bank_card"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    national_id="11010519900101003X",
    bank_card_number="4111111111111111",
    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_bank_card"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  bank_card_number: "4111111111111111",
  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_bank_card"}),
	Consent:        didit.Bool(true),
	FullName:       didit.String("王新伟"),
	DateOfBirth:    didit.String("1990-01-01"),
	NationalID:     didit.String("11010519900101003X"),
	BankCardNumber: didit.String("4111111111111111"),
	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_bank_card"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .nationalId("11010519900101003X")
        .bankCardNumber("4111111111111111")
        .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_bank_card'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    'national_id' => '11010519900101003X',
    'bank_card_number' => '4111111111111111',
    '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_bank_card"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  bank_card_number: "4111111111111111",
  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_bank_card" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    NationalId = "11010519900101003X",
    BankCardNumber = "4111111111111111",
    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_bank_card",
      "service_name": "China Bank Card",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "王新伟",
        "identification_number": "11010519900101003X"
      },
      "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_bank_card",
      "service_name": "China Bank Card",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "王新伟",
        "identification_number": "11010519900101003X"
      },
      "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_bank_card",
      "service_name": "China Bank Card",
      "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_bank_card` حاليًا هذه البنية الموحّدة:

* `date_of_birth`
* `full_name`
* `identification_number`

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

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

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