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

# التحقق من الهوية الوطنية النيجيرية (NIMC) API

> التحقق من الهوية الوطنية النيجيرية (NIMC) عبر قاعدة البيانات الرسمية من Didit. الدفع لكل استدعاء بدءاً من $0.20، بلا عقود ولا حد أدنى.

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

## التغطية

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

## المدخلات

| الحقل | مطلوب | مثال |
| - | -: | - |
| `first_name` | نعم | `John` |
| `last_name` | نعم | `Doe` |
| `national_id` | نعم | `11111111111` |
| `date_of_birth` | لا | `1990-01-01` |
| `vendor_data` | لا | `user-1234` |

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

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

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

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

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

مثال: `NGA`

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

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

مثال: `nga_national_id`

**first\_name** `string` *required* (default: John)

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

مثال: `John`

**last\_name** `string` *required* (default: Doe)

اسم العائلة المراد التحقق منه.

مثال: `Doe`

**national\_id** `string` *required* (default: 11111111111)

رقم الهوية الوطنية لهذه الخدمة.

مثال: `11111111111`

**date\_of\_birth** `string`

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

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

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

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

مثال: `user-1234`

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

* يجب أن يطابق `first_name` النمط `[A-Za-zÀ-ÖØ-öø-ÿ .'-]+`.
* يجب أن يحتوي `national_id` على أرقام فقط، فأزل المسافات والشرطات وعلامات الترقيم قبل إرسال الطلب.
* يجب أن يكون طول `national_id` 11 حرفاً بالضبط.

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

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=NGA" \
  -F "services=nga_national_id" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "national_id=11111111111"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="NGA",
    services=["nga_national_id"],
    first_name="John",
    last_name="Doe",
    national_id="11111111111",
    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: "NGA",
  services: ["nga_national_id"],
  first_name: "John",
  last_name: "Doe",
  national_id: "11111111111",
  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: "NGA",
	Services:     didit.Some([]string{"nga_national_id"}),
	FirstName:    didit.String("John"),
	LastName:     didit.String("Doe"),
	NationalID:   didit.String("11111111111"),
	VendorData:   didit.String("user-1234"),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
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("NGA")
        .services(List.of("nga_national_id"))
        .firstName("John")
        .lastName("Doe")
        .nationalId("11111111111")
        .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' => 'NGA',
    'services' => ['nga_national_id'],
    'first_name' => 'John',
    'last_name' => 'Doe',
    'national_id' => '11111111111',
    '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: "NGA",
  services: ["nga_national_id"],
  first_name: "John",
  last_name: "Doe",
  national_id: "11111111111",
  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 = "NGA",
    Services = new string[] { "nga_national_id" },
    FirstName = "John",
    LastName = "Doe",
    NationalId = "11111111111",
    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": "NGA",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "nga_national_id",
      "service_name": "Nigeria National ID (NIMC)",
      "source_data": {
        "first_name": "John",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "name_match_score": "1.000"
      },
      "validation": {
        "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": "NGA",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "nga_national_id",
      "service_name": "Nigeria National ID (NIMC)",
      "source_data": {
        "first_name": "John",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "name_match_score": "1.000"
      },
      "validation": {
        "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": "NGA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "nga_national_id",
      "service_name": "Nigeria National ID (NIMC)",
      "source_data": {
        "full_name": "NO_MATCH",
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "full_name": "no_match",
        "identification_number": "no_match"
      }
    }
  ]
}
```

## البيانات المُرجعة

تختلف الحقول الدقيقة التي تظهر في `source_data` حسب ما تُرجعه الجهة المسجِّلة. يوثّق المثال المُولَّد لـ `nga_national_id` حالياً هذا الشكل الموحّد:

* `first_name`
* `full_name`
* `identification_number`
* `last_name`
* `name_match_score`

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

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

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

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

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