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

# Отчёт проверки по базам данных: JSON-ответ

> Отчёт Didit по проверке по базам данных: результаты сервисов, данные реестров, оценки Face Match и предупреждения. Оплата за вызов от $0.05.

Функция Didit [Проверка по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md) сверяет идентификационные данные каждого пользователя с официальным источником соответствующей страны — RENAPER (Аргентина), Receita Federal (Бразилия), Tribunal Electoral (Панама, с биометрическим сравнением лиц), Junta Central Electoral (Доминиканская Республика) и другими — с оплатой за каждый успешный запрос и без ежемесячных минимальных платежей.

Каждая запись в `database_validations[]` представляет собой один полный отчёт о проверке по базам данных — один запуск узла проверки по базам данных для одного государства выдачи. Результаты по отдельным реестрам находятся во вложенном массиве `validations[]` этой записи. На этой странице описана структура JSON, чтобы вы могли парсить результаты сопоставления, исходные данные из реестра и биометрические оценки, возвращаемые каждым сервисом.

![Отчёт Didit о проверке по базам данных с типами совпадений и полями ответа из реестра](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/database-validation-report.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=56284966659e33d1c74385647537e5d9)

## Обзор

Отчёт о проверке по базам данных формируется каждый раз, когда узел сценария выполняет функцию «Проверка по базам данных». Каждая запись в массиве `database_validations[]` представляет собой **один запуск узла** для **одного государства выдачи**; если узел запускает несколько сервисов для этой страны (например, CPF + CNH в Бразилии), каждый сервис отображается как отдельный элемент во вложенном массиве `validations[]` этой записи. Каждый отчёт содержит:

