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

# Datenbankvalidierung: Ergebniscodes – Referenz

> Alle Ergebniscodes der Didit-Datenbankvalidierung: Match, kein Match, verstorben, minderjährig oder nicht gefunden. Ab $0.05/check.

Die [Datenbankvalidierung](https://docs.didit.me/de/core-technology/database-validation/overview.md)-API von Didit fragt das maßgebliche Personenstandsregister des jeweiligen Landes ab – RENAPER (Argentinien, \$0.20/Prüfung mit biometrischem Gesichtsabgleich), Receita Federal (Brasilien, \$0.20), Tribunal Electoral SIB (Panama, \$0.75 biometrisch), Junta Central Electoral (Dominikanische Republik, \$0.05) und 14 weitere –, abgerechnet pro erfolgreicher Abfrage, ohne monatliche Mindestbeträge.

Wenn Sie eine Datenbankvalidierung durchführen, erhalten Sie ein zweistufiges Ergebnis:

1. Einen **Standard-Ergebniscode**, der in allen unterstützten Ländern identisch funktioniert, sodass Sie eine einheitliche Verarbeitungslogik für alle Länder implementieren können.
2. Einen optionalen **länderspezifischen Detailcode**, der Ihnen genau mitteilt, welche Bedingung das behördliche Register zurückgegeben hat – nützlich für den Support, Analysen und die Entscheidung, ob der Benutzer zu einem Wiederholungsversuch aufgefordert werden soll.

Diese Seite listet alle möglichen Werte auf und beschreibt, wie Sie darauf reagieren sollten.

## Standard-Ergebniscodes

Diese Codes sind in allen Ländern identisch. Bauen Sie Ihre Prüf-, Ablehnungs- und Wiederholungslogik auf diesen Codes auf – nicht auf den länderspezifischen Detailcodes.

| Ergebniscode | Bedeutung | Wiederholbar? | Empfohlene Behandlung |
| :- | :- | :-: | :- |
| `MATCH` | Das Register hat die Identität bestätigt und jedes überprüfte Feld stimmte überein. | — | Genehmigen. |
| `PARTIAL_MATCH` | Das Register hat einen Datensatz gefunden, aber eines oder mehrere der vom Dienst verglichenen Felder stimmten nicht vollständig überein (meist Name oder Geburtsdatum). Welche Felder über das Ergebnis entscheiden, variiert je nach Dienst – siehe [Abgleichsmethoden](https://docs.didit.me/de/core-technology/database-validation/database-validation-matching-methods.md). | — | Zur Prüfung weiterleiten oder eine [Partial Match Action](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings.md) zur automatischen Ablehnung konfigurieren. |
| `NO_MATCH` | Das Register hat keine Übereinstimmung für die übermittelten Daten zurückgegeben. | Nein | Ablehnen oder je nach Ihren Richtlinien zur Prüfung weiterleiten. |
| `DOCUMENT_SUPERSEDED` | Das Register hat die Identität der Person bestätigt, aber die vorgelegte **Ausgabe des Dokuments** entspricht nicht der im Register geführten – es wurde inzwischen eine neuere Ausgabe ausgestellt, sodass das vorliegende Dokument veraltet ist. Der DNI-*ejemplar*-Buchstabe in Argentinien ist hierfür der klassische Fall. Zu unterscheiden von `NO_MATCH` (die Person stimmte nicht überein) und `DOCUMENT_NOT_FOUND` (überhaupt kein Datensatz vorhanden): Lediglich das physische Dokument ist veraltet. | Nein | Zur Prüfung weiterleiten und die aktuelle Ausgabe des Dokuments anfordern. Dies greift auf Ihre **No Match Action** zurück und löst [`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings) aus. |
| `DOCUMENT_NOT_FOUND` | Die Ausweisnummer ist syntaktisch gültig, existiert jedoch nicht im behördlichen Register. | Nein | Ablehnen. |
| `INVALID_DOCUMENT_FORMAT` | Die übermittelte Ausweisnummer ist fehlerhaft formatiert (falsche Länge, nicht-numerisch, ungültige Prüfsumme). | Nein | Den Benutzer auffordern, seine Dokumentennummer erneut einzugeben. |
| `INVALID_INPUT` | Ein erforderliches Eingabefeld (Selfie, Geschlecht, Geburtsdatum usw.) fehlte oder war fehlerhaft formatiert. | Nein | Den Benutzer auffordern, das fehlende Feld erneut zu übermitteln. Die Sitzung wird automatisch erneut verarbeitet, sobald die Daten bereitgestellt wurden – siehe [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings). |
| `MINOR_BLOCKED` | Das Register hat den Datensatz zurückgehalten, da die Person minderjährig ist. Gilt in Rechtsordnungen mit Datenschutzgesetzen für Minderjährige (brasilianische LGPD, Argentinien). | Nein | Ablehnen. Beachten Sie die lokalen rechtlichen Rahmenbedingungen – keinen Wiederholungsversuch starten. |
| `DECEASED` | Das Register meldet, dass die Person verstorben ist. | Nein | Ablehnen. |
| `BIOMETRIC_NO_MATCH` | Bei biometrischen Validierungen (Argentinien, Panama) lag der Wert für den Gesichtsabgleich unter dem Akzeptanz-Schwellenwert. | Nein | Ablehnen oder zur Prüfung weiterleiten. |
| `BIOMETRIC_IMAGE_UNUSABLE` | Das Selfie konnte nicht verarbeitet werden – das Bild war leer, enthielt kein Gesicht, wies eine geringe Qualität auf oder das Register konnte es nicht lesen. | Ja | Den Benutzer auffordern, das Selfie erneut aufzunehmen. |
| `INCONCLUSIVE` | Das Register konnte nicht ermitteln, ob die Person mit dem Datensatz übereinstimmt – das Ergebnis ist tatsächlich ungewiss (die Person könnte im Register vorhanden sein oder nicht). Zu unterscheiden von `NO_MATCH` (eindeutig nicht vorhanden) und von `BIOMETRIC_IMAGE_UNUSABLE` (ein technisches Bildproblem): Es wurde weder das eine noch das andere bestätigt, daher ist `match_type` gleich `null`. | Eventuell | Zur Prüfung weiterleiten. Ein Wiederholungsversuch mit einem qualitativ besseren Selfie oder zusätzlichen Daten kann das Problem möglicherweise lösen. |
| `REGISTRY_UNAVAILABLE` | Das behördliche Register ist vorübergehend nicht erreichbar (Timeout, Verbindungsfehler, Upstream-5xx). | Ja | Nach einer kurzen Wartezeit wiederholen. Didit führt bei vorübergehenden Fehlern bereits automatisch Wiederholungsversuche durch; wenn dies im endgültigen Bericht erscheint, wurden alle Wiederholungsversuche ausgeschöpft. Wenn ein Register wiederholt fehlschlägt, wird Ihre Organisation per E-Mail benachrichtigt, sobald die Störung länger anhält, und erneut, sobald der Zugriff wiederhergestellt ist – siehe [Verfügbarkeitsbenachrichtigungen](https://docs.didit.me/de/core-technology/database-validation/overview.md#benachrichtigungen-zur-verfügbarkeit). |
| `REGISTRY_ERROR` | Das Register hat einen unerwarteten Fehler zurückgegeben, der in keine der oben genannten Kategorien passt. | Eventuell | An den Support mit dem Detailcode eskalieren. |

> [!NOTE]
>
> Der `outcome_code` befindet sich in jedem Eintrag des `validations`-Arrays im Validierungsbericht. Unter [Datenbankvalidierungsbericht](https://docs.didit.me/de/core-technology/database-validation/database-validation-report.md) sehen Sie, wo er sich in der Antwort befindet.

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE` und `REGISTRY_ERROR` bedeuten, dass das Quellregister die Anfrage nie beantwortet hat, sodass diese beiden Ergebnisse **nicht abgerechnet werden** – siehe [Preise](https://docs.didit.me/de/core-technology/database-validation/overview.md). Jeder andere Ergebniscode ist eine echte, kostenpflichtige Antwort des Registers, selbst wenn nichts bestätigt wird (`INCONCLUSIVE`, `BIOMETRIC_IMAGE_UNUSABLE`) oder wenn Ihre Eingabe abgelehnt wird (`INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT` – als Ergebniscodes bedeuten diese, dass das Register selbst die Daten nach dem Absenden der Anfrage abgelehnt hat).
>
> Eingaben, die ein Register gar nicht erst erreichen, erzeugen überhaupt keinen Ergebniscode: `POST /v3/database-validation/` antwortet mit `400`, wenn ein Wert die Formatregeln des Landes nicht erfüllt, und ein Workflow-Dienst mit fehlenden oder fehlerhaften Feldern wird mit [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings) übersprungen. Beides wird nicht abgerechnet. Eine vollständige Aufschlüsselung finden Sie auf der [Preisseite für die Datenbankvalidierung](https://docs.didit.me/de/getting-started/database-validation-pricing.md).

## Länderspezifische Detail-Codes

Der Detail-Code wird als `outcome_detail` neben `outcome_code` zurückgegeben. Nur die unten aufgeführten Länder generieren Detail-Codes, die über das Standard-Ergebnis hinausgehen – jedes andere unterstützte Land gibt ausschließlich die Standard-Codes zurück.

### Argentinien (RENAPER)

Argentinien verwendet eine biometrische 1×1-Validierung gegen das nationale Identitätsregister RENAPER, bei der die DNI, ein Selfie und das angegebene Geschlecht kombiniert werden.

| Detail-Code | Standard-Ergebnis | Bedeutung |
| :- | :- | :- |
| `300` | `INVALID_DOCUMENT_FORMAT` | Das DNI-Feld muss eine 7–8-stellige Nummer sein. |
| `301` | `DOCUMENT_NOT_FOUND` | Die übermittelte DNI stimmt mit keinem gültigen Datensatz überein. |
| `303` | `INVALID_INPUT` | Das Selfie-Feld war leer. |
| `304` | `INVALID_INPUT` | Das Geschlechtsfeld war leer oder entsprach nicht `M`, `F` oder `X`. |
| `305` | `NO_MATCH` | Die Kombination aus DNI und Geschlecht wurde nicht gefunden. |
| `306` | `REGISTRY_UNAVAILABLE` | Die Abfrage kann derzeit nicht durchgeführt werden. |
| `307` | `REGISTRY_UNAVAILABLE` | Fehler bei der Verbindung zum öffentlichen Identitätsvalidierungssystem. |
| `311` | `REGISTRY_ERROR` | Die Integration hat keinen Zugriff auf dieses Produkt. |
| `313` | `MINOR_BLOCKED` | Der Datensatz gehört zu einer minderjährigen Person. |
| `400` | `REGISTRY_UNAVAILABLE` | Verbindungsfehler. |
| `401` | `NO_MATCH` | Keine Ergebnisse für die angegebenen Daten gefunden. |
| `405` | `BIOMETRIC_IMAGE_UNUSABLE` | Konflikt mit dem Bild; es kann nicht verarbeitet werden. |
| `406` | `BIOMETRIC_IMAGE_UNUSABLE` | Fehler bei der Bildverarbeitung. |
| `NO.HIT` | `BIOMETRIC_NO_MATCH` | Der Übereinstimmungswert beim Gesichtsabgleich lag unter dem Akzeptanz-Schwellenwert (\< 50). |
| `INTERNAL_ERROR` | `REGISTRY_UNAVAILABLE` | Timeout überschritten. |

### Brasilien (Receita Federal – Consulta CPF)

Brasilien validiert die CPF gegen den offiziellen CPF-Dienst der Receita Federal, mit expliziter Handhabung für Minderjährige gemäß LGPD (Lei Geral de Proteção de Dados) und dem Digitalstatut für Kinder und Jugendliche.

| Detail-Code | Standard-Ergebnis | Bedeutung |
| :- | :- | :- |
| `200` | `MATCH` | CPF gefunden und Daten erfolgreich zurückgegeben. |
| `206` | `MATCH` | CPF gefunden, aber einige nicht essenzielle Felder wurden nicht zurückgegeben. |
| `400` | `INVALID_DOCUMENT_FORMAT` | CPF-Nummer ist ungültig. |
| `404` | `DOCUMENT_NOT_FOUND` | Es existiert keine CPF mit der übermittelten Nummer. |
| `422` | `MINOR_BLOCKED` | Daten für Minderjährige unter 18 Jahren werden gemäß LGPD (Gesetz 13.709/2018) zurückgehalten. Die Antwort enthält `minor_under_18: true`. |
| `451` | `MINOR_BLOCKED` | Daten für Minderjährige unter 16 Jahren werden gemäß LGPD und dem Digitalstatut für Kinder und Jugendliche (Gesetz 15.211/2025) zurückgehalten. Die Antwort enthält `minor_under_18: true` und `minor_under_16: true`. |
| `500` | `REGISTRY_UNAVAILABLE` | Fehler des vorgelagerten Servers. |
| `504` | `REGISTRY_UNAVAILABLE` | Gateway-Timeout – die Anfrage hat die Consulta CPF-API nicht erreicht. |

> [!NOTE]
>
> Bei `MINOR_BLOCKED`-Ergebnissen in Brasilien gibt `source_data` dennoch die Flags `lgpd_minor`, `minor_under_18` und `minor_under_16` zurück, sodass Sie altersgerechte Abläufe ohne erneuten Versuch anwenden können.

### Panama (SIB – Tribunal Electoral)

Panama verwendet eine biometrische Validierung gegen das vom Tribunal Electoral betriebene SIB-Register (Servicio de Identificación Biométrica). Tritt ein technischer SIB-Fehler auf, fällt die Sitzung automatisch auf eine 1×1-Abfrage zurück.

| Detail-Code | Standard-Ergebnis | Bedeutung |
| :- | :- | :- |
| `601` | `REGISTRY_UNAVAILABLE` | Operator existiert nicht in der Datenbank. |
| `602` | `MINOR_BLOCKED` | Bürger ist unter 12 Jahre alt. |
| `603` | `DECEASED` | Bürger ist verstorben. |
| `604` | `NO_MATCH` | Bürger hat eine ungültige Registrierung. |
| `605` | `NO_MATCH` | Bürger nicht erkannt. |
| `606` | `INVALID_INPUT` | Cédula-Feld ist leer. |
| `607` | `DOCUMENT_NOT_FOUND` | Bürger nicht gefunden. |
| `608` | `REGISTRY_ERROR` | Kein SIB-Zugriff für diesen Mandanten. |
| `610` | `BIOMETRIC_IMAGE_UNUSABLE` | Allgemeiner Gesichtsvalidierungsfehler. |
| `611` | `BIOMETRIC_IMAGE_UNUSABLE` | Bild zum Abgleich wurde nicht übermittelt. |
| `612` | `BIOMETRIC_IMAGE_UNUSABLE` | Das Bild enthält keine Daten. |
| `613` | `BIOMETRIC_IMAGE_UNUSABLE` | Ungültiges Bildformat. |
| `614` | `BIOMETRIC_IMAGE_UNUSABLE` | Kein Gesicht im Bild erkannt. |
| `615` | `BIOMETRIC_NO_MATCH` | Ähnlichkeits-Schwellenwert nicht erreicht. |

### Weitere unterstützte Länder

Die folgenden Länder geben nur die Standard-Ergebnis-Codes zurück – es gibt keine länderspezifischen Detail-Codes zu verarbeiten.

* **Bolivien, Kolumbien, Costa Rica, El Salvador, Guatemala, Honduras, Paraguay, Spanien, Uruguay, Venezuela** – 1×1-Abfrage beim entsprechenden Melderegister. Ergebnisse werden direkt auf `MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT` oder `REGISTRY_UNAVAILABLE` abgebildet.
* **Chile (Registro Civil)** – RUT-Abfrage. Wird auf die Standard-Ergebnisse abgebildet, zuzüglich `MINOR_BLOCKED`, wenn das Register einen minderjährigen Datensatz kennzeichnet.
* **Dominikanische Republik (JCE)** – Cédula-Abfrage, die einen booleschen Gültigkeitswert zurückgibt; wird auf `MATCH` oder `NO_MATCH` abgebildet.
* **Ecuador (Registro Civil)** – Cédula-Abfrage.
* **Mexiko (RENAPO, plus INE für 2×2)** – CURP-Abfrage über RENAPO. Wenn `validation_type` auf `two_by_two` gesetzt ist, wird ein zusätzlicher INE-Abgleich durchgeführt; beide fließen in dieselben Standard-Ergebnis-Codes ein.
* **Peru (RENIEC)** – DNI-Abfrage.

## Vorgehensweise zur Verarbeitung

Der einfachste robuste Handler sieht wie folgt aus:

```typescript theme={null}
switch (result.outcome_code) {
  case "MATCH":
    return approve();
  case "PARTIAL_MATCH":
    return review();
  case "NO_MATCH":
  case "DOCUMENT_NOT_FOUND":
  case "DECEASED":
  case "MINOR_BLOCKED":
  case "BIOMETRIC_NO_MATCH":
    return decline();
  case "INVALID_DOCUMENT_FORMAT":
  case "INVALID_INPUT":
    return askUserToFixInput(result.outcome_detail);
  case "BIOMETRIC_IMAGE_UNUSABLE":
    return askUserToRetakeSelfie();
  case "REGISTRY_UNAVAILABLE":
  case "REGISTRY_ERROR":
    return review();  // Didit already retried; a human can decide.
  default:
    return review();
}
```

> [!NOTE]
>
> Sie müssen in Ihrer Geschäftslogik keine Verzweigung für `outcome_detail` einrichten – verwenden Sie ihn für Analysen, Debugging und Support-Tickets. Für den standardmäßigen `outcome_code` ist garantiert, dass er über Länder hinweg und langfristig stabil bleibt.

## Siehe auch

* [Warnungen zur Datenbankvalidierung](https://docs.didit.me/de/core-technology/database-validation/database-validation-warnings.md) – die Warnungs-Tags auf Sitzungsebene (`COULD_NOT_PERFORM_DATABASE_VALIDATION`, `DATABASE_VALIDATION_PARTIAL_MATCH`, `DATABASE_VALIDATION_NO_MATCH`) und wie Sie Prüf- und Ablehnungsaktionen in Ihrer Anwendung konfigurieren.
* [Bericht zur Datenbankvalidierung](https://docs.didit.me/de/core-technology/database-validation/database-validation-report.md) – die vollständige Antwortstruktur und an welcher Stelle `outcome_code` / `outcome_detail` erscheinen.
* [Unterstützte Länder der Datenbankvalidierung](https://docs.didit.me/de/core-technology/database-validation/database-validation-supported-countries.md) – die vollständige Liste der Länder und Abgleichsmethoden.


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