> ## 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-Reisepassverifizierung API: Echtzeit-Abfrage

> Didit China-Reisepassverifizierung: maßgebliche Datenbankvalidierung. Ab $1.67 pro Aufruf, keine Verträge, keine Mindestabnahme.

Prüft Eingabedaten gegen den offiziellen Datendienst in China. Didit stellt diesen Service über `POST /v3/database-validation/` bereit, damit Sie die übermittelten Daten mit der maßgeblichen Quelle abgleichen und normalisierte Abgleichsergebnisse erhalten können. Eingabeformat: `date_of_birth` muss dem Geburtsdatum entsprechen, das in der chinesischen nationalen Identitätsnummer kodiert ist (Stellen 7–14 einer 18-stelligen Nummer, Stellen 7–12 einer älteren 15-stelligen Nummer).

## Abdeckung

* **Abdeckung:** \~ 100%
* **Land:** China
* **Service-ID:** `chn_passport_verification`
* **Datenbereich:** Dokument
* **Kategorie:** Reisepass

## Eingaben

| Feld | Erforderlich | Beispiel |
| - | -: | - |
| `full_name` | Ja | `王新伟` |
| `date_of_birth` | Ja | `1990-01-01` |
| `national_id` | Ja | `11010519900101003X` |
| `passport_number` | Ja | `SAMPLE-PASS-12345` |
| `vendor_data` | Nein | `user-1234` |

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

Nicht jedes Dokument, das dieser Service akzeptiert, enthält den Identifikator, über den er abfragt. Wenn der Identifikator nicht aus dem Dokument extrahiert wird, wird die Prüfung als **nicht anwendbar** erfasst – es wird keine Datenbank abgefragt, und Ihnen wird nichts berechnet. Bei manchen Ländern betrifft das einen großen Anteil der realen Benutzer. Um auch diese abzudecken, erfassen Sie den Identifikator zusätzlich aus einer Antwort des Fragebogens, einem Extraktionsfeld von Document AI oder einem Wert, den Sie beim Erstellen der Sitzung übermitteln, und ordnen ihn dem Schritt Datenbankvalidierung zu.

## Body-Parameter

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

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

Beispiel: `CHN`

**services** `string` *required* (default: chn\_passport\_verification)

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

Beispiel: `chn_passport_verification`

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

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

Beispiel: `true`

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

Vollständiger Name gemäß amtlicher Schreibweise zur Validierung.

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`

**passport\_number** `string` *required* (default: SAMPLE-PASS-12345)

Reisepassnummer.

Beispiel: `SAMPLE-PASS-12345`

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

Beispiel: `user-1234`

## Eingaberegeln und Validierungshinweise

* Das Geburtsdatum muss dem Geburtsdatum entsprechen, das in der chinesischen nationalen Identitätsnummer kodiert ist (Stellen 7–14 einer 18-stelligen Nummer, Stellen 7–12 einer älteren 15-stelligen Nummer)
* `date_of_birth` muss mit dem Geburtsdatum in `national_id` übereinstimmen. Wenn die beiden Angaben nicht übereinstimmen, lehnt die Quelle die Anfrage direkt ab. Eine Abweichung wird daher vor der Abfrage abgewiesen und nicht berechnet.
* `national_id` muss dem Muster `(?:\d{15}|\d{17}[\dXx])` entsprechen.
* Das letzte Prüfzeichen des chinesischen Einwohnerausweises wird validiert.
* `full_name` muss der ursprüngliche Name in chinesischer Schrift sein, so wie er im Register oder auf dem Dokument steht. Senden Sie für Datenbankprüfungen in China nicht die lateinische Umschrift.

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

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_passport_verification"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    passport_number="SAMPLE-PASS-12345",
    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_passport_verification"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  passport_number: "SAMPLE-PASS-12345",
  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_passport_verification"}),
	Consent:        didit.Bool(true),
	FullName:       didit.String("王新伟"),
	DateOfBirth:    didit.String("1990-01-01"),
	PassportNumber: didit.String("SAMPLE-PASS-12345"),
	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_passport_verification"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .passportNumber("SAMPLE-PASS-12345")
        .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_passport_verification'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    'passport_number' => 'SAMPLE-PASS-12345',
    '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_passport_verification"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  passport_number: "SAMPLE-PASS-12345",
  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_passport_verification" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    PassportNumber = "SAMPLE-PASS-12345",
    NationalId = "11010519900101003X",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

Jeder erfolgreiche Aufruf liefert HTTP `200` zurück. Das Feld **`outcome_code`** zeigt, was tatsächlich passiert ist. So lässt sich etwa ein echter biometrischer Nichtabgleich (`BIOMETRIC_NO_MATCH`) von einem Selfie unterscheiden, das nicht gelesen werden konnte (`BIOMETRIC_IMAGE_UNUSABLE`). Der angezeigte `status` ist der Status der Standardfunktion. 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 alle geprüften Felder stimmen ü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_passport_verification",
      "service_name": "China Passport Verification",
      "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 persönliche Felder (meist Name oder Geburtsdatum) stimmen 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_passport_verification",
      "service_name": "China Passport Verification",
      "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 keinen Treffer 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_passport_verification",
      "service_name": "China Passport Verification",
      "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"
      }
    }
  ]
}
```

## Rückgabedaten

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

* `date_of_birth`
* `identification_number`

## Preise und SLAs

Abfragen der China Passport Verification werden nur berechnet, wenn Didit von der Validierungsquelle ein eindeutiges Ergebnis erhält.

* **Preis pro Aufruf:** \$1.67 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:** typischerweise 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.

## Weiterlesen

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