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

# التحقق من DNI في الأرجنتين (RENAPER) - واجهة API

> التحقق من DNI في الأرجنتين (RENAPER) عبر Didit: بحث في قاعدة بيانات أرجنتينية موثوقة. تُدفع الرسوم لكل استدعاء بدءاً من $0.20، دون عقود أو حد أدنى.

يتحقق من رقم DNI الأرجنتيني مقابل السجل المدني الرسمي RENAPER، مع مطابقة الوجه بيومتريًا للصورة المحفوظة لديه. تغطية 100% من السكان. تتيح لك Didit الوصول إلى هذه الخدمة عبر `POST /v3/database-validation/` لمقارنة البيانات المقدَّمة بالمصدر الموثوق، والحصول على نتائج مطابقة موحّدة. صيغة الإدخال: يقبل الحقل `document_number` رقم DNI الأرجنتيني (7-8 أرقام، مع بادئة اختيارية M أو F).

## التغطية

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

RENAPER هي السجل الذي يصدر كل بطاقات DNI الأرجنتينية، لذلك فإن كل رقم DNI مسجل لديها، بما في ذلك أرقام DNI الصادرة للمقيمين الأجانب. تقارن مطابقة الوجه صورة السيلفي بالصورة التي يحتفظ بها RENAPER لرقم DNI هذا.

## المدخلات

| الحقل | مطلوب | مثال |
| - | -: | - |
| `document_number` | نعم | `11111111` |
| `selfie` | نعم | `@./selfie.jpg` |
| `gender` | نعم | `M` |
| `first_name` | لا | `John` |
| `last_name` | لا | `Doe` |
| `date_of_birth` | لا | `1990-01-01` |
| `vendor_data` | لا | `user-1234` |

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

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

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

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

مثال: `ARG`

**services** `string` *required* (default: arg\_renaper)

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

مثال: `arg_renaper`

**document\_number** `string` *required* (default: 11111111)

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

مثال: `11111111`

**selfie** `file` *required*

ملف صورة السيلفي المراد رفعه للتحقق البيومتري من قاعدة البيانات. الصيغ المقبولة: JPEG أو PNG أو WebP.

مثال: `@./selfie.jpg`

**gender** `string` *required* (default: M)

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

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

مثال: `M`

**first\_name** `string`

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

مثال: `John`

**last\_name** `string`

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

مثال: `Doe`

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

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

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

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

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

مثال: `user-1234`

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

* رقم DNI الأرجنتيني (7-8 أرقام، مع بادئة اختيارية M أو F)
* يجب أن يكون طول `document_number` بين 7 و9 أحرف.
* يجب أن يطابق `document_number` النمط `[MFmf]?\d{7,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=ARG" \
  -F "services=arg_renaper" \
  -F "vendor_data=user-1234" \
  -F "document_number=11111111" \
  -F "selfie=@./selfie.jpg" \
  -F "gender=M"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="ARG",
    services=["arg_renaper"],
    document_number="11111111",
    gender="M",
    vendor_data="user-1234",
    selfie=open("selfie.jpg", "rb"),
)
print(result)
```

```javascript Node.js theme={null}
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";

// Reads DIDIT_API_KEY.
const didit = new Didit();

const result = await didit.databaseValidation.validate({
  issuing_state: "ARG",
  services: ["arg_renaper"],
  document_number: "11111111",
  gender: "M",
  vendor_data: "user-1234",
  selfie: await fileFromPath("selfie.jpg"),
});
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:   "ARG",
	Services:       didit.Some([]string{"arg_renaper"}),
	DocumentNumber: didit.String("11111111"),
	Gender:         didit.Some(didit.DatabaseValidationValidateParamsGender("M")),
	VendorData:     didit.String("user-1234"),
	Selfie:         didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
import java.nio.file.Path;
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("ARG")
        .services(List.of("arg_renaper"))
        .documentNumber("11111111")
        .gender(DatabaseValidationValidateParams.Gender.of("M"))
        .vendorData("user-1234")
        .selfie(Path.of("selfie.jpg"))
        .build());
System.out.println(result);
```

