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

# Südafrika Führerscheinverifizierung API

> Südafrika-Führerscheinverifizierung mit Didit: Abfrage einer offiziellen Datenbank ab $0.80 pro Aufruf, ohne Vertrag und ohne Mindestabnahme.

Überprüft einen südafrikanischen Führerschein anhand des Registers von NATIS / Department of Transport. Didit stellt diesen Service über `POST /v3/database-validation/` bereit, damit Sie die übermittelten Daten mit der maßgeblichen Quelle abgleichen und normalisierte Übereinstimmungsergebnisse erhalten.

## Abdeckung

* **Abdeckung:** —
* **Land:** Südafrika
* **Service-ID:** `zaf_drivers_license`
* **Datenbereich:** Identität
* **Kategorie:** DriverLicence

## Eingaben

| Feld | Pflichtfeld | Beispiel |
| - | -: | - |
| `national_id` | Ja | `SAMPLE-NID-12345` |
| `last_name` | Ja | `Doe` |
| `initials` | Ja | `JD` |
| `licence_number` | Ja | `LIC123456` |
| `first_name` | Nein | `John` |
| `date_of_birth` | Nein | `1990-01-01` |
| `vendor_data` | Nein | `user-1234` |

* **Pflichteingaben:** `national_id`, `last_name`, `initials`, `licence_number`
* **Optionale Eingaben:** `first_name`, `date_of_birth`, `vendor_data`
* **Einwilligung:** Nicht erforderlich
* **Verfügbarkeit im Workflow:** Im Workflow mit Feldzuordnung verfügbar
* **Abdeckung:** —
* **Preis:** \$0.80 pro erfolgreicher Abfrage

Im Workflow sind `initials` und `licence_number` nicht auf einem Ausweisdokument aufgedruckt, daher erzeugt kein Schritt diese Werte allein. Erfassen Sie sie über eine Antwort aus einem Fragebogen, ein Extraktionsfeld von Document AI oder einen Wert, den Sie beim Erstellen der Sitzung übermitteln, und ordnen Sie jeden davon im Schritt Datenbankvalidierung zu. Solange sie nicht zugeordnet sind, zeigt der Workflow-Editor diesen Service als deaktiviert an und nennt die fehlende Eingabe. Zur Laufzeit wird die Prüfung bei einer fehlenden Eingabe übersprungen, bevor eine Abfrage erfolgt. Ihnen wird also nie eine Datenbankabfrage berechnet, die nicht ausgeführt werden konnte.

## Body-Parameter

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

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

Beispiel: `ZAF`

**services** `string` *required* (default: zaf\_drivers\_license)

Array mit dieser Service-ID. Durch das Festlegen des Services bleibt die Anfrage auf genau diese Datenbank beschränkt.

Beispiel: `zaf_drivers_license`

**national\_id** `string` *required* (default: SAMPLE-NID-12345)

Nationale Identitätsnummer für diesen Service.

Beispiel: `SAMPLE-NID-12345`

**last\_name** `string` *required* (default: Doe)

Zu validierender Familienname.

Beispiel: `Doe`

**initials** `string` *required* (default: JD)

Wert für `initials`, den dieser Datenbankservice voraussetzt.

Beispiel: `JD`

**licence\_number** `string` *required* (default: LIC123456)

Wert für `licence_number`, den dieser Datenbankservice voraussetzt.

Beispiel: `LIC123456`

**first\_name** `string`

Zu validierender Vorname.

Beispiel: `John`

**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, zum Beispiel Ihre interne Benutzer-ID. Didit verwendet sie, um eigenständige Prüfungen demselben Endbenutzer zuzuordnen und unnötige Meldungen der Duplikaterkennung zu reduzieren.

Beispiel: `user-1234`

## Eingaberegeln und Validierungshinweise

* Senden Sie die oben aufgeführten Felder genau so, wie sie vom Benutzer oder aus dem Dokument erfasst wurden.
* Didit validiert Pflichtfelder, bevor die Datenbank abgefragt wird. Anfragen, die vor der Abfrage der Quelle abgelehnt werden, werden nicht berechnet.

## So rufen Sie sie 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=ZAF" \
  -F "services=zaf_drivers_license" \
  -F "vendor_data=user-1234" \
  -F "national_id=SAMPLE-NID-12345" \
  -F "last_name=Doe" \
  -F "initials=JD" \
  -F "licence_number=LIC123456"
