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

# Verifikasi DNI Argentina (RENAPER) API Validasi Database

> Verifikasi DNI Argentina (RENAPER) via Didit: pencarian database resmi Argentina. Bayar per panggilan mulai $0.20, tanpa kontrak, tanpa minimum.

Memverifikasi DNI Argentina terhadap registri sipil resmi RENAPER, dengan pencocokan wajah biometrik terhadap foto yang tersimpan. Cakupan populasi 100%. Didit menyediakan layanan ini melalui `POST /v3/database-validation/` agar Anda dapat memverifikasi data yang dikirim terhadap sumber otoritatif dan menerima hasil kecocokan yang dinormalisasi. Format input: `document_number` menerima DNI Argentina (7-8 digit, awalan M/F opsional).

## Cakupan

* **Cakupan:** 100%
* **Negara:** Argentina
* **ID layanan:** `arg_renaper`
* **Domain data:** Identitas
* **Kategori:** NationalIDRegistry

RENAPER adalah registri yang menerbitkan setiap DNI Argentina, sehingga setiap nomor DNI tersimpan di dalamnya, termasuk DNI yang diterbitkan untuk penduduk asing. Pencocokan wajah membandingkan swafoto dengan foto yang dimiliki RENAPER untuk DNI tersebut.

## Input

| Kolom | Wajib | Contoh |
| - | -: | - |
| `document_number` | Ya | `11111111` |
| `selfie` | Ya | `@./selfie.jpg` |
| `gender` | Ya | `M` |
| `first_name` | Tidak | `John` |
| `last_name` | Tidak | `Doe` |
| `date_of_birth` | Tidak | `1990-01-01` |
| `vendor_data` | Tidak | `user-1234` |

* **Input wajib:** `document_number`, `selfie`, `gender`
* **Input opsional:** `first_name`, `last_name`, `date_of_birth`, `vendor_data`
* **Persetujuan:** Tidak diperlukan
* **Ketersediaan dalam alur kerja:** Tersedia dalam alur kerja
* **Cakupan:** 100%
* **Harga:** \$0.20 per kueri yang berhasil

## Parameter body

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

Kode negara ISO 3166-1 alpha-3 untuk layanan database ini.

Contoh: `ARG`

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

Array yang berisi ID layanan ini. Mengunci layanan membuat permintaan hanya berlaku untuk database yang tepat ini.

Contoh: `arg_renaper`

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

Nomor dokumen yang diekstrak dari atau diberikan oleh pengguna.

Contoh: `11111111`

**selfie** `file` *required*

File gambar swafoto yang diunggah untuk validasi database biometrik. Format yang diterima: JPEG, PNG, atau WebP.

Contoh: `@./selfie.jpg`

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

Nilai jenis kelamin, jika diwajibkan oleh database.

Nilai yang diizinkan: `M` (laki-laki), `F` (perempuan), `X` (lainnya atau tidak diketahui).

Contoh: `M`

**first\_name** `string`

Nama depan yang akan divalidasi.

Contoh: `John`

**last\_name** `string`

Nama keluarga yang akan divalidasi.

Contoh: `Doe`

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

Tanggal lahir dalam format `YYYY-MM-DD`.

Contoh: `1990-01-01`

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

Referensi pengguna yang stabil dari orang ini di sistem Anda, misalnya ID pengguna internal. Didit menggunakannya untuk menautkan pemeriksaan terpisah ke pengguna akhir yang sama dan mengurangi gangguan dalam deteksi duplikasi.

Contoh: `user-1234`

## Aturan input dan catatan validasi

* DNI Argentina (7-8 digit, awalan M/F opsional)
* `document_number` harus terdiri dari 7-9 karakter.
* `document_number` harus cocok dengan `[MFmf]?\d{7,8}`.

## Cara memanggilnya

```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));
```

Setiap panggilan yang berhasil mengembalikan HTTP `200`. Kolom **`outcome_code`** memberi tahu Anda apa yang sebenarnya terjadi, misalnya membedakan ketidakcocokan biometrik yang nyata (`BIOMETRIC_NO_MATCH`) dari swafoto yang tidak dapat dibaca (`BIOMETRIC_IMAGE_UNUSABLE`). `status` yang ditampilkan adalah status fitur default; [tindakan Partial Match / No Match](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings.md) yang Anda konfigurasi dapat menggantinya.

**`MATCH`**: Registri mengonfirmasi identitas dan setiap kolom yang diperiksa cocok.

```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`**: Registri tidak mengembalikan kecocokan untuk data yang dikirim.

```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`**: Skor pencocokan wajah berada di bawah ambang penerimaan, yang berarti orang dalam swafoto bukan orang yang sama dengan orang dalam foto di registri.

