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

# API de verificació de targetes bancàries de la Xina

> Validació de targetes bancàries xineses en bases de dades oficials amb Didit. Des de $0.67 per crida, sense contractes ni mínims.

Verifica les dades d'entrada amb el servei oficial de dades de la Xina. Didit exposa aquest servei a través de `POST /v3/database-validation/` perquè puguis verificar les dades enviades amb la font autoritativa i rebre resultats de coincidència normalitzats. Format d'entrada: `date_of_birth` admet la data de naixement, que ha de coincidir amb la data de naixement codificada al número d'identitat nacional xinès (dígits 7-14 d'un número de 18 caràcters, 7-12 d'un número antic de 15 dígits); `national_id` admet el número de la targeta d'identitat de residència xinesa (15 dígits o 18 caràcters amb dígit de control).

## Cobertura

* **Cobertura:** \~ 100%
* **País:** Xina
* **ID del servei:** `chn_bank_card`
* **Àmbit de dades:** Financer
* **Categoria:** Banca

## Entrades

| Camp | Obligatori | Exemple |
| - | -: | - |
| `full_name` | Sí | `王新伟` |
| `date_of_birth` | Sí | `1990-01-01` |
| `national_id` | Sí | `11010519900101003X` |
| `bank_card_number` | Sí | `4111111111111111` |
| `vendor_data` | No | `user-1234` |

* **Entrades obligatòries:** `full_name`, `date_of_birth`, `national_id`, `bank_card_number`
* **Entrades opcionals:** `vendor_data`
* **Consentiment:** Obligatori
* **Disponibilitat al flux de treball:** Disponible al flux de treball amb mapatge de camps
* **Cobertura:** \~ 100%
* **Preu:** \$0.67 per consulta satisfactòria

En un flux de treball, `bank_card_number` no s'imprimeix en cap document d'identitat, de manera que cap pas no el produeix per si sol. Recull-lo d'una resposta de qüestionari, d'un camp d'extracció de Document AI o d'un valor que enviïs en crear la sessió, i assigna'l al pas de Validació en bases de dades. Mentre no estigui assignat, l'editor de flux de treball mostra aquest servei desactivat i indica l'entrada que falta; en execució, una entrada que falta vol dir que la comprovació s'omet abans de qualsevol consulta, de manera que mai no se't cobra per una base de dades que no s'ha pogut consultar.

## Paràmetres del cos

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

Codi de país ISO 3166-1 alpha-3 per a aquest servei de base de dades.

Exemple: `CHN`

**services** `string` *required* (default: chn\_bank\_card)

Matriu que conté l'ID d'aquest servei. Fixar el servei manté la sol·licitud limitada a aquesta base de dades exacta.

Exemple: `chn_bank_card`

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

Consentiment explícit de l'usuari final per a aquest servei.

Exemple: `true`

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

Nom legal complet que cal validar.

Exemple: `王新伟`

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

Data de naixement en format `YYYY-MM-DD`.

Exemple: `1990-01-01`

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

Número d'identitat nacional per a aquest servei.

Exemple: `11010519900101003X`

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

Número de la targeta bancària.

Exemple: `4111111111111111`

**vendor\_data** `string` (default: user-1234)

La teva referència estable d'aquesta persona, com ara el teu ID d'usuari intern. Didit l'utilitza per enllaçar les comprovacions independents amb el mateix usuari final i reduir el soroll de detecció de duplicats.

Exemple: `user-1234`

## Regles d'entrada i notes de validació

* La data de naixement ha de coincidir amb la data de naixement codificada a la targeta d'identitat de residència xinesa (dígits 7-14 d'un número de 18 caràcters, 7-12 d'un número antic de 15 dígits)
* `date_of_birth` ha de coincidir amb la data de naixement codificada a `national_id`; la font rebutja la sol·licitud directament quan les dues no coincideixen, de manera que una discrepància es refusa abans de la consulta i no es cobra.
* Número de la targeta d'identitat de residència xinesa (15 dígits o 18 caràcters amb dígit de control)
* `national_id` ha de coincidir amb `(?:\d{15}|\d{17}[\dXx])`.
* Es valida el caràcter de control final de la targeta d'identitat de residència xinesa.
* `full_name` ha de ser el nom original en el sistema d'escriptura xinès tal com apareix al registre o al document. No enviïs la transliteració llatina per a les comprovacions de bases de dades de la Xina.

## Com fer la crida

```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));
```

Cada crida satisfactòria retorna HTTP `200`. El camp **`outcome_code`** indica què ha passat realment, i distingeix, per exemple, una discrepància biomètrica real (`BIOMETRIC_NO_MATCH`) d'una selfie que no s'ha pogut llegir (`BIOMETRIC_IMAGE_UNUSABLE`). L'`status` que es mostra és l'estat per defecte de la funcionalitat; les [accions de coincidència parcial / sense coincidència](https://docs.didit.me/ca/core-technology/database-validation/database-validation-warnings.md) que hagis configurat poden substituir-lo.

**`MATCH`** — El registre va confirmar la identitat i tots els camps verificats coincidien.

```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`** — El número d'identificació s'ha trobat però un o més camps personals (normalment el nom o la data de naixement) no coincideixen del tot.

```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`** — El registre no ha retornat cap coincidència per a les dades enviades.

```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"
      }
    }
  ]
}
```

## Dades retornades

Els camps exactes que apareixen a `source_data` depenen del que retorni el registre. L'exemple generat per a `chn_bank_card` documenta actualment aquesta forma normalitzada:

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

## Preus i SLAs

Les consultes de China Bank Card només es facturen quan Didit rep un resultat concloent de la font de validació.

* **Preu per crida:** \$0.67 USD.
* **Facturació:** per consulta satisfactòria. No es cobra quan el registre no és accessible, quan falten camps obligatoris o quan la sol·licitud es rebutja abans d'arribar a la font.
* **Latència:** p95 típic \< 2 s.
* **Disponibilitat:** 99.9% per trimestre per part de Didit; la disponibilitat de la font final varia segons el país i el conjunt de dades.

## Continua llegint

* [Visió general de la validació en bases de dades de la Xina](https://docs.didit.me/api-reference/database-validation/china.md)
* [Visió general de la validació en bases de dades](https://docs.didit.me/ca/core-technology/database-validation/overview.md)
* [Codis de resultat](https://docs.didit.me/ca/core-technology/database-validation/database-validation-outcome-codes.md)


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