```

Jeder erfolgreiche Aufruf gibt HTTP `200` zurück. Das Feld **`outcome_code`** zeigt, was tatsächlich passiert ist. Es unterscheidet zum Beispiel 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 einen Führerscheindatensatz zu dieser Führerscheinnummer zurückgegeben, und die übermittelten Angaben stimmen damit überein.

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "ZAF",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "expiration_date": "2030-05-31",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "vehicle_codes": "EB"
      },
      "validation": {
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`** – Das Register hat nach dem Führerschein gesucht und ihn als nicht gültig gemeldet. Ihre Aktion bei Nichtübereinstimmung wird angewendet.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "ZAF",
  "match_type": null,
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "licence_valid": false
      },
      "validation": {}
    }
  ]
}
```

**`INCONCLUSIVE`** – Das Register hat die Abfrage angenommen, aber keinen Führerscheindatensatz zurückgegeben, mit dem die übermittelten Angaben verglichen werden könnten. Daher ist nichts am Führerschein bestätigt, und die Prüfung wird zur Überprüfung weitergeleitet, auch dann, wenn ein anderer Service in derselben Anfrage die Person bestätigt hat.

```json 200 OK — INCONCLUSIVE theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ZAF",
  "match_type": null,
  "validations": [
    {
      "outcome_code": "INCONCLUSIVE",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "licence_valid": true
      },
      "validation": {}
    }
  ]
}
```

## Zurückgegebene Daten

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

* `expiration_date`
* `first_name`
* `identification_number`
* `last_name`
* `licence_valid`
* `vehicle_codes`

## Preise und SLAs

Südafrika - Führerscheinverifizierung: Abfragen werden nur berechnet, wenn Didit von der Validierungsquelle ein eindeutiges Ergebnis erhält.

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

## Was die einzelnen Ergebnisse bedeuten

Diese Prüfung fragt das Fahrerlaubnisregister mit der von Ihnen übermittelten Führerscheinnummer ab, zusammen mit der südafrikanischen Ausweisnummer, dem Nachnamen und den Initialen. Das Ergebnis hängt davon ab, was das Register zurückgibt:

* **`MATCH`**: Das Register hat einen Führerscheindatensatz zu dieser Führerscheinnummer zurückgegeben, und die übermittelten Angaben stimmen damit überein. `source_data` enthält den Datensatz: `identification_number` (die Führerscheinnummer), `first_name` und `last_name`, `vehicle_codes` (die Führerscheinklassen, z. B. `EB`, `C1`) und `expiration_date` (das Ablaufdatum der Führerscheinkarte).
* **`INCONCLUSIVE`**: Das Register hat die Abfrage angenommen, aber keinen Führerscheindatensatz zurückgegeben, sodass es nichts gab, womit die übermittelten Angaben hätten verglichen werden können. `source_data.licence_valid` ist `true`, `validation` ist leer und `match_type` ist `null`. Über den Führerschein ist nichts bestätigt, daher wird die Prüfung zur manuellen Prüfung weitergeleitet. Das gilt auch dann, wenn ein anderer Dienst in derselben Anfrage, etwa die Prüfung der nationalen Ausweisnummer, die Person zugeordnet hat, denn das bestätigt die Person und nicht den Führerschein.
* **`NO_MATCH`**: Das Register hat nach dem Führerschein gesucht und ihn als ungültig gemeldet (`source_data.licence_valid: false`). Ihre Aktion bei Nichtübereinstimmung gilt.
* **`REGISTRY_ERROR`**: Das Register hat die Suche nicht durchgeführt, daher wurde über den Führerschein nichts festgestellt. Die Prüfung wird zur manuellen Prüfung weitergeleitet und nicht berechnet.

**Was niemals zurückgegeben wird.** Es gibt kein Feld für Sperrung, Annullierung, Entzug, Vermerke oder Punkte wegen Verkehrsverstößen. Deshalb darf selbst ein `MATCH` Ihren Nutzern gegenüber nicht als „der Führerschein ist gültig und ohne Beanstandungen“ formuliert werden. `expiration_date` ist, sofern das Register es zurückgibt, die einzige Information, die dem Status nahekommt. Vergleichen Sie sie mit dem Datum der Sitzung, um zu entscheiden, ob der Führerschein abgelaufen ist, und behandeln Sie dies als eigene Regel und nicht als Teil des Abgleichergebnisses.

Wenn Sie dies in Ihren Allgemeinen Geschäftsbedingungen darlegen müssen, formulieren Sie es so: Didit prüft die Führerscheindaten gegen das nationale Register und, wenn das Register einen Führerscheindatensatz zurückgibt, dessen Klassen und Ablaufdatum. Didit bestätigt damit nicht, dass die Inhaberin oder der Inhaber heute zum Führen eines Kraftfahrzeugs berechtigt ist.

## Weiterlesen

* [Übersicht über die Datenbankvalidierung in Südafrika](https://docs.didit.me/api-reference/database-validation/south-africa.md)
* [Übersicht über die 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.