* Общий `status` функции — значение [`FeatureStatusChoices`](https://docs.didit.me/ru/reference/data-models#справочник-значений-перечисления-status) (`Not Finished`, `Approved`, `Declined`, `In Review`).
* Сводный `match_type` (`full_match`, `partial_match`, `no_match` или `null`, если ни один сервис не вернул пригодный результат), агрегированный по сервисам с помощью [метода сопоставления](https://docs.didit.me/ru/core-technology/database-validation/database-validation-matching-methods.md).
* `issuing_state` (ISO 3166-1 alpha-3) и производный `validation_type` (`one_by_one`, `two_by_two` или `not_enabled` — никогда не `null`).
* Блок `screened_data` — предоставленные пользователем данные, отправленные в реестр.
* Массив `validations[]` — по одной записи на каждый сервис, выдавший результат, с каталожными `service_id`/`service_name`, вендор-нейтральным кодом `outcome_code`, опциональным `outcome_detail`, картой `validation` с результатами по каждому полю и очищенными исходными данными `source_data`, полученными из ответа реестра.
* Массив `errors[]` — ошибки по каждому сервису при сбое или пропуске проверки; при отсутствии ошибок ключ **полностью опускается**.
* Массив `warnings[]` — события риска, зафиксированные в ходе проверки (см. [предупреждения проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md)).
* Поле `node_id`, определяющее, какой узел графа сценария создал отчёт (только для сессий V3).

## Где он отображается в ответах API

Отчёт отображается как **`database_validations[]`** в `GET /v3/session/{sessionId}/decision/` — всегда в виде массива JSON, а не одиночного объекта. Массив содержит по одной записи на каждый узел проверки по базам данных в графе сценария; в свою очередь, вложенный массив `validations[]` каждой записи содержит по одному элементу для каждого сервиса реестра, вернувшего результат.

```json theme={null}
{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "status": "Approved",
  "database_validations": [
    { "node_id": "feature_db_validation_1", "status": "Approved", "...": "..." }
  ]
}
```

Значение `null` означает, что шаг проверки по базам данных ещё не выполнялся.

## Схема

Каноническая схема с описанием каждого поля находится на странице [Модели данных](https://docs.didit.me/ru/reference/data-models.md#проверка-по-базам-данных). Она формируется с помощью `DatabaseValidationV3Serializer`.

```typescript theme={null}
interface DatabaseValidation {
  node_id: string | null;
  status: "Not Finished" | "Approved" | "Declined" | "In Review"; // FeatureStatusChoices
  issuing_state: string | null;      // ISO 3166-1 alpha-3, e.g. "ARG"
  validation_type: "one_by_one" | "two_by_two" | "not_enabled"; // derived, never null
  match_type: "full_match" | "partial_match" | "no_match" | null; // null when no service returned a usable result
  screened_data: {                   // What we sent to the registry (varies by country/service)
    tax_number?: string;
    personal_number?: string;
    document_number?: string;
    first_name?: string;
    last_name?: string;
    date_of_birth?: string;          // YYYY-MM-DD
    selfie?: string;                 // Presigned URL (biometric services)
    cnh_qr_code_image?: string;      // Presigned URL (Brazil CNH QR + face match)
    document_image?: string;         // Presigned URL (services that take a document image)
    gender?: string;                 // Biometric registry services (e.g. Argentina RENAPER)
  };
  validations: Array<{
    // Catalog metadata
    service_id?: string;             // e.g. "arg_renaper"
    service_name?: string;           // e.g. "Argentina - DNI verification (RENAPER)"
    // Per-field match outcome — keys vary by service
    // (full_name, first_name, last_name, date_of_birth, identification_number, address, …)
    validation?: Record<string, "full_match" | "partial_match" | "no_match">;
    outcome_code?: string;           // Vendor-neutral outcome, see below
    outcome_detail?: string;         // Raw upstream status detail backing the outcome code
    source_data?: {                  // Cleaned registry record
      identification_number?: string;
      first_name?: string;
      last_name?: string;
      full_name?: string;
      date_of_birth?: string;
      place_of_birth?: string;
      gender?: string;
      nationality?: string;
      issue_date?: string;
      expiration_date?: string;
      photo?: string;                // Pre-signed JPEG URL
      signature?: string;            // Pre-signed JPEG URL
      face_match_score?: number;     // Biometric services only (0-100)
    };
  }>;
  errors?: Array<{                   // Omitted entirely when empty
    service_id: string;
    code?: string;                   // e.g. "invalid_screened_data", "empty_provider_response"
    message?: string;
    missing_required_fields?: string[];
    invalid_format_fields?: string[];
    field_reasons?: Record<string, string>;
  }>;
  warnings: Warning[];               // See /reference/data-models#warning-object
}
```

### Значения статуса

Поле `status` использует стандартное перечисление на уровне функции (см. [Перечисления статусов](https://docs.didit.me/ru/reference/data-models.md#справочник-значений-перечисления-status)) — см. [Справочник перечислений статусов](https://docs.didit.me/ru/reference/data-models.md#справочник-значений-перечисления-status). Это перечисление также определяет значение `Resub Requested`, которое на практике не создаётся Проверкой по базам данных.

| Статус | Значение |
| - | - |
| `Not Finished` | Проверка ещё не вернула результат (начальное состояние; также фиксируется, когда отдельный вызов завершается сбоем во всех сервисах). |
| `Approved` | Риски не сработали, или единственные сработавшие риски настроены со значением `NO_ACTION` (значение по умолчанию для частичного совпадения). |
| `Declined` | Результат отсутствия совпадения или частичного совпадения, для которого настроено действие `DECLINE`. |
| `In Review` | Результат отсутствия совпадения или частичного совпадения, для которого настроено действие `REVIEW`, либо проверка не смогла запуститься вовсе (`COULD_NOT_PERFORM_DATABASE_VALIDATION` — всегда требует проверки). |

Пользовательские правила статусов для конкретных узлов применяются поверх этого базового статуса. См. настраиваемые действия и их значения по умолчанию в разделе [Предупреждения проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md).

### Коды результатов

Каждая запись в `validations[]` содержит независимый от поставщиков `outcome_code` — одно из значений: `MATCH`, `PARTIAL_MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT`, `MINOR_BLOCKED`, `DECEASED`, `BIOMETRIC_NO_MATCH`, `BIOMETRIC_IMAGE_UNUSABLE`, `INCONCLUSIVE`, `DOCUMENT_SUPERSEDED`, `REGISTRY_UNAVAILABLE`, `REGISTRY_ERROR`. Обратите внимание на различия: `NO_MATCH` означает, что реестр однозначно не подтвердил данные; `INCONCLUSIVE` означает, что реестр не смог сделать однозначный вывод (следует направить на проверку, а не отклонять); а `BIOMETRIC_IMAGE_UNUSABLE` указывает на техническую проблему с селфи (требуется повторная съёмка) — в отличие от окончательного `BIOMETRIC_NO_MATCH`. Полную классификацию и рекомендации по обработке см. на странице [Коды результатов](https://docs.didit.me/ru/core-technology/database-validation/database-validation-outcome-codes.md).

### По одной записи на сервис

Массив `validations[]` содержит **по одному элементу для каждого сервиса, вернувшего payload с результатом** (объект `validation`, `source_data`, `outcome_code` или `outcome_detail`). Если ваш сценарий запускает несколько сервисов для одной страны (например, CPF Бразилии + CNH Бразилии), каждый из них отображается отдельно со своими `service_id`, `outcome_code` и `source_data`. Итоговое поле `match_type` агрегирует результаты по всем сервисам (любое полное совпадение → `full_match`; иначе любое частичное совпадение → `partial_match`; иначе `no_match`), а `validation_type` определяется тем, сколько различных сервисов вернули полное совпадение — см. [Методы сопоставления](https://docs.didit.me/ru/core-technology/database-validation/database-validation-matching-methods.md).

### Предварительно подписанные URL изображений

Поля изображений в `source_data` (`photo`, `signature`) и `screened_data` (`selfie`, `cnh_qr_code_image`, `document_image`) возвращаются в виде **предварительно подписанных URL** с ограниченным сроком действия — обновляйте их, повторно вызывая endpoint принятия решения. Исходный payload стороннего сервиса намеренно не раскрывается через API.

## Примеры

### Одобрена — проверка статуса CPF Бразилии (Receita Federal)

```json theme={null}
{
  "node_id": "feature_db_validation_1",
  "status": "Approved",
  "issuing_state": "BRA",
  "validation_type": "one_by_one",
  "match_type": "full_match",
  "screened_data": {
    "tax_number": "12345678900",
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "1980-01-01"
  },
  "validations": [
    {
      "service_id": "bra_cpf",
      "service_name": "Brazil - CPF status check",
      "outcome_code": "MATCH",
      "outcome_detail": "200",
      "validation": {
        "full_name": "full_match",
        "date_of_birth": "full_match",
        "identification_number": "full_match"
      },
      "source_data": {
        "identification_number": "12345678900",
        "first_name": "JOHN",
        "last_name": "DOE",
        "date_of_birth": "1980-01-01",
        "lgpd_minor": false,
        "minor_under_16": false,
        "minor_under_18": false
      }
    }
  ],
  "warnings": []
}
```

### Одобрена — биометрическая проверка DNI Аргентины (RENAPER)

Для Аргентины проверка использует RENAPER с биометрическим сравнением лиц. Ответ содержит `face_match_score` и дополнительные поля удостоверения личности, возвращённые реестром.

```json theme={null}
{
  "node_id": "feature_db_validation_1",
  "status": "Approved",
  "issuing_state": "ARG",
  "validation_type": "one_by_one",
  "match_type": "full_match",
  "screened_data": {
    "document_number": "12345678",
    "selfie": "https://<media-host>/sessions/<session-id>/selfie.jpg?X-Amz-Signature=...",
    "gender": "M",
    "first_name": "John",
    "last_name": "Doe"
  },
  "validations": [
    {
      "service_id": "arg_renaper",
      "service_name": "Argentina - DNI verification (RENAPER)",
      "outcome_code": "MATCH",
      "validation": {
        "full_name": "full_match",
        "identification_number": "full_match"
      },
      "source_data": {
        "identification_number": "12345678",
        "first_name": "John",
        "last_name": "Doe",
        "full_name": "John Doe",
        "date_of_birth": "1990-01-01",
        "tax_id": "20000000019",
        "tax_id_type": "CUIT",
        "face_match_score": 97
      }
    }
  ],
  "warnings": []
}
```

### На проверке — не удалось выполнить проверку в реестре

Когда ни один сервис не возвращает пригодный результат — обязательные поля отсутствуют или некорректны либо реестр недоступен — поле `match_type` остаётся `null`, `validation_type` принимает значение `not_enabled`, выдаётся предупреждение `COULD_NOT_PERFORM_DATABASE_VALIDATION`, а функция переходит в статус `In Review` до исправления данных. За пропущенные сервисы **плата не взимается**.

```json theme={null}
{
  "node_id": "feature_db_validation_1",
  "status": "In Review",
  "issuing_state": "PAN",
  "validation_type": "not_enabled",
  "match_type": null,
  "screened_data": {
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "1990-01-01",
    "selfie": "https://<media-host>/sessions/<session-id>/selfie.jpg?X-Amz-Signature=..."
  },
  "validations": [],
  "errors": [
    {
      "code": "invalid_screened_data",
      "message": "Database validation was skipped before calling the provider because the screened data has missing required fields: personal_number.",
      "missing_required_fields": ["personal_number"],
      "service_id": "pan_cedula_sib_plus"
    }
  ],
  "warnings": [
    {
      "feature": "DATABASE_VALIDATION",
      "risk": "COULD_NOT_PERFORM_DATABASE_VALIDATION",
      "additional_data": {
        "reason": "Database validation was skipped before any provider request because the screened data is incomplete or invalid.",
        "database_validation_errors": [
          {
            "code": "invalid_screened_data",
            "message": "Database validation was skipped before calling the provider because the screened data has missing required fields: personal_number.",
            "missing_required_fields": ["personal_number"],
            "service_id": "pan_cedula_sib_plus"
          }
        ],
        "missing_required_fields_by_service": { "pan_cedula_sib_plus": ["personal_number"] },
        "invalid_format_fields_by_service": {},
        "field_reasons_by_service": {}
      },
      "log_type": "warning",
      "short_description": "Could not perform database validation",
      "long_description": "The system couldn't perform the database validation, please fill the required fields for this country to automatically proceed with database validation.",
      "node_id": "feature_db_validation_1"
    }
  ]
}
```

Заполните отсутствующее поле на странице сведений о сессии в Console — сохранение автоматически перезапустит проверку и снимет предупреждение в случае успеха.

## Связанные разделы

* [Обзор проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md) — принципы сквозной работы API и поддерживаемые реестры.
* [Методы сопоставления](https://docs.didit.me/ru/core-technology/database-validation/database-validation-matching-methods.md) — определение результатов 1×1 / 2×2 (`validation_type: one_by_one` / `two_by_two`).
* [Коды результатов](https://docs.didit.me/ru/core-technology/database-validation/database-validation-outcome-codes.md) — полная классификация результатов с кодами детализации по странам.
* [Поддерживаемые страны и сервисы](https://docs.didit.me/ru/core-technology/database-validation/database-validation-supported-countries.md) — все действующие реестры, обязательные поля и цена за вызов.
* [Предупреждения проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md) — что отображается, если сервис не может запуститься.
* [Модели данных — проверка по базам данных](https://docs.didit.me/ru/reference/data-models.md#проверка-по-базам-данных) — каноническая схема с описанием полей.


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