> ## 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 при проверке электронной почты: утечки данных, одноразовые адреса, недоставляемость, списки блокировки и лимиты OTP.

Функция «Проверка электронной почты» генерирует **предупреждения**, когда срабатывает сигнал риска в процессе OTP или в отношении самого адреса: известная утечка данных, сервис одноразовой почты, недоставляемый почтовый ящик, исчерпание лимита попыток ввода OTP либо совпадение с вашим списком блокировки или другой одобренной верификацией. На этой странице перечислены все коды, условия их срабатывания и способы настройки реакции сценария.

## Обзор

Предупреждения помечены функцией `EMAIL`. Они отображаются в отчёте в `email_verifications[].warnings[]` и имеют стандартную структуру [объекта предупреждения](https://docs.didit.me/ru/reference/data-models.md#объект-предупреждения) (`feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description`, `node_id`). Каждое предупреждение также передаётся в журнал сессии и отображается в Business Console в разделе Email.

Некоторые предупреждения служат триггерами **строгого автоматического отклонения** — они всегда переводят статус функции в `Declined` и содержат `log_type: "error"`. Остальные соответствуют **настраиваемому действию** (`DECLINE`, `REVIEW` или `NO_ACTION` по умолчанию), определяемому для узла сценария или для каждого вызова API, поэтому один и тот же код риска может приводить к отклонению в одном сценарии и лишь формировать отметку в другом. Настроенное действие также определяет уровень серьезности: `DECLINE` → `error`, `REVIEW` → `warning`, `NO_ACTION` → `information`.

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

Следующие предупреждения всегда приводят к отклонению шага «Проверка электронной почты» независимо от конфигурации:

* `EMAIL_CODE_ATTEMPTS_EXCEEDED` — пользователь исчерпал лимит OTP: 2 неверных ввода кода (`email_max_check_attempts`) или 2 отправки OTP — первоначальная отправка плюс одна повторная (`email_max_retries`) — по умолчанию.
* `EMAIL_IN_BLOCKLIST` — адрес находится в списке блокировки, управляемом через [Lists API](https://docs.didit.me/ru/management-api/lists/overview.md), либо адрес совпал с адресом из ранее одобренной верификации электронной почты, который был добавлен в список блокировки.
* `UNDELIVERABLE_EMAIL_DETECTED` — адрес не может принимать почту: некорректный синтаксис, несуществующий домен, отсутствие DNS-записей (MX) или невозможность доставить письмо с OTP. Шаг немедленно завершается со статусом `Declined` — проверка кода даже не запускается. Исключение: если пользователь ввёл адрес самостоятельно (он не был предзаполнен при создании сессии), неудачная отправка возвращает ошибку в интерфейсе, позволяя попробовать другой адрес вместо отклонения.

## Настраиваемые риски

Каждый из следующих рисков сопоставлен с параметром (для узла сценария или для каждого вызова отдельного [endpoint проверки](https://docs.didit.me/ru/standalone-apis/email-check.md)), для которого можно задать значение `DECLINE`, `REVIEW` или `NO_ACTION`:

| Настройка | Код риска | Поведение по умолчанию |
| - | - | - |
| `breached_email_action` | `BREACHED_EMAIL_DETECTED` | `NO_ACTION` — отображение сведений об утечке на уровне `information` без изменения статуса. |
| `disposable_email_action` | `DISPOSABLE_EMAIL_DETECTED` | `NO_ACTION` — отметка сервиса одноразовой почты на уровне `information` без изменения статуса. |
| `duplicated_email_action` | `DUPLICATED_EMAIL` | `NO_ACTION` — фиксация дубликата на уровне `information`. Пропускается, если адрес находится в списке разрешённых. |

Обнаружение дубликатов учитывает только **ранее одобренные** верификации почты в рамках того же приложения, сгруппированные по `vendor_data`: верификации с одинаковым значением `vendor_data` считаются одним конечным пользователем и исключаются. Оставьте `vendor_data` пустым, и каждая сессия будет считаться отдельным пользователем. Если адрес находится в вашем списке разрешённых адресов электронной почты, действие для дубликатов пропускается и вместо него генерируется `EMAIL_IN_ALLOWLIST`.

## Лимиты попыток верификации

Функция «Проверка электронной почты» применяет жёсткий лимит на попытки OTP для предотвращения злоупотреблений:

* **Попытки ввода кода** — `email_max_check_attempts`, по умолчанию **2**: второй неверный (или истёкший) код завершает шаг.
* **Попытки отправки** — `email_max_retries`, по умолчанию всего **2** отправки (первоначальная отправка плюс одна повторная): запрос следующей повторной отправки завершает шаг.

Превышение любого из лимитов вызывает `EMAIL_CODE_ATTEMPTS_EXCEEDED` и приводит к автоматическому отклонению. Оба лимита можно настроить для каждого узла сценария.

## Создаваемые предупреждения

| Тег | Серьёзность | Описание |
| - | - | - |
| `EMAIL_CODE_ATTEMPTS_EXCEEDED` | `error` | Пользователь превысил лимит на ввод кода или количество отправок. Проверка автоматически отклоняется. |
| `EMAIL_IN_BLOCKLIST` | `error` | Адрес находится в списке блокировки, созданном через [Lists API](https://docs.didit.me/ru/management-api/lists/overview.md), или совпадает с адресом из одобренной верификации, внесённой в список блокировки. Проверка автоматически отклоняется. `additional_data` содержит `blocklisted_session_id`, `blocklisted_session_number` и `api_service` (все со значением `null` при прямом совпадении со списком). |
| `EMAIL_IN_ALLOWLIST` | `information` | Адрес совпал со списком разрешений, созданным через [Lists API](https://docs.didit.me/ru/management-api/lists/overview.md), поэтому действие для дублирующегося адреса электронной почты было пропущено. |
| `BREACHED_EMAIL_DETECTED` | Согласно `breached_email_action` (по умолчанию `information`) | Адрес был обнаружен в одной или нескольких известных утечках данных. Массив `breaches[]` в отчёте содержит сервис, в котором произошла утечка, дату и категории данных. |
| `DISPOSABLE_EMAIL_DETECTED` | Согласно `disposable_email_action` (по умолчанию `information`) | Домен принадлежит известному сервису одноразовой / временной почты, часто используемому для сокрытия следов. |
| `UNDELIVERABLE_EMAIL_DETECTED` | `error` | Адрес не может принимать почту (неверный синтаксис, несуществующий домен, отсутствие MX-записей или сбой доставки). Проверка автоматически отклоняется. |
| `DUPLICATED_EMAIL` | Согласно `duplicated_email_action` (по умолчанию `information`) | Адрес совпадает с ранее одобренной проверкой электронной почты другого конечного пользователя (сгруппировано по `vendor_data`). `additional_data` содержит `duplicated_session_id`, `duplicated_session_number` и `api_service`. |

За одну попытку срабатывает максимум одно из предупреждений `EMAIL_IN_BLOCKLIST`, `DUPLICATED_EMAIL` и `EMAIL_IN_ALLOWLIST`: список блокировки имеет приоритет над дубликатом, который, в свою очередь, имеет приоритет над списком разрешений.

## Совпадения между сессиями

Когда адрес обнаруживается в ранее одобренных проверках электронной почты или в вашем списке блокировки, эти совпадения также отображаются в `email_verifications[].matches[]` (не более 5 записей). Каждое совпадение содержит `session_id`, `session_number`, `vendor_data`, `verification_date`, `email`, `status`, `is_blocklisted`, `api_service`, а также `source` со значением `session` (другая одобренная верификация) или `list_entry` (запись из списка блокировки). Если текущий адрес находится в вашем списке разрешений для электронной почты, Didit сохраняет сведения о совпадении, но генерирует `EMAIL_IN_ALLOWLIST` вместо применения действия для дублирующегося адреса электронной почты. Полную схему совпадений см. в [отчёте «Проверка электронной почты»](https://docs.didit.me/ru/core-technology/email-verification/report-email-verification.md#совпадения-между-сессиями).

## Пример

```json theme={null}
{
  "warnings": [
    {
      "feature": "EMAIL",
      "risk": "EMAIL_IN_BLOCKLIST",
      "additional_data": {
        "blocklisted_session_id": null,
        "blocklisted_session_number": null,
        "api_service": null
      },
      "log_type": "error",
      "short_description": "Email in blocklist",
      "long_description": "The system detected that the email is in the blocklist, which is not allowed.",
      "node_id": "feature_email_1"
    },
    {
      "feature": "EMAIL",
      "risk": "DISPOSABLE_EMAIL_DETECTED",
      "additional_data": null,
      "log_type": "information",
      "short_description": "Disposable email detected",
      "long_description": "The system detected that the email is disposable, which is not allowed.",
      "node_id": "feature_email_1"
    }
  ]
}
```

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

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

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

* [Обзор проверки электронной почты](https://docs.didit.me/ru/core-technology/email-verification/overview.md) — работа функции и цены.
* [Отчёт проверки электронной почты](https://docs.didit.me/ru/core-technology/email-verification/report-email-verification.md) — полная структура ответа, включая `lifecycle[]` и `matches[]`.
* [Модели данных — проверка электронной почты](https://docs.didit.me/ru/reference/data-models.md#проверка-электронной-почты) — каноническая схема с описанием каждого поля.
* [Management API — Lists](https://docs.didit.me/ru/management-api/lists/overview.md) — управление списком блокировки электронной почты, используемым правилом `EMAIL_IN_BLOCKLIST`.


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