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

# واجهة برمجة EPIC الهند لسجل الناخبين (ECI)

> التحقق من EPIC الهند (سجل الناخبين) (ECI) عبر Didit: استعلام من قاعدة بيانات هندية موثوقة. بدءاً من $0.25 لكل استدعاء، بدون عقود أو حدود دنيا.

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

## التغطية

* **التغطية:** > 75%
* **الدولة:** الهند
* **معرّف الخدمة:** `ind_epic_voter_s_registration`
* **نطاق البيانات:** حكومي
* **الفئة:** ElectoralRoll

## المدخلات

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

* **الحقول المطلوبة:** `full_name`، `date_of_birth`، `epic_card`
* **الحقول الاختيارية:** `vendor_data`
* **الموافقة:** مطلوبة
* **التوفر في سير العمل:** متاح في سير العمل مع ربط الحقول
* **التغطية:** > 75%
* **السعر:** \$0.25 لكل استعلام ناجح

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

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

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

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

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

مثال: `IND`

**services** `string` *required* (default: ind\_epic\_voter\_s\_registration)

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

مثال: `ind_epic_voter_s_registration`

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

**epic\_card** `string` *required* (default: ABC1234567)

رقم بطاقة الناخب EPIC.

مثال: `ABC1234567`

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

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

مثال: `user-1234`

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

* يجب أن يطابق `epic_card` النمط `[A-Za-z]{3}\d{7,14}`.

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

```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_epic_voter_s_registration" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=John Doe" \
  -F "date_of_birth=1990-01-01" \
  -F "epic_card=ABC1234567"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="IND",
    services=["ind_epic_voter_s_registration"],
    consent=True,
    full_name="John Doe",
    date_of_birth="1990-01-01",
    epic_card="ABC1234567",
    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_epic_voter_s_registration"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  epic_card: "ABC1234567",
  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_epic_voter_s_registration"}),
	Consent:      didit.Bool(true),
	FullName:     didit.String("John Doe"),
	DateOfBirth:  didit.String("1990-01-01"),
	EpicCard:     didit.String("ABC1234567"),
	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_epic_voter_s_registration"))
        .consent(true)
        .fullName("John Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .epicCard("ABC1234567")
        .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_epic_voter_s_registration'],
    'consent' => true,
    'full_name' => 'John Doe',
    'date_of_birth' => '1990-01-01',
    'epic_card' => 'ABC1234567',
    '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_epic_voter_s_registration"],
  consent: true,
  full_name: "John Doe",
  date_of_birth: "1990-01-01",
  epic_card: "ABC1234567",
  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_epic_voter_s_registration" },
    Consent = true,
    FullName = "John Doe",
    DateOfBirth = "1990-01-01",
    EpicCard = "ABC1234567",
    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_epic_voter_s_registration",
      "service_name": "India EPIC (Voter's Registration) (ECI)",
      "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_epic_voter_s_registration",
      "service_name": "India EPIC (Voter's Registration) (ECI)",
      "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_epic_voter_s_registration",
      "service_name": "India EPIC (Voter's Registration) (ECI)",
      "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_epic_voter_s_registration` حالياً هذه البنية الموحّدة:

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

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

تُحتسب استعلامات EPIC الهندي (تسجيل الناخبين) (ECI) فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.

* **السعر لكل استدعاء:** \$0.25 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.