> ## 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: от SIGNATURE_DECLINED до SIGNATURE_DOCUMENT_CHANGED, их триггеры и правила.

Шаг [Электронная подпись](https://docs.didit.me/ru/core-technology/electronic-signature/overview.md) создаёт предупреждение, когда подписант не может или отказывается подписать: он отклоняет подписание, исчерпывает лимит кодов, не может быть сопоставлен с верифицированной личностью, либо документ больше не совпадает с тем, что ему показывали. Каждое предупреждение останавливает подписание этим лицом, поэтому подписанный документ для него не выпускается. То, как предупреждение влияет на решение, определяете вы.

## Обзор

Предупреждение появляется в двух местах:

* В элементе массива `signatures[]`, соответствующем подписанту, как `{ "code": "SIGNATURE_DECLINED", "node_id": "feature_signature" }` в `warnings[]`. См. [Отчёт по электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md).
* В истории активности сессии с тегом функции `SIGNATURE`, с соответствующими заголовком и описанием. Консоль отображает его на вкладке сессии **Подпись**, а `additional_data.signature_id` указывает на подписанта.

Каждый код сопоставляется с правилом. Задайте для правила значение `DECLINE`, `REVIEW` или `NO_ACTION` для каждого шага сценария на вкладке **Правила** в консоли или в [конфигурации](https://docs.didit.me/ru/management-api/workflows/feature-configs.md#электронная-подпись) шага. Правило определяет решение `verdict` подписанта (`Declined`, `In Review` или `Approved`) и уровень критичности предупреждения (`error`, `warning` или `information`). Пользовательские правила статусов для данного шага применяются после этого.

> [!WARNING]
>
> Правило определяет итоговое решение, а не то, подписаны ли документы. Значение `NO_ACTION` позволяет продолжить сценарий, однако подписант всё ещё не подписал документ. Прежде чем полагаться на подпись, убедитесь, что `status` равен `signed`.

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

| Код | Когда создаётся | Правило и значение по умолчанию |
| - | - | - |
| `SIGNATURE_DECLINED` | Подписант отказался от подписания. Подписанная копия не выпускается, и списания не производятся. | `signature_declined_action`, по умолчанию `REVIEW` |
| `SIGNATURE_OTP_FAILED` | Подписант ввёл неверный код 3 раза или запросил более 5 кодов. | `signature_otp_failed_action`, по умолчанию `DECLINE` |
| `SIGNATURE_NAME_MISMATCH` | KYB: имя, указанное для ключевого лица, не совпадает с его верифицированным именем без учёта регистра и пробелов. | `signature_name_mismatch_action`, по умолчанию `DECLINE` |
| `SIGNATURE_IDENTITY_NOT_VERIFIED` | У подписанта нет одобренной верификации личности с именем, проверка живости в его сессии не одобрена либо верификация личности изменилась после того, как подписант начал процесс. | `signature_identity_not_verified_action`, по умолчанию `DECLINE` |
| `SIGNATURE_DOCUMENT_CHANGED` | Документ больше не совпадает с хешем SHA-256, зафиксированным при его отображении подписанту. | `signature_document_changed_action`, по умолчанию `DECLINE` |

Проверки личности и имени выполняются, когда подписант запрашивает свой код, и повторно при его вводе, поэтому данные предупреждения возникают именно в этот момент, а не при открытии шага.

## Отклонённые подписания можно открыть заново

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

## Проблемы, с которыми сталкивается подписант

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

| Ситуация | Что происходит |
| - | - |
| Срок действия ссылки на подписание истёк | Шаг нельзя открыть или завершить после наступления времени `expires_at`. Ссылка действует в течение `signature_link_validity_days` с момента создания сессии. |
| Срок действия кода истёк | Коды действительны 5 минут. Подписант запрашивает новый код. |
| Новый код запрошен слишком быстро | Подписант должен подождать 60 секунд между запросами кодов. |
| Нет верифицированного контакта | Код отправляется только на адрес электронной почты или телефон, верифицированный ранее в этой сессии. Добавьте проверку электронной почты или проверку телефона перед шагом подписи. |
| Обязательное поле не заполнено | Подписант не может завершить оформление документа, пока не заполнит каждое обязательное поле. Интерфейс показывает, сколько полей осталось, и переходит к первому из них. |
| Значение поля отклонено | Значение, нарушающее [валидацию](https://docs.didit.me/ru/core-technology/electronic-signature/overview.md#валидация) поля (например, слишком длинное или не являющееся числом), отклоняется, и интерфейс объясняет причину. |
| Слишком старая версия приложения для поддержки полей | Релиз нативного SDK без поддержки полей не может отобразить документ с полями, и шаг выдаёт ошибку. Документы без полей продолжают работать. См. [Процесс подписания](https://docs.didit.me/ru/core-technology/electronic-signature/overview.md#процесс-подписания). |

## Пример

```json theme={null}
{
  "signatures": [
    {
      "id": "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
      "node_id": "feature_signature",
      "status": "declined",
      "verdict": "In Review",
      "warnings": [
        { "code": "SIGNATURE_DECLINED", "node_id": "feature_signature" }
      ],
      "declined_at": "2026-11-03T10:41:40.320Z",
      "declined_action": "REVIEW",
      "signed_at": null,
      "certificate": null,
      "timestamp": null,
      "evidence_file": null
    }
  ]
}
```

В примере показаны только поля, которые изменяются. Все остальные поля [объекта подписи](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md#объект-подписи) сохраняются.

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

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

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

* [Обзор электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/overview.md)
* [Отчёт по электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md)
* [Конфигурации функций сценария](https://docs.didit.me/ru/management-api/workflows/feature-configs.md#электронная-подпись)


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