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

# Argentinien DNI-Datenverifizierung API: Datenabgleich

> Argentinien DNI-Prüfung (RENAPER, ohne Selfie) via Didit: autoritative Datenbankabfrage. Ab $0.20 pro Aufruf, ohne Verträge oder Mindestumsatz.

Überprüft einen argentinischen DNI und das Geschlecht anhand des offiziellen Personenstandsregisters RENAPER, ohne Selfie, und gibt den registrierten Namen, das Geburtsdatum und die Steuernummer zum Abgleich mit den übermittelten Daten zurück. Keine Biometrie: Die Person wird allein anhand der Daten bestätigt. 100% Bevölkerungsabdeckung. Didit stellt diesen Dienst über `POST /v3/database-validation/` bereit, damit Sie die übermittelten Daten mit der maßgeblichen Quelle abgleichen und normalisierte Übereinstimmungsergebnisse erhalten. Eingabeformat: `document_number` akzeptiert die argentinische DNI (7-8 Ziffern, optionales Präfix M/F).

## Abdeckung

* **Abdeckung:** 100%
* **Land:** Argentinien
* **Service-ID:** `arg_renaper_data`
* **Datendomäne:** Identität
* **Kategorie:** NationalIDRegistry

RENAPER ist das Register, das jeden argentinischen DNI ausstellt, daher ist jede DNI-Nummer hinterlegt, auch die DNIs, die an ausländische Einwohner ausgestellt wurden. Es wird kein Gesicht verglichen: Die registrierte Identität wird anhand der DNI, des Geschlechts, des Namens und des Geburtsdatums bestätigt, die Sie senden.

## Eingaben

| Feld | Pflichtfeld | Beispiel |
| - | -: | - |
| `document_number` | Ja | `11111111` |
| `gender` | Ja | `M` |
| `first_name` | Nein | `John` |
| `last_name` | Nein | `Doe` |
| `date_of_birth` | Nein | `1990-01-01` |
| `vendor_data` | Nein | `user-1234` |

* **Pflichteingaben:** `document_number`, `gender`
* **Optionale Eingaben:** `first_name`, `last_name`, `date_of_birth`, `vendor_data`
* **Einwilligung:** Nicht erforderlich
* **Verfügbarkeit im Workflow:** Im Workflow verfügbar
* **Abdeckung:** 100%
* **Preis:** \$0.20 pro erfolgreiche Abfrage

## Body-Parameter

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

ISO-3166-1-Alpha-3-Ländercode für diesen Datenbankdienst.

Beispiel: `ARG`

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

Array mit dieser Service-ID. Die Festlegung des Dienstes beschränkt die Anfrage auf genau diese Datenbank.

Beispiel: `arg_renaper_data`

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

Dokumentnummer, die aus dem Dokument extrahiert oder vom Benutzer angegeben wurde.

Beispiel: `11111111`

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

Geschlechtswert, sofern von der Datenbank erforderlich.

Zulässige Werte: `M` (männlich), `F` (weiblich), `X` (andere oder unbekannt).

Beispiel: `M`

**first\_name** `string`

Zu validierender Vorname.

Beispiel: `John`

**last\_name** `string`

Zu validierender Nachname.

Beispiel: `Doe`

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

Geburtsdatum im Format `YYYY-MM-DD`.

Beispiel: `1990-01-01`

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

Ihre stabile Benutzerreferenz für diese Person, etwa Ihre interne Benutzer-ID. Didit verwendet sie, um eigenständige Prüfungen demselben Endbenutzer zuzuordnen und Störungen durch die Duplikaterkennung zu verringern.

Beispiel: `user-1234`

## Eingaberegeln und Validierungshinweise

* Argentinische DNI (7-8 Ziffern, optionales Präfix M/F)
* `document_number` muss 7 bis 9 Zeichen lang sein.
* `document_number` muss dem Muster `[MFmf]?\d{7,8}` entsprechen.

## So rufen Sie es auf

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

Jeder erfolgreiche Aufruf liefert HTTP `200` zurück. Das Feld **`outcome_code`** zeigt, was tatsächlich geschehen ist, und unterscheidet etwa eine echte biometrische Nichtübereinstimmung (`BIOMETRIC_NO_MATCH`) von einem Selfie, das nicht gelesen werden konnte (`BIOMETRIC_IMAGE_UNUSABLE`). Der angezeigte `status` ist der Standardstatus der Funktion; Ihre konfigurierten [Aktionen für Teilübereinstimmung / Keine Übereinstimmung](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings.md) können ihn überschreiben.

