> ## 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 في الأرجنتين: مطابقة البيانات

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

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

## التغطية

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

يُصدر RENAPER كل وثيقة DNI أرجنتينية، لذلك تكون كل أرقام DNI مسجّلة لديه، بما في ذلك أرقام DNI الصادرة للمقيمين الأجانب. لا تُجرى أي مقارنة للوجه: تُؤكَّد الهوية المسجّلة استنادًا إلى رقم DNI والجنس والاسم وتاريخ الميلاد التي تُرسلها.

## المدخلات

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

* **المدخلات المطلوبة:** `document_number`، `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\_data)

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

مثال: `arg_renaper_data`

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

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

مثال: `11111111`

**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_data" \
  -F "vendor_data=user-1234" \
  -F "document_number=11111111" \
  -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_data"],
    document_number="11111111",
    gender="M",
    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: "ARG",
  services: ["arg_renaper_data"],
  document_number: "11111111",
  gender: "M",
  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:   "ARG",
	Services:       didit.Some([]string{"arg_renaper_data"}),
	DocumentNumber: didit.String("11111111"),
	Gender:         didit.Some(didit.DatabaseValidationValidateParamsGender("M")),
	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("ARG")
        .services(List.of("arg_renaper_data"))
        .documentNumber("11111111")
        .gender(DatabaseValidationValidateParams.Gender.of("M"))
        .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' => 'ARG',
    'services' => ['arg_renaper_data'],
    'document_number' => '11111111',
    'gender' => 'M',
    '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: "ARG",
  services: ["arg_renaper_data"],
  document_number: "11111111",
  gender: "M",
  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 = "ARG",
    Services = new string[] { "arg_renaper_data" },
    DocumentNumber = "11111111",
    Gender = new DatabaseValidationValidateParamsGender("M"),
    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": "ARG",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "arg_renaper_data",
      "service_name": "Argentina - DNI data verification (RENAPER, no selfie)",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "full_name": "John Doe",
        "gender_match": true,
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "nationality": "USA",
        "tax_id": "SAMPLE-12345",
        "tax_id_type": "SAMPLE-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": "ARG",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "arg_renaper_data",
      "service_name": "Argentina - DNI data verification (RENAPER, no selfie)",
      "source_data": {
        "gender_match": true,
        "identification_number": "SAMPLE-ID-12345"
      },
      "validation": {
        "date_of_birth": "no_match",
        "full_name": "full_match",
        "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_data",
      "service_name": "Argentina - DNI data verification (RENAPER, no selfie)",
      "source_data": {
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "date_of_birth": "no_match",
        "full_name": "no_match",
        "identification_number": "no_match"
      }
    }
  ]
}
```

**`INCONCLUSIVE`**: تعذّر على السجل تحديد ما إذا كانت بيانات الشخص متطابقة، فالنتيجة غير حاسمة فعلًا (قد يكون الشخص مسجّلًا أو لا يكون). هذه ليست حالة عدم تطابق، وليست مشكلة تقنية في الصورة. لا يُثبت أي حقل، لذلك تكون قيمة match\_type فارغة (null) ويُرسل الفحص إلى المراجعة.

```json 200 OK — INCONCLUSIVE theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ARG",
  "match_type": null,
  "validations": [
    {
      "outcome_code": "INCONCLUSIVE",
      "service_id": "arg_renaper_data",
      "service_name": "Argentina - DNI data verification (RENAPER, no selfie)",
      "source_data": {},
      "validation": {}
    }
  ]
}
```

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

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

**`MINOR_BLOCKED`**: الشخص قاصر، ويمنع السجل الاستعلام لأسباب تتعلق بحماية البيانات.

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

**`DECEASED`**: تطابقت الهوية، لكن السجل يُعلّم الشخص بأنه متوفى.

```json 200 OK — DECEASED theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ARG",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "DECEASED",
      "service_id": "arg_renaper_data",
      "service_name": "Argentina - DNI data verification (RENAPER, no selfie)",
      "source_data": {
        "gender_match": true,
        "identification_number": "SAMPLE-ID-12345"
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

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

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

* `date_of_birth`
* `first_name`
* `full_name`
* `gender_match`
* `identification_number`
* `last_name`
* `nationality`
* `tax_id`
* `tax_id_type`

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

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

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

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

داخل سير العمل، يأتي رقم 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": "DATABASE_VALIDATION",
      "config": {"database_validation_countries": {"ARG": {"services": ["arg_renaper_data"]}}}
    }
  ]
}
```

يُرفض معرّف الخدمة الذي لا يستطيع سير العمل تشغيله باستجابة `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.