```php PHP theme={null}
<?php

require 'vendor/autoload.php';

use Didit\DiditClient;
use Didit\File;

// Reads DIDIT_API_KEY.
$didit = new DiditClient();

$result = $didit->databaseValidation->validate([
    'issuing_state' => 'ARG',
    'services' => ['arg_renaper'],
    'document_number' => '11111111',
    'gender' => 'M',
    'vendor_data' => 'user-1234',
    'selfie' => File::fromPath('selfie.jpg'),
]);
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: "ARG",
  services: ["arg_renaper"],
  document_number: "11111111",
  gender: "M",
  vendor_data: "user-1234",
  selfie: Pathname("selfie.jpg")
)
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 = "ARG",
    Services = new string[] { "arg_renaper" },
    DocumentNumber = "11111111",
    Gender = new DatabaseValidationValidateParamsGender("M"),
    VendorData = "user-1234",
    Selfie = FileUpload.FromPath("selfie.jpg"),
});
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": "ARG",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "arg_renaper",
      "service_name": "Argentina - DNI verification (RENAPER)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "face_match_score": "92",
        "first_name": "John",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "tax_id": "SAMPLE-12345",
        "tax_id_type": "SAMPLE-12345"
      },
      "validation": {
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`**: لم يُرجع السجل أي تطابق للبيانات المقدَّمة.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "ARG",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "arg_renaper",
      "service_name": "Argentina - DNI verification (RENAPER)",
      "source_data": {
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "identification_number": "no_match"
      }
    }
  ]
}
```

**`BIOMETRIC_NO_MATCH`**: كانت درجة مطابقة الوجه أقل من حد القبول، أي أن السيلفي ليس لنفس الشخص الموجود في صورة السجل.

```json 200 OK — BIOMETRIC_NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "ARG",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "BIOMETRIC_NO_MATCH",
      "service_id": "arg_renaper",
      "service_name": "Argentina - DNI verification (RENAPER)",
      "source_data": {
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "identification_number": "no_match"
      }
    }
  ]
}
```

**`BIOMETRIC_IMAGE_UNUSABLE`**: تعذّرت معالجة السيلفي (فارغ، أو لا يحتوي على وجه، أو ذو جودة منخفضة، أو تعذّر على السجل قراءته). اطلب من المستخدم إعادة التقاط السيلفي.

```json 200 OK — BIOMETRIC_IMAGE_UNUSABLE theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ARG",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
      "service_id": "arg_renaper",
      "service_name": "Argentina - DNI verification (RENAPER)",
      "source_data": {
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "identification_number": "no_match"
      }
    }
  ]
}
```

## البيانات المُعادة

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

* `date_of_birth`
* `face_match_score`
* `first_name`
* `full_name`
* `identification_number`
* `last_name`
* `tax_id`
* `tax_id_type`

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

الأرجنتين - استعلامات التحقق من DNI (RENAPER) تُحتسب فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.

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

## درجة مطابقة الوجه

`face_match_score` هي درجة التشابه التي يحسبها RENAPER بين صورة السيلفي والصورة المسجلة لدى الجهة للرقم DNI، وتُرسل كعدد صحيح من 0 إلى 100 داخل سلسلة نصية، مثل `"92"`. وهي ليست احتمالاً بين 0 و1.

يعيد الفحص `BIOMETRIC_NO_MATCH` عندما يُبلغ RENAPER بأن الوجه غير متطابق، أو عندما تقل الدرجة عن 50. عند 50 أو أكثر يُقبل الوجه، وتُقارن بعد ذلك الاسم المسجل وتاريخ الميلاد المسجل بالبيانات التي أرسلتها.

قد تكون الصورة المسجلة قديمة بعدة سنوات، لذلك قد تسجّل مستخدماً حقيقياً درجة منخفضة بعد تغيّر كبير في مظهره. فكّر في إرسال `BIOMETRIC_NO_MATCH` إلى مراجعة يدوية بدلاً من رفضه مباشرة، مع الاستفادة من [الإجراءات الخاصة بالمطابقة الجزئية وعدم المطابقة](https://docs.didit.me/ar/core-technology/database-validation/database-validation-warnings.md).

## عندما لا يستجيب RENAPER

إذا تعذّر الوصول إلى RENAPER أو أعاد خطأً، تكون النتيجة `REGISTRY_UNAVAILABLE`: لم يُتحقق من أي شيء يخص الشخص، ولا تُفرض رسوم على المكالمة. قد ينجح الطلب نفسه عند إعادة المحاولة لاحقاً. راجع [رموز النتائج](https://docs.didit.me/ar/core-technology/database-validation/database-validation-outcome-codes.md) لمعرفة كيفية التعامل مع هذه الحالة.

## المستندات التي يقرؤها سير العمل

داخل سير العمل، يُؤخذ رقم DNI والجنس من خطوة التحقق من الهوية، التي تقرأ بطاقة DNI الأرجنتينية وDNI الرقمي. يحمل المقيمون الأجانب بطاقة DNI نفسها ويُتحقق منهم بالطريقة ذاتها.

لا يُعد دفتر DNI القديم (*libreta*) مستنداً مدعوماً في التحقق من الهوية، لذلك لا يستطيع المستخدم الذي يحمل هذا الدفتر وحده إكمال هذه الخطوة. ومع ذلك يمكنك التحقق من رقم DNI الخاص به مباشرة باستخدام `POST /v3/database-validation/`.

## استخدامها في سير العمل

أضف الخدمة إلى خطوة التحقق من قواعد البيانات بعد خطوة التحقق من الهوية. على سبيل المثال، باستخدام [`POST /v3/workflows/`](https://docs.didit.me/ar/management-api/workflows/create):

```json theme={null}
{
  "workflow_label": "Argentina KYC with RENAPER",
  "features": [
    {"feature": "OCR"},
    {"feature": "LIVENESS", "config": {"face_liveness_method": "PASSIVE"}},
    {
      "feature": "DATABASE_VALIDATION",
      "config": {"database_validation_countries": {"ARG": {"services": ["arg_renaper"]}}}
    }
  ]
}
```

إذا كانت خطوة كشف الحيوية قبلها، يقارن RENAPER صورة السيلفي الحية. وإذا لم تكن موجودة، يرسل Didit بدلاً من ذلك الصورة المطبوعة على المستند، وهذا يتحقق من صورة المستند لكنه لا يؤكد أن الشخص أمام الكاميرا هو صاحبه. يُرفض معرّف الخدمة الذي لا يستطيع سير العمل تشغيله بخطأ `400` يذكره، فلا تُحفظ الخطوة من دون الفحص الذي طلبته. راجع [إعدادات ميزات سير العمل](https://docs.didit.me/ar/management-api/workflows/feature-configs.md#التحقق-من-قواعد-البيانات) لمعرفة كل إعدادات التحقق من قواعد البيانات.

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

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