**`MATCH`**: Das Register hat die Identität bestätigt, und jedes geprüfte Feld stimmte überein.

```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`**: Die Ausweisnummer wurde gefunden, aber ein oder mehrere persönliche Felder (meist Name oder Geburtsdatum) stimmten nicht vollständig überein.

```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`**: Das Register hat für die übermittelten Daten keinen Treffer zurückgegeben.

```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`**: Das Register konnte nicht feststellen, ob die Person mit den Daten übereinstimmt. Das Ergebnis ist tatsächlich unsicher, die Person kann im Register enthalten sein oder auch nicht. Dies ist NICHT eine Nichtübereinstimmung und NICHT ein technisches Problem mit dem Bild. Für kein Feld wird eine Aussage getroffen, daher ist match\_type null, und die Prüfung wird an die manuelle Prüfung gesendet.

```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`**: Die übermittelte Dokumentnummer entspricht keinem Datensatz im Register.

```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`**: Die Person ist minderjährig; das Register blockiert die Abfrage aus Datenschutzgründen.

```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`**: Die Identität stimmte überein, das Register kennzeichnet die Person jedoch als verstorben.

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

## Zurückgegebene Daten

Welche Felder genau in `source_data` erscheinen, hängt davon ab, was das Register zurückgibt. Das generierte Beispiel für `arg_renaper_data` dokumentiert derzeit diese normalisierte Struktur:

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

## Preise und SLAs

Argentinien - DNI-Datenverifizierung (RENAPER, ohne Selfie): Abfragen werden nur berechnet, wenn Didit von der Validierungsquelle ein eindeutiges Ergebnis erhält.

* **Preis pro Aufruf:** \$0.20 USD.
* **Abrechnung:** pro erfolgreiche Abfrage. Ihnen wird nichts berechnet, wenn das Register nicht erreichbar ist, wenn Pflichtfelder fehlen oder wenn die Anfrage abgelehnt wird, bevor sie die Quelle erreicht.
* **Latenz:** typischer p95 \< 2 s.
* **Verfügbarkeit:** 99.9% pro Quartal auf Seiten von Didit. Die Verfügbarkeit der nachgelagerten Quelle variiert je nach Land und Datensatz.

## Dokumente, die ein Workflow liest

Innerhalb eines Workflows stammen die DNI-Nummer und das Geschlecht aus dem Schritt Ausweisverifizierung, der die argentinische DNI-Karte und den digitalen DNI liest. Ausländische Einwohner besitzen dieselbe DNI-Karte und werden auf dieselbe Weise verifiziert.

Das alte DNI-Heft (*libreta*) wird von der Ausweisverifizierung nicht unterstützt. Ein Benutzer, der nur ein solches Heft besitzt, kann diesen Schritt deshalb nicht abschließen. Die DNI-Nummer können Sie trotzdem direkt mit `POST /v3/database-validation/` prüfen.

## In einem Workflow verwenden

Fügen Sie den Dienst nach der Ausweisverifizierung einem Datenbankvalidierungsschritt hinzu. Ein Beispiel mit [`POST /v3/workflows/`](https://docs.didit.me/de/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"]}}}
    }
  ]
}
```

Eine Dienst-ID, die der Workflow nicht ausführen kann, wird mit einem `400`-Fehler abgelehnt, der diese ID nennt. So wird der Schritt nie ohne die von Ihnen angeforderte Prüfung gespeichert. Alle Einstellungen der Datenbankvalidierung finden Sie unter [Funktionskonfigurationen für Workflows](https://docs.didit.me/de/management-api/workflows/feature-configs.md#datenbankvalidierung).

## Weiterlesen

* [Übersicht zur Datenbankvalidierung in Argentinien](https://docs.didit.me/api-reference/database-validation/argentina.md)
* [Übersicht zur Datenbankvalidierung](https://docs.didit.me/de/core-technology/database-validation/overview.md)
* [Ergebniscodes](https://docs.didit.me/de/core-technology/database-validation/database-validation-outcome-codes.md)


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