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

# China-Ausweisverifizierung API: Identitätsabfrage

> China-Ausweisnummer prüfen: maßgebliche Datenbankvalidierung über Didit. Pay-per-Call ab $0.50, keine Verträge, keine Mindestabnahme.

Überprüft die Eingabedaten anhand des offiziellen Datendienstes in China. 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 können. Eingabeformat: `date_of_birth` erwartet das Geburtsdatum, das mit dem Geburtsdatum übereinstimmen muss, das in der chinesischen Ausweisnummer kodiert ist (Stellen 7 bis 14 einer 18-stelligen Nummer, Stellen 7 bis 12 einer älteren 15-stelligen Nummer).

## Abdeckung

* **Abdeckung:** \~ 100%
* **Land:** China
* **Service-ID:** `chn_national_id`
* **Datenbereich:** Identität
* **Kategorie:** NationalIDRegistry

## Eingaben

| Feld | Pflichtfeld | Beispiel |
| - | -: | - |
| `full_name` | Ja | `王新伟` |
| `date_of_birth` | Ja | `1990-01-01` |
| `national_id` | Ja | `11010519900101003X` |
| `vendor_data` | Nein | `user-1234` |

* **Pflichteingaben:** `full_name`, `date_of_birth`, `national_id`
* **Optionale Eingaben:** `vendor_data`
* **Einwilligung:** Erforderlich
* **Verfügbarkeit im Workflow:** Im Workflow verfügbar
* **Abdeckung:** \~ 100%
* **Preis:** \$0.50 pro erfolgreicher Abfrage

Nicht jedes Dokument, das dieser Dienst akzeptiert, enthält die Kennung, über die abgefragt wird. Wenn die Kennung nicht aus dem Dokument extrahiert wird, wird die Prüfung als **nicht zutreffend** erfasst: Es wird keine Datenbank abgefragt und Ihnen wird nichts berechnet. In manchen Ländern betrifft das einen großen Anteil der realen Nutzer. Um sie abzudecken, erfassen Sie die Kennung zusätzlich aus einer Fragebogenantwort, einem Extraktionsfeld von Document AI oder einem Wert, den Sie beim Erstellen der Sitzung übermitteln, und ordnen Sie sie dem Schritt Datenbankvalidierung zu.

## Body-Parameter

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

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

Beispiel: `CHN`

**services** `string` *required* (default: chn\_national\_id)

Array, das diese Service-ID enthält. Das Festlegen des Service hält die Anfrage auf genau diese Datenbank beschränkt.

Beispiel: `chn_national_id`

**consent** `boolean` *required* (default: true)

Ausdrückliche Einwilligung des Endbenutzers für diesen Service.

Beispiel: `true`

**full\_name** `string` *required* (default: 王新伟)

Vollständiger amtlicher Name, der validiert werden soll.

Beispiel: `王新伟`

**date\_of\_birth** `string` *required* (default: 1990-01-01)

Geburtsdatum im Format `YYYY-MM-DD`.

Beispiel: `1990-01-01`

**national\_id** `string` *required* (default: 11010519900101003X)

Nationale Identitätsnummer für diesen Service.

Beispiel: `11010519900101003X`

**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 das Rauschen bei der Dublettenerkennung zu verringern.

Beispiel: `user-1234`

## Eingaberegeln & Validierungshinweise

* Das Geburtsdatum muss mit dem Geburtsdatum übereinstimmen, das in der chinesischen Ausweisnummer kodiert ist (Stellen 7 bis 14 einer 18-stelligen Nummer, Stellen 7 bis 12 einer älteren 15-stelligen Nummer)
* `date_of_birth` muss mit dem Geburtsdatum übereinstimmen, das in `national_id` kodiert ist. Die Quelle lehnt die Anfrage direkt ab, wenn beide nicht übereinstimmen. Eine Abweichung wird daher vor der Abfrage abgewiesen und nicht berechnet.
* `national_id` muss `(\d{15}|\d{17}[\dXx])` entsprechen.
* Das letzte Prüfzeichen des chinesischen Personalausweises wird validiert.
* `full_name` muss der originale Name in chinesischer Schrift sein, so wie er im Register oder auf dem Dokument erscheint. Senden Sie für China-Datenbankprüfungen nicht die lateinische Transliteration.

## 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=CHN" \
  -F "services=chn_national_id" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=王新伟" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=11010519900101003X"
```

```python Python theme={null}
from didit import Didit

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_national_id"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    national_id="11010519900101003X",
    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: "CHN",
  services: ["chn_national_id"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  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: "CHN",
	Services:     didit.Some([]string{"chn_national_id"}),
	Consent:      didit.Bool(true),
	FullName:     didit.String("王新伟"),
	DateOfBirth:  didit.String("1990-01-01"),
	NationalID:   didit.String("11010519900101003X"),
	VendorData:   didit.String("user-1234"),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
import java.time.LocalDate;
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("CHN")
        .services(List.of("chn_national_id"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .nationalId("11010519900101003X")
        .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' => 'CHN',
    'services' => ['chn_national_id'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    'national_id' => '11010519900101003X',
    '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: "CHN",
  services: ["chn_national_id"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  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 = "CHN",
    Services = new string[] { "chn_national_id" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    NationalId = "11010519900101003X",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

Jeder erfolgreiche Aufruf liefert HTTP `200` zurück. Das Feld **`outcome_code`** zeigt an, was tatsächlich geschehen ist. So wird beispielsweise eine echte biometrische Abweichung (`BIOMETRIC_NO_MATCH`) von einem Selfie unterschieden, 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`**: Die Registerstelle 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": "CHN",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "chn_national_id",
      "service_name": "China National ID",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "11010519900101003X",
        "verifications": {
          "date_of_birth": true,
          "full_name": true,
          "identification_number": true
        }
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`PARTIAL_MATCH`**: Die Identifikationsnummer wurde gefunden, aber ein oder mehrere personenbezogene 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": "CHN",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "chn_national_id",
      "service_name": "China National ID",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "identification_number": "11010519900101003X",
        "verifications": {
          "date_of_birth": true,
          "full_name": false,
          "identification_number": true
        }
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "no_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`**: Das Register hat für die übermittelten Daten keine Übereinstimmung zurückgegeben.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "CHN",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "chn_national_id",
      "service_name": "China National ID",
      "source_data": {
        "date_of_birth": "NO_MATCH",
        "full_name": "NO_MATCH",
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "date_of_birth": "no_match",
        "full_name": "no_match",
        "identification_number": "no_match"
      }
    }
  ]
}
```

## Zurückgegebene Daten

Welche Felder genau in `source_data` erscheinen, hängt von den Daten ab, die das Register zurückgibt. Das generierte Beispiel für `chn_national_id` dokumentiert derzeit diese normalisierte Struktur:

* `date_of_birth`
* `identification_number`

## Preise & SLAs

Abfragen zur chinesischen nationalen Identitätsnummer werden nur berechnet, wenn Didit ein eindeutiges Ergebnis von der Validierungsquelle erhält.

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

## Weiterlesen

* [China-Datenbankvalidierung: Übersicht](https://docs.didit.me/api-reference/database-validation/china.md)
* [Datenbankvalidierung: Übersicht](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.