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

> Didit prüft chinesische Bankkarten per Datenbankvalidierung in Echtzeit. Ab $0.67 pro Aufruf, ohne Verträge oder Mindestabnahme.

Prüft die eingereichten Daten gegen den offiziellen Datendienst in China. Didit stellt diesen Dienst über `POST /v3/database-validation/` bereit, damit Sie die eingereichten Daten mit der maßgeblichen Quelle abgleichen und normalisierte Übereinstimmungsergebnisse erhalten. Eingabeformat: `date_of_birth` erwartet das Geburtsdatum, das mit dem in der chinesischen Ausweisnummer codierten Geburtsdatum übereinstimmen muss (Stellen 7 bis 14 einer 18-stelligen Nummer, Stellen 7 bis 12 einer älteren 15-stelligen Nummer); `national_id` erwartet die Nummer des chinesischen Personalausweises (15 Ziffern oder 18 Zeichen mit Prüfziffer).

## Abdeckung

* **Abdeckung:** \~ 100 %
* **Land:** China
* **Service-ID:** `chn_bank_card`
* **Datenbereich:** Finanzen
* **Kategorie:** Bankwesen

## Eingaben

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

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

In einem Workflow wird `bank_card_number` nicht auf einem Ausweisdokument aufgedruckt, daher erzeugt kein Schritt diesen Wert allein. Erfassen Sie ihn über eine Fragebogen-Antwort, ein Extraktionsfeld von Document AI oder einen Wert, den Sie beim Erstellen der Session übermitteln, und ordnen Sie ihn dem Schritt Datenbankvalidierung zu. Solange er nicht zugeordnet ist, zeigt der Workflow-Editor diesen Service als deaktiviert an und nennt die fehlende Eingabe. Zur Laufzeit führt eine fehlende Eingabe dazu, dass die Prüfung vor jeder Abfrage übersprungen wird. Sie zahlen daher nie für eine Datenbankabfrage, die nicht ausgeführt werden konnte.

## 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\_bank\_card)

Array mit der ID dieses Services. Die Festlegung des Services hält die Anfrage auf genau diese Datenbank beschränkt.

Beispiel: `chn_bank_card`

**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)

Personalausweisnummer für diesen Service.

Beispiel: `11010519900101003X`

**bank\_card\_number** `string` *required* (default: 4111111111111111)

Bankkartennummer.

Beispiel: `4111111111111111`

**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 & Validierungshinweise

* Das Geburtsdatum muss mit dem in der chinesischen Personalausweisnummer codierten Geburtsdatum übereinstimmen (Stellen 7 bis 14 einer 18-stelligen Nummer, Stellen 7 bis 12 einer älteren 15-stelligen Nummer)
* `date_of_birth` muss mit dem in `national_id` codierten Geburtsdatum übereinstimmen. Die Quelle lehnt die Anfrage vollständig ab, wenn beide nicht übereinstimmen. Eine Abweichung wird daher vor der Abfrage abgewiesen und nicht berechnet.
* Nummer des chinesischen Personalausweises (15 Ziffern oder 18 Zeichen mit Prüfziffer)
* `national_id` muss `(?:\d{15}|\d{17}[\dXx])` entsprechen.
* Die letzte Prüfziffer der chinesischen Personalausweisnummer 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 keine 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_bank_card" \
  -F "vendor_data=user-1234" \
  -F "consent=true" \
  -F "full_name=王新伟" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=11010519900101003X" \
  -F "bank_card_number=4111111111111111"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="CHN",
    services=["chn_bank_card"],
    consent=True,
    full_name="王新伟",
    date_of_birth="1990-01-01",
    national_id="11010519900101003X",
    bank_card_number="4111111111111111",
    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_bank_card"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  bank_card_number: "4111111111111111",
  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_bank_card"}),
	Consent:        didit.Bool(true),
	FullName:       didit.String("王新伟"),
	DateOfBirth:    didit.String("1990-01-01"),
	NationalID:     didit.String("11010519900101003X"),
	BankCardNumber: didit.String("4111111111111111"),
	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_bank_card"))
        .consent(true)
        .fullName("王新伟")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .nationalId("11010519900101003X")
        .bankCardNumber("4111111111111111")
        .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_bank_card'],
    'consent' => true,
    'full_name' => '王新伟',
    'date_of_birth' => '1990-01-01',
    'national_id' => '11010519900101003X',
    'bank_card_number' => '4111111111111111',
    '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_bank_card"],
  consent: true,
  full_name: "王新伟",
  date_of_birth: "1990-01-01",
  national_id: "11010519900101003X",
  bank_card_number: "4111111111111111",
  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_bank_card" },
    Consent = true,
    FullName = "王新伟",
    DateOfBirth = "1990-01-01",
    NationalId = "11010519900101003X",
    BankCardNumber = "4111111111111111",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

Jeder erfolgreiche Aufruf liefert HTTP `200`. Das Feld **`outcome_code`** zeigt, was tatsächlich passiert ist. Es unterscheidet beispielsweise eine echte biometrische Nichtübereinstimmung (`BIOMETRIC_NO_MATCH`) von einem Selfie, das nicht gelesen werden konnte (`BIOMETRIC_IMAGE_UNUSABLE`). Der angezeigte `status` ist der Standard-Funktionsstatus. 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": "CHN",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "chn_bank_card",
      "service_name": "China Bank Card",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "王新伟",
        "identification_number": "11010519900101003X"
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`PARTIAL_MATCH`**: Die Ausweisnummer wurde gefunden, aber mindestens ein persönliches Feld (meist Name oder Geburtsdatum) stimmte 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_bank_card",
      "service_name": "China Bank Card",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "full_name": "王新伟",
        "identification_number": "11010519900101003X"
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "no_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`**: Das Register hat für die eingereichten 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_bank_card",
      "service_name": "China Bank Card",
      "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 davon ab, was das Register zurückgibt. Das generierte Beispiel für `chn_bank_card` dokumentiert derzeit diese normalisierte Struktur:

* `date_of_birth`
* `full_name`
* `identification_number`

## Preise & SLAs

Abfragen zur chinesischen Bankkartenprüfung werden nur abgerechnet, wenn Didit von der Prüfquelle ein eindeutiges Ergebnis erhält.

* **Preis pro Abfrage:** \$0.67 USD.
* **Abrechnung:** pro erfolgreicher Abfrage. Ihnen werden keine Kosten berechnet, wenn das Register nicht erreichbar ist, wenn erforderliche Felder 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.

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