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

# التحقق من رخصة القيادة في الولايات المتحدة (DMV) - واجهة API

> الولايات المتحدة - رخصة القيادة (DMV): استعلام موثوق من قاعدة بيانات أمريكية عبر Didit. الدفع لكل استدعاء بدءاً من $1.99، بلا عقود ولا حد أدنى.

يتحقق من رخصة القيادة الأمريكية أو بطاقة الهوية الصادرة عن الولاية مقابل سجلات إدارة المركبات الآلية في الولاية المُصدِرة، ويؤكد رقم الرخصة وأسماء حاملها وتاريخ ميلاده. تتيح Didit هذه الخدمة عبر `POST /v3/database-validation/` لتتمكن من التحقق من البيانات المُرسلة مقابل المصدر الرسمي المعتمد، والحصول على نتائج مطابقة موحّدة. تنسيق الإدخال: يقبل `document_number` رقم رخصة القيادة الأمريكية أو رقم بطاقة الهوية الصادرة عن الولاية (من 4-20 حرفاً ورقماً؛ يُسمح بالشرطات والمسافات).

## التغطية

* **التغطية:** \~ 90%
* **الدولة:** الولايات المتحدة
* **معرّف الخدمة:** `usa_driver_license_dmv`
* **نطاق البيانات:** المستند
* **الفئة:** رخصة القيادة

## المدخلات

| الحقل | مطلوب | مثال |
| - | -: | - |
| `first_name` | نعم | `John` |
| `last_name` | نعم | `Doe` |
| `document_number` | نعم | `SAMPLE-DOC-12345` |
| `driver_license_state` | نعم | `Sample State` |
| `middle_name` | لا | `Demo` |
| `date_of_birth` | لا | `1990-01-01` |
| `date_of_issue` | لا | `1990-01-01` |
| `expiration_date` | لا | `1990-01-01` |
| `gender` | لا | `M` |
| `document_type` | لا | `DL` |
| `vendor_data` | لا | `user-1234` |

* **المدخلات المطلوبة:** `first_name`، `last_name`، `document_number`، `driver_license_state`
* **المدخلات الاختيارية:** `middle_name`، `date_of_birth`، `date_of_issue`، `expiration_date`، `gender`، `document_type`، `vendor_data`
* **الموافقة:** غير مطلوبة
* **توفر سير العمل:** متاح في سير العمل
* **التغطية:** \~ 90%
* **السعر:** ‏\$1.99 لكل استعلام ناجح

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

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

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

مثال: `USA`

**services** `string` *required* (default: usa\_driver\_license\_dmv)

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

مثال: `usa_driver_license_dmv`

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

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

مثال: `John`

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

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

مثال: `Doe`

**document\_number** `string` *required* (default: SAMPLE-DOC-12345)

رقم المستند المستخرج من المستند أو المقدَّم من المستخدم.

مثال: `SAMPLE-DOC-12345`

**driver\_license\_state** `string` *required* (default: Sample State)

الولاية أو المنطقة التي أصدرت رخصة القيادة.

مثال: `Sample State`

**middle\_name** `string`

الاسم الأوسط، عند توفره.

مثال: `Demo`

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

تاريخ الميلاد بتنسيق `YYYY-MM-DD`.

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

**date\_of\_issue** `string`

قيمة `date_of_issue` التي تتطلبها خدمة قاعدة البيانات هذه.

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

**expiration\_date** `string`

قيمة `expiration_date` التي تتطلبها خدمة قاعدة البيانات هذه.

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

**gender** `string`

قيمة الجنس، عندما تتطلبها قاعدة البيانات.

القيم المسموح بها: `M` (ذكر)، `F` (أنثى)، `X` (آخر أو غير معروف).

مثال: `M`

**document\_type** `string`

نوع المستند المراد التحقق منه مقابل خدمة قاعدة البيانات هذه.

القيم المسموح بها: `DL` (رخصة القيادة)، `ID` (الهوية الوطنية).

مثال: `DL`

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

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

مثال: `user-1234`

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

* رقم رخصة القيادة أو بطاقة الهوية الصادرة عن الولاية في الولايات المتحدة (من 4 إلى 20 محرفًا، تتكوّن من أحرف وأرقام؛ يُسمح بالشرطات والمسافات)
* يجب أن يتراوح طول `document_number` بين 4 و20 محرفًا.
* يجب أن يطابق `document_number` التعبير `[A-Za-z0-9][A-Za-z0-9 -]{2,18}[A-Za-z0-9]`.
* أرسل `driver_license_state` بوصفه الرمز المكوّن من حرفين للولاية المُصدِرة (`TX`) أو اسمها (`Texas`).
* لا تتحقق هذه الخدمة من رخص القيادة الصادرة في كاليفورنيا وبنسلفانيا.

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

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=USA" \
  -F "services=usa_driver_license_dmv" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "document_number=SAMPLE-DOC-12345" \
  -F "driver_license_state=Sample State"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="USA",
    services=["usa_driver_license_dmv"],
    first_name="John",
    last_name="Doe",
    document_number="SAMPLE-DOC-12345",
    driver_license_state="Sample State",
    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: "USA",
  services: ["usa_driver_license_dmv"],
  first_name: "John",
  last_name: "Doe",
  document_number: "SAMPLE-DOC-12345",
  driver_license_state: "Sample State",
  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:       "USA",
	Services:           didit.Some([]string{"usa_driver_license_dmv"}),
	FirstName:          didit.String("John"),
	LastName:           didit.String("Doe"),
	DocumentNumber:     didit.String("SAMPLE-DOC-12345"),
	DriverLicenseState: didit.String("Sample State"),
	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("USA")
        .services(List.of("usa_driver_license_dmv"))
        .firstName("John")
        .lastName("Doe")
        .documentNumber("SAMPLE-DOC-12345")
        .driverLicenseState("Sample State")
        .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' => 'USA',
    'services' => ['usa_driver_license_dmv'],
    'first_name' => 'John',
    'last_name' => 'Doe',
    'document_number' => 'SAMPLE-DOC-12345',
    'driver_license_state' => 'Sample State',
    '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: "USA",
  services: ["usa_driver_license_dmv"],
  first_name: "John",
  last_name: "Doe",
  document_number: "SAMPLE-DOC-12345",
  driver_license_state: "Sample State",
  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 = "USA",
    Services = new string[] { "usa_driver_license_dmv" },
    FirstName = "John",
    LastName = "Doe",
    DocumentNumber = "SAMPLE-DOC-12345",
    DriverLicenseState = "Sample State",
    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": "USA",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "usa_driver_license_dmv",
      "service_name": "United States - Driver's License (DMV)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "middle_name": "Demo"
      },
      "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": "USA",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "usa_driver_license_dmv",
      "service_name": "United States - Driver's License (DMV)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "middle_name": "Demo"
      },
      "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": "USA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "usa_driver_license_dmv",
      "service_name": "United States - Driver's License (DMV)",
      "source_data": {
        "full_name": "NO_MATCH",
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "full_name": "no_match",
        "identification_number": "no_match"
      }
    }
  ]
}
```

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

تعتمد الحقول الدقيقة التي تظهر في `source_data` على ما يُرجعه السجل. يوثّق المثال المُنشأ تلقائيًا لـ `usa_driver_license_dmv` حاليًا هذا الشكل الموحّد:

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

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

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

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

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

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