> ## 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.

# التحقق من Aadhaar الهندي (UIDAI): مطابقة البيانات

> Didit يوفّر التحقق من Aadhaar الهندي (UIDAI) عبر قاعدة البيانات الرسمية. الدفع لكل استدعاء من $0.42، بدون عقود أو حدود دنيا.

يتحقق من رقم Aadhaar المُدخل مقابل سجلات الهوية لدى UIDAI. يُتيح Didit هذه الخدمة عبر `POST /v3/database-validation/` لتتمكن من التحقق من البيانات المُرسلة مقابل المصدر الموثوق، والحصول على نتائج مطابقة موحّدة.

## التغطية

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

## المدخلات

| الحقل | مطلوب | المثال |
| - | -: | - |
| `full_name` | نعم | `John Doe` |
| `date_of_birth` | نعم | `1990-01-01` |
| `personal_number` | نعم | `111111111111` |
| `pan` | نعم | `ABCDE1234F` |
| `vendor_data` | لا | `user-1234` |

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

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

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

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

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

مثال: `IND`

**services** `string` *required* (default: ind\_aadhaar)

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

مثال: `ind_aadhaar`

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

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

مثال: `true`

**full\_name** `string` *required* (default: John Doe)

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

مثال: `John Doe`

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

تاريخ الميلاد بصيغة `YYYY-MM-DD`.

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

**personal\_number** `string` *required* (default: 111111111111)

رقم الهوية الشخصية الخاص بالدولة.

مثال: `111111111111`

**pan** `string` *required* (default: ABCDE1234F)

رقم الحساب الدائم (Permanent Account Number).

مثال: `ABCDE1234F`

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

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

مثال: `user-1234`

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

* يجب أن يستخدم `pan` حروفًا كبيرة.
* يجب أن يطابق `pan` النمط `[A-Z]{5}\d{4}[A-Z]`.
* يجب أن يحتوي `personal_number` على أرقام فقط؛ أزل المسافات والشرطات وعلامات الترقيم قبل إرسال الطلب.
* يجب أن يكون طول `personal_number` 12 حرفًا بالضبط.

## كيفية استدعائها

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=IND" \
  -F "services=ind_aadhaar" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=John Doe" \
  -F "date_of_birth=1990-01-01" \
  -F "personal_number=111111111111" \
  -F "pan=ABCDE1234F"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="IND",
    services=["ind_aadhaar"],
    consent=True,
    full_name="John Doe",
    date_of_birth="1990-01-01",
    personal_number="111111111111",
    pan="ABCDE1234F",
    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: "IND",
  services: ["ind_aadhaar"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  personal_number: "111111111111",
  pan: "ABCDE1234F",
  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:   "IND",
	Services:       didit.Some([]string{"ind_aadhaar"}),
	Consent:        didit.Bool(true),
	FullName:       didit.String("John Doe"),
	DateOfBirth:    didit.String("1990-01-01"),
	PersonalNumber: didit.String("111111111111"),
	Pan:            didit.String("ABCDE1234F"),
	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("IND")
        .services(List.of("ind_aadhaar"))
        .consent(true)
        .fullName("John Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .personalNumber("111111111111")
        .pan("ABCDE1234F")
        .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' => 'IND',
    'services' => ['ind_aadhaar'],
    'consent' => true,
    'full_name' => 'John Doe',
    'date_of_birth' => '1990-01-01',
    'personal_number' => '111111111111',
    'pan' => 'ABCDE1234F',
    '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: "IND",
  services: ["ind_aadhaar"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  personal_number: "111111111111",
  pan: "ABCDE1234F",
  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 = "IND",
    Services = new string[] { "ind_aadhaar" },
    Consent = true,
    FullName = "John Doe",
    DateOfBirth = "1990-01-01",
    PersonalNumber = "111111111111",
    Pan = "ABCDE1234F",
    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": "IND",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "ind_aadhaar",
      "service_name": "India Aadhaar (UIDAI)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345"
      },
      "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": "IND",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "ind_aadhaar",
      "service_name": "India Aadhaar (UIDAI)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345"
      },
      "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": "IND",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "ind_aadhaar",
      "service_name": "India Aadhaar (UIDAI)",
      "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` على ما يُرجعه السجل. يوثّق المثال المُولَّد لـ `ind_aadhaar` حاليًا هذا الشكل الموحّد:

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

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

تُحتسب عمليات الاستعلام عن Aadhaar الهندية (UIDAI) فقط عندما يتسلّم Didit نتيجة حاسمة من مصدر التحقق.

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

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

* [نظرة عامة على التحقق من قواعد البيانات في الهند](https://docs.didit.me/api-reference/database-validation/india.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.