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

> Авторитетная проверка по базе кредитного бюро Италии через инфраструктуру Didit. Оплата за вызов от $3.25, без контрактов и минимальных объёмов.

Проверяет входные данные по данным кредитного бюро, полученным от кредитного бюро Италии. Didit предоставляет этот сервис через `POST /v3/database-validation/`, чтобы вы могли сверить отправленные данные с первоисточником и получить нормализованные результаты сопоставления.

## Покрытие

* **Покрытие:** \~ 80%
* **Страна:** Италия
* **ID сервиса:** `ita_credit_bureau`
* **Область данных:** Финансовые данные
* **Категория:** CreditBureau

## Входные данные

| Поле | Обязательное | Пример |
| - | -: | - |
| `first_name` | Да | `John` |
| `last_name` | Да | `Doe` |
| `address.street_1` | Да | `123 Sample Street` |
| `address.postal_code` | Да | `10001` |
| `tax_number` | Да | `SAMPLE-TAX-12345` |
| `date_of_birth` | Нет | `1990-01-01` |
| `address.street_2` | Нет | `Unit 4` |
| `address.city` | Нет | `Sample City` |
| `address.region` | Нет | `Sample State` |
| `vendor_data` | Нет | `user-1234` |

* **Обязательные входные данные:** `first_name`, `last_name`, `address.street_1`, `address.postal_code`, `tax_number`
* **Необязательные входные данные:** `date_of_birth`, `address.street_2`, `address.city`, `address.region`, `vendor_data`
* **Согласие:** не требуется
* **Доступность в сценарии:** доступно в сценарии
* **Покрытие:** \~ 80%
* **Цена:** \$3.25 за успешный запрос

Не каждый документ, который принимает этот сервис, содержит идентификатор, по которому выполняется запрос. Если идентификатор не извлечён из документа, проверка помечается как **не применима**: база данных не запрашивается, и плата не взимается. В некоторых странах это касается значительной доли реальных пользователей. Чтобы охватить их, также собирайте идентификатор из ответа на Анкету, из поля извлечения Document AI или из значения, которое вы передаёте при создании сессии, и сопоставьте его на шаге Проверки по базам данных.

## Параметры тела запроса

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

Код страны ISO 3166-1 alpha-3 для этого сервиса базы данных.

Пример: `ITA`

**services** `string` *required* (default: ita\_credit\_bureau)

Массив, содержащий ID этого сервиса. Фиксация сервиса ограничивает запрос этой конкретной базой данных.

Пример: `ita_credit_bureau`

**first\_name** `string` *required* (default: John)

Имя, которое нужно проверить.

Пример: `John`

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

Фамилия, которую нужно проверить.

Пример: `Doe`

**address** `object` *required* (default: \{"street\_1":"123 Sample Street","street\_2":"Unit 4","city":"Sample City","region":"Sample State","postal\_code":"10001","country":"US"})

Структурированный объект адреса места жительства. Используйте `street_1`, `street_2`, `city`, `region`, `postal_code` и `country`. Полная строка адреса в старом формате по-прежнему принимается, но не рекомендуется.

Пример: `{"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}`

**tax\_number** `string` *required* (default: SAMPLE-TAX-12345)

Налоговый или фискальный идентификационный номер.

Пример: `SAMPLE-TAX-12345`

**date\_of\_birth** `string`

Дата рождения в формате `YYYY-MM-DD`.

Пример: `1990-01-01`

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

Ваш постоянный идентификатор этого пользователя, например внутренний ID пользователя. Didit использует его, чтобы связать отдельные проверки с одним конечным пользователем и снизить количество ложных срабатываний при обнаружении дубликатов.

Пример: `user-1234`

## Правила для входных данных и примечания по проверке

* `tax_number` должен быть ровно 16 символов в длину.
* Для сервисов, работающих с адресами, по возможности отправляйте структурированные поля адреса, а не одну строку `address`.
* `address.street_1`: это улица с номером дома и типом улицы.
* `address.street_2`: это квартира, офис, корпус, этаж или дополнительная строка адреса. Отправляйте её только при наличии данных.
* `address.city`: это город, пригород, район, населённый пункт или микрорайон.
* `address.region`: это штат, провинция, регион или город.
* `address.postal_code`: это почтовый индекс.
* Сервисы баз данных, работающие с адресом, требуют как минимум улицу и почтовый индекс. Запросы, отклонённые до обращения к источнику, не тарифицируются.

