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

# جواز السفر النيجيري (NIS): مطابقة الهوية عبر API

> تحقق من جواز السفر النيجيري (NIS) عبر قاعدة بيانات موثوقة في نيجيريا باستخدام Didit. الدفع لكل استدعاء من $0.22، دون عقود أو حد أدنى.

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

## التغطية

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

## المدخلات

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

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

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

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

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

مثال: `NGA`

**services** `string` *required* (default: nga\_passport)

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

مثال: `nga_passport`

**passport\_number** `string` *required* (default: A12345678)

رقم جواز السفر.

مثال: `A12345678`

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

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

مثال: `Doe`

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

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

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

**first\_name** `string`

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

مثال: `John`

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

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

مثال: `user-1234`

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

* يجب أن يستخدم `passport_number` أحرفًا كبيرة.
* يجب أن يطابق `passport_number` النمط `[A-Z]\d{8}`.

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

```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_passport" \
  -F "vendor_data=user-1234" \
  -F "passport_number=A12345678" \
  -F "last_name=Doe" \
  -F "date_of_birth=1990-01-01"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="NGA",
    services=["nga_passport"],
    last_name="Doe",
    date_of_birth="1990-01-01",
    passport_number="A12345678",
    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_passport"],
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  passport_number: "A12345678",
  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_passport"}),
	LastName:       didit.String("Doe"),
	DateOfBirth:    didit.String("1990-01-01"),
	PassportNumber: didit.String("A12345678"),
	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("NGA")
        .services(List.of("nga_passport"))
        .lastName("Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .passportNumber("A12345678")
        .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_passport'],
    'last_name' => 'Doe',
    'date_of_birth' => '1990-01-01',
    'passport_number' => 'A12345678',
    '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_passport"],
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  passport_number: "A12345678",
  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_passport" },
    LastName = "Doe",
    DateOfBirth = "1990-01-01",
    PassportNumber = "A12345678",
    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_passport",
      "service_name": "Nigeria International Passport (NIS)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe"
      },
      "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": "NGA",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "nga_passport",
      "service_name": "Nigeria International Passport (NIS)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe"
      },
      "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": "NGA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "nga_passport",
      "service_name": "Nigeria International Passport (NIS)",
      "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"
      }
    }
  ]
}
```

**`DOCUMENT_NOT_FOUND`**: رقم المستند المرسل لا يتوافق مع أي سجل في سجل الهيئة.

```json 200 OK — DOCUMENT_NOT_FOUND theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "NGA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "DOCUMENT_NOT_FOUND",
      "service_id": "nga_passport",
      "service_name": "Nigeria International Passport (NIS)",
      "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` على ما يعيده السجل. يوضح المثال المولَّد لـ `nga_passport` حاليًا الشكل الموحّد التالي:

* `date_of_birth`
* `first_name`
* `identification_number`
* `last_name`

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

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

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