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

# رقم الحساب الدائم (PAN) للهند (ITD) عبر API

> تحقق من رقم الحساب الدائم (PAN) في الهند عبر Didit بالبحث في قواعد البيانات الرسمية. دفع لكل استدعاء بدءاً من $0.42 دون عقود أو حد أدنى.

يتحقق من بيانات المدخلات بمطابقتها مع قاعدة بيانات إدارة ضريبة الدخل في الهند (Income Tax Department). توفر Didit هذه الخدمة عبر `POST /v3/database-validation/` لتتمكن من التحقق من البيانات المرسلة مقابل المصدر المعتمد وتلقي نتائج مطابقة موحدة.

## التغطية

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

## المدخلات

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

* **المدخلات المطلوبة:** `full_name`، `date_of_birth`، `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\_pan\_permanent\_account\_number)

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

مثال: `ind_pan_permanent_account_number`

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

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

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

```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_pan_permanent_account_number" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=John Doe" \
  -F "date_of_birth=1990-01-01" \
  -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_pan_permanent_account_number"],
    consent=True,
    full_name="John Doe",
    date_of_birth="1990-01-01",
    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_pan_permanent_account_number"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  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_pan_permanent_account_number"}),
	Consent:      didit.Bool(true),
	FullName:     didit.String("John Doe"),
	DateOfBirth:  didit.String("1990-01-01"),
	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_pan_permanent_account_number"))
        .consent(true)
        .fullName("John Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .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_pan_permanent_account_number'],
    'consent' => true,
    'full_name' => 'John Doe',
    'date_of_birth' => '1990-01-01',
    '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_pan_permanent_account_number"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  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_pan_permanent_account_number" },
    Consent = true,
    FullName = "John Doe",
    DateOfBirth = "1990-01-01",
    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_pan_permanent_account_number",
      "service_name": "India PAN (Permanent Account Number) (ITD)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "SAMPLE-ID-12345",
        "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": "IND",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "ind_pan_permanent_account_number",
      "service_name": "India PAN (Permanent Account Number) (ITD)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "SAMPLE-ID-12345",
        "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": "IND",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "ind_pan_permanent_account_number",
      "service_name": "India PAN (Permanent Account Number) (ITD)",
      "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_pan_permanent_account_number` حالياً هذا الشكل الموحد:

* `date_of_birth`
* `identification_number`

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

تتم فوترة استعلامات PAN (رقم الحساب الدائم) في الهند (ITD) فقط عندما تتلقى 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)
* [رموز النتائج (Outcome Codes)](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.