> ## 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 데이터 인증 API: 데이터 일치

> Didit의 아르헨티나 DNI 데이터 인증(RENAPER, 셀피 없음): 공식 아르헨티나 데이터베이스 조회. 호출당 $0.20부터, 계약 및 최소 사용량 없음.

공식 RENAPER 민사 등록부를 기준으로 아르헨티나 DNI와 성별을 셀피 없이 검증하고, 등록된 성명, 생년월일, 납세자 번호를 제출된 데이터와 비교할 수 있도록 반환합니다. 생체 인식은 사용하지 않으며, 본인 확인은 데이터만으로 이루어집니다. 인구의 100%를 포괄합니다. Didit은 이 서비스를 `POST /v3/database-validation/`을 통해 제공하므로, 제출된 데이터를 공신력 있는 원본 출처와 대조하고 정규화된 일치 결과를 받을 수 있습니다. 입력 형식: `document_number`에는 아르헨티나 DNI(7\~8자리, 선택적 M/F 접두사)를 입력합니다.

## 적용 범위

* **적용 범위:** 100%
* **국가:** 아르헨티나
* **서비스 ID:** `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)

이 서비스 ID를 포함하는 배열입니다. 서비스를 고정하면 요청 범위가 정확히 이 데이터베이스로 제한됩니다.

예시: `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)

이 사용자를 나타내는 안정적인 사용자 참조값입니다(예: 내부 사용자 ID). 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/ko/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`

## 요금 및 SLA

아르헨티나 - DNI 데이터 검증(RENAPER, 셀피 없음) 조회는 Didit이 검증 출처로부터 확정적인 결과를 받은 경우에만 과금됩니다.

* **호출당 가격:** \$0.20 USD
* **과금:** 성공한 조회 건당 과금됩니다. 등록부에 연결할 수 없는 경우, 필수 필드가 누락된 경우, 또는 요청이 출처에 도달하기 전에 거부된 경우에는 과금되지 않습니다.
* **지연 시간:** 일반적인 p95 \< 2초
* **가용성:** Didit 측 분기당 99.9%입니다. 하위 출처의 가용성은 국가와 데이터셋에 따라 다릅니다.

## Documentos que lee un flujo

Dentro de un flujo, el número de DNI y el sexo provienen del paso de verificación de identidad, que lee el DNI argentino en formato tarjeta y el DNI digital. Los residentes extranjeros tienen la misma tarjeta DNI y se verifican de la misma manera.

El DNI en formato libreta (*libreta*) no es un documento admitido en la verificación de identidad, por lo que un usuario que solo tenga ese documento no puede completar ese paso. Aun así, puedes comprobar su número de DNI directamente con `POST /v3/database-validation/`.

## Usar el servicio en un flujo

Añade el servicio a un paso de validación de base de datos después de la verificación de identidad. Por ejemplo, con [`POST /v3/workflows/`](https://docs.didit.me/ko/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"]}}}
    }
  ]
}
```

Un ID de servicio que el flujo no puede ejecutar se rechaza con un `400` que incluye el nombre del ID de servicio, de modo que el paso nunca se guarda sin la comprobación que solicitaste. Consulta [Configuraciones de funciones del flujo](https://docs.didit.me/ko/management-api/workflows/feature-configs.md#database-validation) para ver todos los ajustes de validación de base de datos.

## Seguir leyendo

* [Resumen de validación de base de datos de Argentina](https://docs.didit.me/api-reference/database-validation/argentina.md)
* [Resumen de validación de base de datos](https://docs.didit.me/ko/core-technology/database-validation/overview.md)
* [Códigos de resultado](https://docs.didit.me/ko/core-technology/database-validation/database-validation-outcome-codes.md)


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