```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`**: Swafoto tidak dapat diproses (kosong, tidak ada wajah, kualitas rendah, atau registri tidak dapat membacanya). Minta pengguna untuk mengambil ulang swafoto.

```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"
      }
    }
  ]
}
```

## Data yang dikembalikan

Kolom spesifik yang ditampilkan di `source_data` bergantung pada apa yang dikembalikan registri. Contoh yang dihasilkan untuk `arg_renaper` saat ini mendokumentasikan bentuk ternormalisasi berikut:

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

## Harga & SLA

Argentina - kueri verifikasi DNI (RENAPER) hanya ditagih ketika Didit menerima hasil konklusif dari sumber validasi.

* **Harga per panggilan:** \$0.20 USD.
* **Penagihan:** per kueri yang berhasil. Anda tidak dikenai biaya ketika registri tidak dapat dijangkau, ketika kolom wajib tidak ada, atau ketika permintaan ditolak sebelum mencapai sumber.
* **Latensi:** p95 tipikal kurang dari 2 s.
* **Ketersediaan:** 99.9% per kuartal di sisi Didit; ketersediaan sumber hilir bervariasi menurut negara dan dataset.

## Skor kecocokan wajah

`face_match_score` adalah tingkat kemiripan RENAPER antara swafoto dan foto yang tersimpan untuk DNI. Nilainya berupa bilangan bulat dari 0 sampai 100 dalam bentuk string, misalnya `"92"`. Nilai ini bukan probabilitas antara 0 dan 1.

Pemeriksaan mengembalikan `BIOMETRIC_NO_MATCH` ketika RENAPER melaporkan bahwa wajah tidak cocok, atau ketika skornya di bawah 50. Pada skor 50 atau lebih, wajah diterima, lalu nama dan tanggal lahir yang terdaftar dibandingkan dengan data yang Anda kirim.

Foto yang tersimpan bisa berusia beberapa tahun, sehingga pengguna yang asli pun bisa mendapat skor rendah setelah penampilannya berubah banyak. Pertimbangkan untuk mengirim `BIOMETRIC_NO_MATCH` ke peninjauan manual, bukan langsung menolaknya, dengan memakai [tindakan Partial Match / No Match](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings.md).

## Saat RENAPER tidak merespons

Jika RENAPER tidak dapat dihubungi atau merespons dengan kesalahan, hasilnya adalah `REGISTRY_UNAVAILABLE`. Tidak ada data orang tersebut yang diperiksa, dan panggilan tidak ditagih. Permintaan yang sama dapat berhasil jika Anda mencobanya lagi nanti. Lihat [Kode Hasil](https://docs.didit.me/id/core-technology/database-validation/database-validation-outcome-codes.md) untuk cara menanganinya.

## Dokumen yang dibaca alur kerja

Di dalam alur kerja, nomor DNI dan jenis kelamin berasal dari langkah Verifikasi Identitas, yang membaca kartu DNI Argentina dan DNI digital. Penduduk asing memiliki kartu DNI yang sama dan diverifikasi dengan cara yang sama.

DNI versi buku lama (*libreta*) bukan dokumen Verifikasi Identitas yang didukung, sehingga pengguna yang hanya memiliki dokumen tersebut tidak dapat menyelesaikan langkah itu. Anda tetap dapat memeriksa nomor DNI mereka secara langsung dengan `POST /v3/database-validation/`.

## Menggunakan layanan ini dalam alur kerja

Tambahkan layanan ke langkah Validasi Database setelah Verifikasi Identitas. Misalnya, dengan [`POST /v3/workflows/`](https://docs.didit.me/id/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"]}}}
    }
  ]
}
```

Jika ada langkah Deteksi Liveness sebelumnya, RENAPER membandingkan swafoto langsung. Tanpa langkah tersebut, Didit mengirim potret yang tercetak pada dokumen identitas. Cara ini memastikan foto dokumen, tetapi tidak memastikan bahwa orang di depan kamera adalah pemilik dokumen tersebut. ID layanan yang tidak dapat dijalankan oleh alur kerja akan ditolak dengan `400` yang menyebutkan ID tersebut, sehingga langkah tidak pernah disimpan tanpa pemeriksaan yang Anda minta. Lihat [Konfigurasi Fitur Alur Kerja](https://docs.didit.me/id/management-api/workflows/feature-configs.md#validasi-database) untuk setiap pengaturan Validasi Database.

## Lanjut membaca

* [Ikhtisar Validasi Database Argentina](https://docs.didit.me/api-reference/database-validation/argentina.md)
* [Ikhtisar Validasi Database](https://docs.didit.me/id/core-technology/database-validation/overview.md)
* [Kode Hasil](https://docs.didit.me/id/core-technology/database-validation/database-validation-outcome-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.