## Как вызывать

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=ITA" \
  -F "services=ita_credit_bureau" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F 'address={"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}' \
  -F "tax_number=SAMPLE-TAX-12345"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="ITA",
    services=["ita_credit_bureau"],
    first_name="John",
    last_name="Doe",
    tax_number="SAMPLE-TAX-12345",
    address={"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"},
    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: "ITA",
  services: ["ita_credit_bureau"],
  first_name: "John",
  last_name: "Doe",
  tax_number: "SAMPLE-TAX-12345",
  address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
  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: "ITA",
	Services:     didit.Some([]string{"ita_credit_bureau"}),
	FirstName:    didit.String("John"),
	LastName:     didit.String("Doe"),
	TaxNumber:    didit.String("SAMPLE-TAX-12345"),
	Address:      didit.Some[any](map[string]any{"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"}),
	VendorData:   didit.String("user-1234"),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
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("ITA")
        .services(List.of("ita_credit_bureau"))
        .firstName("John")
        .lastName("Doe")
        .taxNumber("SAMPLE-TAX-12345")
        .address(DatabaseValidationValidateParams.Address.ofVariant1(DatabaseValidationValidateParams.Address.Variant1.builder()
                .street1("123 Sample Street")
                .street2("Unit 4")
                .city("Sample City")
                .region("Sample State")
                .postalCode("10001")
                .country("US")
                .build()))
        .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' => 'ITA',
    'services' => ['ita_credit_bureau'],
    'first_name' => 'John',
    'last_name' => 'Doe',
    'tax_number' => 'SAMPLE-TAX-12345',
    'address' => ['street_1' => '123 Sample Street', 'street_2' => 'Unit 4', 'city' => 'Sample City', 'region' => 'Sample State', 'postal_code' => '10001', 'country' => 'US'],
    '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: "ITA",
  services: ["ita_credit_bureau"],
  first_name: "John",
  last_name: "Doe",
  tax_number: "SAMPLE-TAX-12345",
  address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
  vendor_data: "user-1234"
)
puts result.to_h
```

```csharp .NET theme={null}
using System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;

// Reads DIDIT_API_KEY.
using var client = new DiditClient();

var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
    IssuingState = "ITA",
    Services = new string[] { "ita_credit_bureau" },
    FirstName = "John",
    LastName = "Doe",
    TaxNumber = "SAMPLE-TAX-12345",
    Address = new Dictionary<string, object> { ["street_1"] = "123 Sample Street", ["street_2"] = "Unit 4", ["city"] = "Sample City", ["region"] = "Sample State", ["postal_code"] = "10001", ["country"] = "US" },
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

Каждый успешный вызов возвращает HTTP `200`. Поле **`outcome_code`** показывает, что произошло на самом деле. Например, оно отличает реальное несовпадение биометрии (`BIOMETRIC_NO_MATCH`) от селфи, которое не удалось прочитать (`BIOMETRIC_IMAGE_UNUSABLE`). Показанный `status` — это статус функции по умолчанию. Настроенные [действия для частичного совпадения / отсутствия совпадения](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md) могут его переопределить.

**`MATCH`** — Реестр подтвердил личность, и все проверяемые поля совпали.

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "ITA",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "ita_credit_bureau",
      "service_name": "Italy Credit Bureau",
      "source_data": {
        "address": "123 Sample Street",
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe"
      },
      "validation": {
        "address": "full_match",
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`PARTIAL_MATCH`** — Идентификационный номер найден, но одно или несколько персональных полей (обычно имя или дата рождения) не полностью совпали.

```json 200 OK — PARTIAL_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ITA",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "ita_credit_bureau",
      "service_name": "Italy Credit Bureau",
      "source_data": {
        "address": "123 Sample Street",
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe"
      },
      "validation": {
        "address": "full_match",
        "full_name": "no_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`** — Реестр не вернул совпадений по отправленным данным.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "ITA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "ita_credit_bureau",
      "service_name": "Italy Credit Bureau",
      "source_data": {
        "address": "NO_MATCH",
        "full_name": "NO_MATCH",
        "identification_number": "NO_MATCH"
      },
      "validation": {
        "address": "no_match",
        "full_name": "no_match",
        "identification_number": "no_match"
      }
    }
  ]
}
```

## Возвращаемые данные

Точный набор полей, которые попадают в `source_data`, зависит от того, что возвращает реестр. Сгенерированный пример для `ita_credit_bureau` сейчас документирует такую нормализованную структуру:

* `address`
* `date_of_birth`
* `first_name`
* `identification_number`
* `last_name`

## Цены и SLA

Запросы Italy Credit Bureau оплачиваются, только если Didit получает окончательный результат от источника проверки.

* **Цена за вызов:** \$3.25 USD.
* **Оплата:** за каждый успешный запрос. Плата не взимается, если реестр недоступен, если не заполнены обязательные поля или если запрос отклонён до обращения к источнику.
* **Задержка:** типичное значение p95 \< 2 с.
* **Доступность:** 99.9% в квартал со стороны Didit. Доступность источника данных зависит от страны и набора данных.

## Продолжить чтение

* [Обзор проверки по базам данных в Италии](https://docs.didit.me/api-reference/database-validation/italy.md)
* [Обзор проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md)
* [Коды результатов](https://docs.didit.me/ru/core-technology/database-validation/database-validation-outcome-codes.md)


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