> ## 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: коды LOW_LIVENESS_SCORE, атаки на лицо, списки блокировки и пороги.

Биометрическая аутентификация сочетает проверку живости с опциональным сравнением лиц 1:1 с эталонным лицом, определённым при создании сессии (переданное изображение `portrait_image` или сохранённое лицо пользователя, найденное по `vendor_data`). Каждый шаг генерирует собственные предупреждения в payload решения V3. На этой странице перечислены все коды, места их появления и то, как пороги преобразуются в итоговый статус сессии.

## Обзор

При выполнении сессии биометрической аутентификации Didit:

* Снимает живое селфи с помощью 3D Action, Flash или Passive Liveness (`method`: `ACTIVE_3D`, `FLASHING` или `PASSIVE`).
* Извлекает самое крупное лицо из снимка и оценивает его живость.
* Если сценарий включает Сравнение лиц, сравнивает полученное лицо с эталонным лицом сессии (переданным `portrait_image` или сохранённым лицом пользователя).
* Записывает результат каждого шага, а также любые предупреждения в решение по сессии.

Предупреждения сохраняют общую структуру [объекта предупреждения](https://docs.didit.me/ru/reference/data-models.md#объект-предупреждения), используемую на всей платформе: `feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description` и `node_id`.

## Где появляются предупреждения

| Ключ в ответе с решением | Тег функции в предупреждении | Когда срабатывает |
| - | - | - |
| `liveness_checks[].warnings[]` | `LIVENESS` | Оценка живости, качество лица, освещённость, несколько лиц, а также проверки по списку блокировки, списку разрешений и на дубликаты лиц. |
| `face_matches[].warnings[]` | `FACEMATCH` | Сравнение лиц с эталонным лицом сессии (переданным `portrait_image` или сохранённым лицом пользователя). |

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

## Условия автоматического отклонения

Следующие предупреждения всегда приводят к отклонению шага (`log_type: "error"`) независимо от настроек сценария:

| Риск | Функция | Почему отклоняется автоматически |
| - | - | - |
| `FACE_IN_BLOCKLIST` | `LIVENESS` | Лицо совпало с записью в вашем списке блокировки лиц. |
| `NO_FACE_DETECTED` | `LIVENESS` | Во время съёмки для проверки живости лицо не обнаружено или пользователь исчерпал лимит повторных попыток съёмки. |
| `LIVENESS_FACE_ATTACK` | `LIVENESS` | Обнаружена атака предъявления (маска, воспроизведение с экрана, спуфинг с использованием дипфейка). |
| `NO_REFERENCE_IMAGE` | `FACEMATCH` | Нет доступного эталонного изображения для проведения сравнения. При срабатывании этого предупреждения `LOW_FACE_MATCH_SIMILARITY` подавляется. |

При срабатывании `NO_FACE_DETECTED` предупреждение `LOW_LIVENESS_SCORE` подавляется (нет лица для оценки).

## Настраиваемые пороги и действия

Эти предупреждения оцениваются, а затем сопоставляются со статусом с помощью порогов и действий, которые вы задаёте для каждого сценария:

| Риск | Функция | Настраиваемое поведение |
| - | - | - |
| `LOW_LIVENESS_SCORE` | `LIVENESS` | Оценка на уровне или ниже порога проверки → `In Review`; на уровне или ниже порога отклонения → `Declined`. |
| `LOW_FACE_MATCH_SIMILARITY` | `FACEMATCH` | Оценка на уровне или ниже порога проверки (по умолчанию 70) → `In Review`; на уровне или ниже порога отклонения (по умолчанию 50) → `Declined`. |
| `LOW_FACE_QUALITY` | `LIVENESS` | Порог проверки (по умолчанию 15) → `In Review`; порог отклонения (по умолчанию 0, то есть отклонение отключено) → `Declined`. Только Passive Liveness. |
| `LOW_FACE_LUMINANCE` | `LIVENESS` | Ниже минимального порога освещённости (по умолчанию 20): Без действия / Проверка (по умолчанию) / Отклонение. Только Passive Liveness. |
| `HIGH_FACE_LUMINANCE` | `LIVENESS` | Выше максимального порога освещённости (по умолчанию 80): Без действия / Проверка (по умолчанию) / Отклонение. Только Passive Liveness. |
| `MULTIPLE_FACES_DETECTED` | `LIVENESS` | Без действия (по умолчанию) / Проверка / Отклонение при обнаружении более одного лица. Только Passive Liveness. |
| `DUPLICATED_FACE` / `POSSIBLE_DUPLICATED_FACE` | `LIVENESS` | Одно общее действие для дубликатов лиц: Без действия (по умолчанию) / Проверка / Отклонение при совпадении с одобренными или импортированными лицами других пользователей. |
| `DUPLICATED_FACE_NAME_MISMATCH` | `LIVENESS` | Собственное действие (`face_liveness_duplicated_face_name_mismatch_action`): Без действия / Проверка (по умолчанию) / Отклонение. Генерируется вместе с `DUPLICATED_FACE`, когда личность, связанная с найденной сессией, не соответствует имени, определённому для этой сессии — см. [Предупреждения проверки живости](https://docs.didit.me/ru/core-technology/liveness/warnings-liveness.md#межсессионное-сравнение-лиц). |

`POSSIBLE_FACE_IN_BLOCKLIST` (`LIVENESS`) **не** настраивается — менее уверенное совпадение со списком блокировки всегда направляется на проверку (`log_type: "warning"`).

## Повторные попытки съёмки

Ошибки, вызванные только устранимыми рисками качества съёмки (низкая оценка, отсутствие лица, качество, освещённость, несколько лиц, а также низкая схожесть при сравнении лиц), запускают цикл повторных попыток до фиксации статуса: пользователю предоставляется всего до `face_liveness_max_attempts` / `face_match_max_attempts` попыток (по умолчанию 3, настраивается от 2 до 5 для каждого узла сценария). Когда лимит исчерпан, применяется рассчитанный статус последней попытки, а в журнал записывается `LIVENESS_MAX_ATTEMPTS_EXCEEDED` или `FACE_MATCH_MAX_ATTEMPTS_EXCEEDED` с типом журнала `information`.

## Предупреждения проверки живости

API возвращает именно эти строки `short_description` и `long_description`:

| `risk` | `short_description` | `long_description` |
| - | - | - |
| `LOW_LIVENESS_SCORE` | Low liveness score | Проверка живости завершилась низкой оценкой, что указывает на возможное использование неживого изображения лица или низкое качество биометрических данных. |
| `NO_FACE_DETECTED` | No Face Detected in liveness | Системе не удалось распознать лицо во время проверки живости, что может быть вызвано низким качеством изображения, неправильным положением или техническими проблемами. |
| `LIVENESS_FACE_ATTACK` | Liveness Face Attack | Система обнаружила потенциальную попытку обойти проверку живости. |
| `FACE_IN_BLOCKLIST` | Face in blocklist | Система обнаружила лицо в списке блокировки; верификация этого лица запрещена. |
| `POSSIBLE_FACE_IN_BLOCKLIST` | Possible face in blocklist | Система обнаружила возможное лицо в списке блокировки; верификация этого лица запрещена. |
| `FACE_IN_ALLOWLIST` | Face in allowlist | Лицо совпало со списком разрешенных лиц приложения, поэтому действия при обнаружении дубликатов лиц для этого сигнала были пропущены. |
| `POSSIBLE_FACE_IN_ALLOWLIST` | Possible face in allowlist | Лицо предположительно совпало со списком разрешенных лиц приложения, поэтому действия при обнаружении возможных дубликатов лиц для этого сигнала были пропущены. |
| `DUPLICATED_FACE` | Duplicated face from other approved session | Система обнаружила дубликат лица из другой одобренной сессии, что требует дополнительного рассмотрения. |
| `POSSIBLE_DUPLICATED_FACE` | Possible duplicated face from other approved session | Система обнаружила возможный дубликат лица из другой одобренной сессии, что требует дополнительного рассмотрения. |
| `DUPLICATED_FACE_NAME_MISMATCH` | Duplicated face under a different name | То же лицо уже было одобрено в другой сессии, но под другим именем. Личность дубликата не совпадает с личностью, заявленной в текущей сессии, что является серьезным признаком мошенничества с идентификационными данными. |
| `MULTIPLE_FACES_DETECTED` *(только для пассивной проверки)* | Multiple faces detected | На изображении проверки живости обнаружено несколько лиц. Система использует самое крупное лицо для проверки живости и сравнения лиц, однако наличие нескольких лиц может потребовать дополнительной проверки. |
| `LOW_FACE_QUALITY` *(только для пассивной проверки)* | Low face quality | Качество изображения лица ниже допустимого порога, что может повлиять на надежность проверки живости. Причиной могут быть разрешение камеры, фокусировка или артефакты сжатия. |
| `LOW_FACE_LUMINANCE` *(только для пассивной проверки)* | Low face luminance | Изображение лица слишком темное, что может повлиять на точность проверки живости. Рекомендуется улучшить освещение. |
| `HIGH_FACE_LUMINANCE` *(только для пассивной проверки)* | High face luminance | Изображение лица слишком яркое или переэкспонированное, что может повлиять на точность проверки живости. Рекомендуется снизить уровень освещения или избегать прямого света. |
| `LIVENESS_MAX_ATTEMPTS_EXCEEDED` | Maximum liveness attempts exceeded | Достигнуто максимальное количество попыток захвата для проверки живости. Применен расчетный статус последней попытки (отклонение или проверка). |

Совпадения со списком блокировки, списком разрешений и дубликатами содержат `additional_data` с информацией о совпавшей сессии (`blocklisted_session_id` / `allowlisted_session_id` / `duplicated_session_id`, соответствующий `*_session_number` и `api_service`). В одном отчёте появляется только один из этих шести кодов. Исключением является `DUPLICATED_FACE_NAME_MISMATCH`: он выдается **в дополнение к** `DUPLICATED_FACE`, а не вместо него, когда личность из совпавшей сессии не совпадает с определённым именем в текущей сессии. Поле `additional_data` для него дополняет те же поля сессии-дубликата параметром `name_match_score`. Имя, записанное в разных системах письма в каждой из сессий, не считается несовпадением, если документы, удостоверяющие личность, в обеих сессиях имеют одинаковую страну выдачи, точный номер документа или личный номер, а также непротиворечивую дату рождения. См. раздел [Предупреждения проверки живости](https://docs.didit.me/ru/core-technology/liveness/warnings-liveness.md#межсессионное-сравнение-лиц).

## Предупреждения сравнения лиц

| `risk` | `short_description` | `long_description` |
| - | - | - |
| `LOW_FACE_MATCH_SIMILARITY` | Low face match similarity | Черты лица на предоставленном изображении недостаточно точно совпадают с эталонным изображением, что указывает на возможное несоответствие личности. |
| `NO_REFERENCE_IMAGE` | No source image found for performing face match | Эталонное изображение для сравнения лиц отсутствует, что не позволяет системе завершить процесс сравнения. |
| `FACE_MATCH_MAX_ATTEMPTS_EXCEEDED` | Maximum face match attempts exceeded | Достигнуто максимальное количество попыток захвата для сравнения лиц. Применен расчетный статус последней попытки (отклонение или проверка). |

## Пример — отклонена из-за атаки на проверку живости

```json theme={null}
{
  "liveness_checks": [
    {
      "node_id": "feature_liveness",
      "status": "Declined",
      "method": "ACTIVE_3D",
      "score": 12.40,
      "reference_image": "https://<media-host>/.../reference.jpg",
      "video_url": "https://<media-host>/.../video.mp4",
      "age_estimation": null,
      "matches": [],
      "face_quality": null,
      "face_luminance": null,
      "warnings": [
        {
          "feature": "LIVENESS",
          "risk": "LIVENESS_FACE_ATTACK",
          "additional_data": null,
          "log_type": "error",
          "short_description": "Liveness Face Attack",
          "long_description": "The system detected a potential attempt to bypass the liveness check.",
          "node_id": "feature_liveness"
        }
      ]
    }
  ],
  "face_matches": null
}
```

## Пример — на проверке из-за низкого сходства

```json theme={null}
{
  "face_matches": [
    {
      "node_id": "feature_face_match",
      "status": "In Review",
      "score": 58.70,
      "source_image_session_id": "11111111-2222-3333-4444-555555555555",
      "source_image": "https://<media-host>/.../source.jpg",
      "target_image": "https://<media-host>/.../target.jpg",
      "warnings": [
        {
          "feature": "FACEMATCH",
          "risk": "LOW_FACE_MATCH_SIMILARITY",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "Low face match similarity",
          "long_description": "The facial features of the provided image don't closely match the reference image, suggesting a potential identity mismatch.",
          "node_id": "feature_face_match"
        }
      ]
    }
  ]
}
```

Оценка (58.70) находится между порогом отклонения (по умолчанию 50) и порогом отправки на проверку (по умолчанию 70), поэтому предупреждение имеет `log_type: "warning"`, а статус сравнения лиц — `In Review`. В этом примере предупреждение сработало для сессии с `session_id`, равным `11111111-2222-3333-4444-555555555555`: поле `source_image_session_id` содержит собственный идентификатор сессии, поскольку эталон взят из портрета, сохраненного при создании сессии.

## Типы предупреждений

Каждому риску присваивается тип предупреждения в зависимости от настроек вашего приложения. Предупреждения делятся на три категории серьезности:

## Связанные материалы

> [card] [Отчёт по биометрической аутентификации](https://docs.didit.me/ru/core-technology/biometric-auth/report-biometric-authentication.md)
>
> Где находятся `liveness_checks[]` и `face_matches[]` в решении V3.

> [card] [Предупреждения проверки живости](https://docs.didit.me/ru/core-technology/liveness/warnings-liveness.md)
>
> Полный справочник по предупреждениям проверки живости, включая сопоставление дубликатов лиц.

> [card] [Предупреждения сравнения лиц](https://docs.didit.me/ru/core-technology/face-match/warnings-face-match.md)
>
> Полный справочник по предупреждениям сравнения лиц для сопоставлений 1:1.


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