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

# Коды результатов проверки по базам данных: справочник

> Все коды результатов проверки по базам данных Didit: совпадение, не найден, несовершеннолетний, умерший и другие. От $0.05/check.

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

Когда вы запускаете проверку по базе данных, вы получаете двухуровневый результат:

1. **Стандартный код исхода**, который работает одинаково во всех поддерживаемых странах, позволяя написать единую логику обработки для них всех.
2. Необязательный **код детализации конкретной страны**, который сообщает точное состояние, возвращённое государственным реестром — полезно для поддержки, аналитики и решения о том, предложить ли пользователю повторить попытку.

На этой странице перечислены все возможные значения и описано, как реагировать на каждое из них.

## Стандартные коды исхода

Эти коды идентичны для всех стран. Выстраивайте логику ручной проверки, отклонения и повторных попыток на их основе — а не на детальных кодах отдельных стран.

| Код исхода | Значение | Можно ли повторить? | Рекомендуемая обработка |
| :- | :- | :-: | :- |
| `MATCH` | Реестр подтвердил личность, и все проверяемые поля совпали. | — | Одобрить. |
| `PARTIAL_MATCH` | Реестр нашёл запись, но одно или несколько полей, сравниваемых сервисом, совпали не полностью (обычно имя или дата рождения). Какие поля определяют исход, зависит от сервиса — см. [Методы сопоставления](https://docs.didit.me/ru/core-technology/database-validation/database-validation-matching-methods.md). | — | Отправить на проверку или настроить [Partial Match Action](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md) для автоматического отклонения. |
| `NO_MATCH` | Реестр не вернул совпадений по переданным данным. | Нет | Отклонить или отправить на проверку в зависимости от вашей политики. |
| `DOCUMENT_SUPERSEDED` | Реестр подтвердил личность, но предъявленная **версия документа** не совпадает с актуальной в базе — с тех пор была выпущена более новая версия, поэтому документ на руках устарел. Буква версии (*ejemplar*) аргентинского DNI служит классическим примером. Отличается от `NO_MATCH` (данные человека не совпали) и `DOCUMENT_NOT_FOUND` (запись отсутствует вовсе): устарел только физический документ. | Нет | Отправить на проверку и запросить актуальную версию документа. Наследует настройки **No Match Action** и вызывает [`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings). |
| `DOCUMENT_NOT_FOUND` | Идентификационный номер синтаксически корректен, но отсутствует в государственном реестре. | Нет | Отклонить. |
| `INVALID_DOCUMENT_FORMAT` | Переданный идентификационный номер некорректен (неверная длина, нецифровые символы, неверная контрольная сумма). | Нет | Попросить пользователя ввести номер документа заново. |
| `INVALID_INPUT` | Обязательное входное поле (селфи, пол, дата рождения и т. д.) отсутствует или заполнено некорректно. | Нет | Попросить пользователя повторно отправить недостающее поле. Сессия автоматически обработает запрос повторно после предоставления данных — см. [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings). |
| `MINOR_BLOCKED` | Реестр заблокировал выдачу записи, поскольку субъект является несовершеннолетним. Применяется в юрисдикциях с законами о защите данных несовершеннолетних (LGPD в Бразилии и законодательство Аргентины). | Нет | Отклонить. Соблюдайте местное законодательство — не повторяйте попытку. |
| `DECEASED` | Реестр сообщает, что субъект числится умершим. | Нет | Отклонить. |
| `BIOMETRIC_NO_MATCH` | Для биометрических проверок (Аргентина, Панама) оценка совпадения лиц оказалась ниже порога принятия. | Нет | Отклонить или отправить на проверку. |
| `BIOMETRIC_IMAGE_UNUSABLE` | Селфи не удалось обработать — изображение пустое, без лица, низкого качества или реестр не смог его прочитать. | Да | Попросить пользователя переснять селфи. |
| `INCONCLUSIVE` | Реестр не смог определить, соответствует ли человек записи — результат действительно неопределённый (человек может присутствовать в реестре, а может и отсутствовать). Отличается от `NO_MATCH` (однозначно отсутствует) и `BIOMETRIC_IMAGE_UNUSABLE` (техническая проблема с изображением): не было подтверждено ни совпадение, ни отсутствие совпадения, поэтому `match_type` равен `null`. | Возможно | Отправить на проверку. Повторная попытка с более чётким селфи или дополнительными данными может решить проблему. |
| `REGISTRY_UNAVAILABLE` | Государственный реестр временно недоступен (таймаут, ошибка соединения, ошибка 5xx на стороне вышестоящего сервиса). | Да | Повторить попытку через короткое время. Didit уже автоматически повторяет временные ошибки, поэтому появление этого статуса в финальном отчёте означает, что лимит попыток исчерпан. Если реестр продолжает давать сбои, вашей организации отправляется электронное письмо при затяжном сбое и повторно при восстановлении доступа — см. [Уведомления о доступности](https://docs.didit.me/ru/core-technology/database-validation/overview.md#уведомления-о-доступности). |
| `REGISTRY_ERROR` | Реестр вернул непредвиденную ошибку, не подпадающую ни под одну из категорий выше. | Возможно | Передать в службу поддержки с кодом детализации. |

> [!NOTE]
>
> Поле `outcome_code` находится внутри каждого элемента массива `validations` в отчёте о валидации. См. [Отчёт о проверке по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-report.md), чтобы узнать его расположение в ответе.

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE` и `REGISTRY_ERROR` означают, что исходный реестр так и не ответил на запрос, поэтому эти два исхода **не тарифицируются** - см. [цены](https://docs.didit.me/ru/core-technology/database-validation/overview.md). Любой другой код исхода является реальным, платным ответом от реестра, даже если он ничего не подтверждает (`INCONCLUSIVE`, `BIOMETRIC_IMAGE_UNUSABLE`) или отклоняет переданные данные (`INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT` — в качестве кодов исхода они означают, что сам реестр отклонил данные уже после отправки запроса).
>
> Входные данные, которые не доходят до реестра, не генерируют код исхода вовсе: `POST /v3/database-validation/` возвращает `400`, если значение не соответствует правилам формата страны, а сервис в сценарии с отсутствующими или некорректными полями пропускается с ошибкой [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings). Ни один из этих случаев не тарифицируется. Полный разбор представлен на [странице с ценами на Проверку по базам данных](https://docs.didit.me/ru/getting-started/database-validation-pricing.md).

## Детализированные коды по странам

Детализированный код возвращается в поле `outcome_detail` вместе с `outcome_code`. Только перечисленные ниже страны генерируют детализированные коды помимо стандартного результата — все остальные поддерживаемые страны возвращают только стандартные коды.

### Аргентина (RENAPER)

Аргентина использует биометрическую валидацию 1×1 по национальному реестру удостоверений личности RENAPER, сопоставляя DNI, селфи и указанный пол.

| Детализированный код | Стандартный результат | Значение |
| :- | :- | :- |
| `300` | `INVALID_DOCUMENT_FORMAT` | Поле DNI должно содержать число из 7–8 цифр. |
| `301` | `DOCUMENT_NOT_FOUND` | Переданный DNI не соответствует действующей записи. |
| `303` | `INVALID_INPUT` | Поле селфи не заполнено. |
| `304` | `INVALID_INPUT` | Поле пола не заполнено или содержит значение, отличное от `M`, `F`, `X`. |
| `305` | `NO_MATCH` | Комбинация DNI и пола не найдена. |
| `306` | `REGISTRY_UNAVAILABLE` | Запрос не может быть выполнен в данный момент. |
| `307` | `REGISTRY_UNAVAILABLE` | Ошибка подключения к государственной системе проверки личности. |
| `311` | `REGISTRY_ERROR` | У интеграции нет доступа к этому продукту. |
| `313` | `MINOR_BLOCKED` | Запись принадлежит несовершеннолетнему лицу. |
| `400` | `REGISTRY_UNAVAILABLE` | Ошибка подключения. |
| `401` | `NO_MATCH` | По предоставленным данным ничего не найдено. |
| `405` | `BIOMETRIC_IMAGE_UNUSABLE` | Несоответствие изображения; его невозможно обработать. |
| `406` | `BIOMETRIC_IMAGE_UNUSABLE` | Ошибка обработки изображения. |
| `NO.HIT` | `BIOMETRIC_NO_MATCH` | Оценка совпадения лица ниже порога принятия (\< 50). |
| `INTERNAL_ERROR` | `REGISTRY_UNAVAILABLE` | Время ожидания истекло. |

### Бразилия (Receita Federal — Consulta CPF)

Бразилия выполняет проверку CPF через официальный сервис CPF ведомства Receita Federal с явной обработкой данных несовершеннолетних согласно LGPD (Lei Geral de Proteção de Dados) и Цифровому уставу детей и подростков.

| Детализированный код | Стандартный результат | Значение |
| :- | :- | :- |
| `200` | `MATCH` | CPF найден, данные успешно получены. |
| `206` | `MATCH` | CPF найден, но некоторые необязательные поля не были возвращены. |
| `400` | `INVALID_DOCUMENT_FORMAT` | Номер CPF некорректен. |
| `404` | `DOCUMENT_NOT_FOUND` | CPF с переданным номером не существует. |
| `422` | `MINOR_BLOCKED` | Данные несовершеннолетнего младше 18 лет скрыты согласно LGPD (Закон 13.709/2018). Ответ включает `minor_under_18: true`. |
| `451` | `MINOR_BLOCKED` | Данные несовершеннолетнего младше 16 лет скрыты согласно LGPD и Цифровому уставу детей и подростков (Закон 15.211/2025). Ответ включает `minor_under_18: true` и `minor_under_16: true`. |
| `500` | `REGISTRY_UNAVAILABLE` | Ошибка вышестоящего сервера. |
| `504` | `REGISTRY_UNAVAILABLE` | Время ожидания шлюза истекло — запрос не дошёл до API Consulta CPF. |

> [!NOTE]
>
> Для результатов `MINOR_BLOCKED` в Бразилии объект `source_data` по-прежнему возвращает флаги `lgpd_minor`, `minor_under_18` и `minor_under_16`, что позволяет применять сценарии, соответствующие возрасту, без повторных попыток.

### Панама (SIB — Tribunal Electoral)

Панама использует биометрическую валидацию по реестру SIB (Servicio de Identificación Biométrica), управляемому Tribunal Electoral. При возникновении технической ошибки SIB сессия автоматически переключается на поиск 1×1.

| Детализированный код | Стандартный результат | Значение |
| :- | :- | :- |
| `601` | `REGISTRY_UNAVAILABLE` | Оператор отсутствует в базе данных. |
| `602` | `MINOR_BLOCKED` | Гражданину меньше 12 лет. |
| `603` | `DECEASED` | Гражданин числится умершим. |
| `604` | `NO_MATCH` | У гражданина недействительная регистрация. |
| `605` | `NO_MATCH` | Гражданин не распознан. |
| `606` | `INVALID_INPUT` | Поле cédula не заполнено. |
| `607` | `DOCUMENT_NOT_FOUND` | Гражданин не найден. |
| `608` | `REGISTRY_ERROR` | Нет доступа к SIB для данного клиента. |
| `610` | `BIOMETRIC_IMAGE_UNUSABLE` | Общая ошибка верификации лица. |
| `611` | `BIOMETRIC_IMAGE_UNUSABLE` | Изображение для сравнения не отправлено. |
| `612` | `BIOMETRIC_IMAGE_UNUSABLE` | Изображение не содержит данных. |
| `613` | `BIOMETRIC_IMAGE_UNUSABLE` | Неверный формат изображения. |
| `614` | `BIOMETRIC_IMAGE_UNUSABLE` | На изображении не обнаружено лицо. |
| `615` | `BIOMETRIC_NO_MATCH` | Порог сходства не достигнут. |

### Другие поддерживаемые страны

Перечисленные ниже страны возвращают только стандартные коды результатов — детализированные коды по странам для них отсутствуют.

* **Боливия, Венесуэла, Гватемала, Гондурас, Колумбия, Коста-Рика, Парагвай, Сальвадор, Испания, Уругвай** — поиск 1×1 по соответствующему реестру актов гражданского состояния. Результаты напрямую сопоставляются с `MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT` или `REGISTRY_UNAVAILABLE`.
* **Чили (Registro Civil)** — поиск по RUT. Сопоставляется со стандартными результатами, а также с `MINOR_BLOCKED`, когда реестр помечает запись как принадлежащую несовершеннолетнему.
* **Доминиканская Республика (JCE)** — поиск по cédula, возвращающий логическое значение действительности; сопоставляется с `MATCH` или `NO_MATCH`.
* **Эквадор (Registro Civil)** — поиск по cédula.
* **Мексика (RENAPO, а также INE для 2×2)** — поиск CURP через RENAPO. Если `validation_type` имеет значение `two_by_two`, выполняется дополнительная перекрёстная сверка с INE; результаты обоих методов преобразуются в одни и те же стандартные коды результатов.
* **Перу (RENIEC)** — поиск по DNI.

## Пример обработки

Простейший надёжный обработчик выглядит следующим образом:

```typescript theme={null}
switch (result.outcome_code) {
  case "MATCH":
    return approve();
  case "PARTIAL_MATCH":
    return review();
  case "NO_MATCH":
  case "DOCUMENT_NOT_FOUND":
  case "DECEASED":
  case "MINOR_BLOCKED":
  case "BIOMETRIC_NO_MATCH":
    return decline();
  case "INVALID_DOCUMENT_FORMAT":
  case "INVALID_INPUT":
    return askUserToFixInput(result.outcome_detail);
  case "BIOMETRIC_IMAGE_UNUSABLE":
    return askUserToRetakeSelfie();
  case "REGISTRY_UNAVAILABLE":
  case "REGISTRY_ERROR":
    return review();  // Didit already retried; a human can decide.
  default:
    return review();
}
```

> [!NOTE]
>
> Вам не нужно ветвить бизнес-логику на основе `outcome_detail` — используйте его для аналитики, отладки и тикетов в службу поддержки. Стандартный `outcome_code` гарантированно остаётся стабильным между странами и во времени.

## См. также

* [Предупреждения проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md) — теги предупреждений на уровне сессии (`COULD_NOT_PERFORM_DATABASE_VALIDATION`, `DATABASE_VALIDATION_PARTIAL_MATCH`, `DATABASE_VALIDATION_NO_MATCH`) и настройка действий проверки или отклонения в приложении.
* [Отчёт о проверке по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-report.md) — полная структура ответа и расположение полей `outcome_code` / `outcome_detail`.
* [Поддерживаемые страны для проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/database-validation-supported-countries.md) — полный список стран и методов сопоставления.


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