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

# Статусы мониторинга транзакций (KYT): справочник

> Справочник статусов транзакций, кейсов и Travel Rule в Didit: переходы и значения. 1,000 транзакций в месяц включено, затем $0.001 за каждую.

У раздела «Мониторинг транзакций» есть три отдельные машины состояний: **транзакция**, каждый **кейс** и (где применимо) **проверка Travel Rule**. Эта страница является справочником.

## Статус транзакции

Устанавливается при создании и обновляется на протяжении жизненного цикла.

| Статус | Значение |
| - | - |
| `APPROVED` | Транзакция прошла все правила ниже порога проверки. |
| `IN_REVIEW` | Оценка превысила порог проверки или правило явно потребовало проверки. Нужно внимание аналитика. |
| `DECLINED` | Оценка превысила порог отклонения или правило явно отклонило транзакцию. Транзакция отклонена. |
| `AWAITING_USER` | Пользователь должен выполнить действие, прежде чем транзакция может быть проведена. Didit устанавливает этот статус только через правило: действие `change_status` правила (например, необязательное правило из библиотеки `travel-rule-pending-action`, которое срабатывает на перевод Travel Rule в статусе `ON_HOLD`) либо действие правила, потребовавшее дополнительной верификации (была создана сессия для устранения проблемы). Перевод Travel Rule, которому нужно подтверждение владения кошельком, сам по себе этот статус не устанавливает: транзакция сохраняет статус, который дают ваши правила (обычно `APPROVED`), а блок `action_required` содержит URL подтверждения владения кошельком, когда сессия виджета ожидает завершения. Конкретное действие и URL смотрите в блоке `action_required` транзакции. |

### Переходы

```mermaid theme={null}
stateDiagram-v2
    [*] --> APPROVED: Score < review threshold, no blocking rules
    [*] --> IN_REVIEW: Score >= review threshold
    [*] --> DECLINED: Score >= decline threshold, or rule decline action
    [*] --> AWAITING_USER: Rule action change_status → AWAITING_USER
    IN_REVIEW --> APPROVED: Analyst cleared
    IN_REVIEW --> DECLINED: Analyst declined
    AWAITING_USER --> APPROVED: Remediation session approved
    AWAITING_USER --> DECLINED: Remediation session declined
    AWAITING_USER --> IN_REVIEW: Remediation session ended in review
```

Примечание: вне Travel Rule прямого перехода из `APPROVED` или `DECLINED` в другие состояния нет.
При истечении срока Travel Rule ваш `timeout_outcome` устанавливает `IN_REVIEW` (`HOLD`) или `DECLINED` (`REJECT`) независимо от текущего статуса, а правило, которое срабатывает после перехода Travel Rule, может изменить транзакцию в статусе `APPROVED`.
Для исправлений используйте изменения статуса через консоль; они записываются в журнал аудита.

## Оповещения

Отдельного статуса для оповещений нет.
Открытое оповещение представляет собой транзакцию в статусе `IN_REVIEW` или `AWAITING_USER`, поэтому используйте статусы транзакции, описанные выше.
См. [Оповещения](https://docs.didit.me/ru/transaction-monitoring/alerts.md).

## Статус кейса

Подробности см. в разделе [Управление кейсами](https://docs.didit.me/ru/console/case-management/cases.md).

| Статус | Значение |
| - | - |
| `OPEN` | Идёт активное расследование. |
| `AWAITING_USER` | Ожидаются данные со стороны пользователя. |
| `RESOLVED` | Закрыт с решением: `FALSE_POSITIVE`, `VALID_THREAT`, `INCONCLUSIVE`, `REQUIREMENTS_NOT_MET` или `REQUIREMENTS_SATISFIED`. |

У кейсов есть отдельный **приоритет** (`LOW`, `MEDIUM`, `HIGH`).

## Статус проверки Travel Rule

Переводы виртуальных активов по Travel Rule FATF проходят через отдельный **обмен из 13 состояний**, независимый от статуса транзакции выше.
Исходящий перевод начинается в статусе `AWAITING_COUNTERPARTY`, `NOT_APPLICABLE` (ниже `threshold_amount`), `UNCONFIRMED_OWNERSHIP` (кошелёк контрагента заявлен как некастодиальный), `COMPLETED` или `COUNTERPARTY_MISMATCHED_DATA` (совпадение `INTERNAL` для верифицированного кошелька, в зависимости от совпадения имени), `COUNTERPARTY_VASP_NOT_FOUND` или `COUNTERPARTY_VASP_NOT_REACHABLE`.
Входящий перевод также может начаться в статусе `ON_HOLD` или `NOT_ENOUGH_COUNTERPARTY_DATA`, а регистрация sunrise, которая совпадает с верифицированным кошельком и имеет совпадающее имя получателя или не имеет его, проходит через `COMPLETED` и сразу переходит в `FINISHED`.
Обмен завершается в статусе `FINISHED`, `CANCELLED` или `EXPIRED`.

| Статус | Значение |
| - | - |
| `AWAITING_COUNTERPARTY` | Отправлено контрагенту; ожидается его ответ. Перевод, отправленный по TRUST, остаётся в этом статусе до истечения срока, потому что TRUST не возвращает ничего, что Didit может прочитать. В песочнице приложения перевод уходит на [Didit Test VASP](https://docs.didit.me/ru/transaction-monitoring/travel-rule-sandbox.md), который отвечает внутри Didit по выбранному вами сценарию. |
| `UNCONFIRMED_OWNERSHIP` | Владение кошельком получателя ещё не подтверждено. |
| `ON_HOLD` | Didit устанавливает этот статус только для входящих переводов: регистрация sunrise или входящий запрос `TRP`, кошелёк которого нет в вашей адресной книге (или, для запроса только по имени, имя которого не совпадает с именем ни одного верифицированного владельца), либо входящий запрос `TRP`, требующий вашего ручного решения (автоматическое принятие выключено или автоматический ответ не удалось доставить). Сам по себе статус транзакции он не меняет; необязательное правило библиотеки `travel-rule-pending-action` устанавливает `AWAITING_USER`. Решите вопрос через `POST /v3/transactions/{id}/travel-rule/ownership/`. |
| `COMPLETED` | Данные отправителя и получателя совпали: можно передавать в блокчейн. |
| `FINISHED` | Получен хеш в блокчейне; обмен закрыт. |
| `CANCELLED` | Отменён из незавершённого состояния. |
| `EXPIRED` | Истёк срок подтверждения. Истекает только перевод, который всё ещё находится в `AWAITING_COUNTERPARTY` на момент дедлайна; проверка выполняется каждые 15 минут. Другие статусы по времени никогда не истекают. Ваш `timeout_outcome` применяется к транзакции, и это изменение не отправляет webhook `transaction.status.updated`. |
| `COUNTERPARTY_MISMATCHED_DATA` | Имя получателя не совпало. |
| `COUNTERPARTY_VASP_NOT_FOUND` | Ни один канал не смог определить контрагента. |
| `COUNTERPARTY_VASP_NOT_REACHABLE` | Контрагент определён, но Didit не смог доставить сообщение: его endpoint `TRP` был недоступен или сообщил другой или отсутствующий LEI либо другое имя, либо сетевой канал (GTR, TRUST, VerifyVASP, Sygna Bridge) не смог доставить сообщение. |
| `COUNTERPARTY_VASP_GENERAL_DECLINE` | Контрагент отклонил обмен. |
| `NOT_ENOUGH_COUNTERPARTY_DATA` | Входящий запрос `TRP` не указал получателя ни по имени, ни по адресу кошелька. У него нет срока, а endpoint подтверждения владения не может его обработать, поэтому отмените его с помощью `action: "cancel"`; отправитель не уведомляется. Didit никогда не устанавливает этот статус для исходящего перевода; он появляется там, только если вы записали его сами, и такой перевод можно повторить с помощью `action: "resend"`. |
| `NOT_APPLICABLE` | Ниже `threshold_amount`, поэтому обмен не производился, либо значение, которое вы записали для перевода, не обрабатываемого Didit (Travel Rule отключён, тип транзакции отличается от `travelRule`, или значение устаревшее). |

Старые интеграции могут по-прежнему отправлять устаревшие значения `UNKNOWN`, `COMPLIANT`, `PENDING_ACTION`, `PENDING_COUNTERPARTY`, `FAILED` и `EXEMPT`; Didit автоматически сопоставляет их с состояниями, перечисленными выше.

Авторитетный справочник см. в разделе [Travel Rule](https://docs.didit.me/ru/transaction-monitoring/travel-rule.md#lifecycle).

## Статус результата провайдера

Каждый результат внешнего провайдера (скрининг кошельков, мониторинг фиатных транзакций, скрининг по санкциям) сохраняется со своим статусом. Он отображается в `provider_results[]` в ответе на транзакцию.

| Статус | Значение |
| - | - |
| `PENDING` | Запрос к провайдеру выполняется. |
| `COMPLETED` | Результат успешно получен. |
| `FAILED` | Провайдер вернул ошибку или не ответил вовремя. |
| `SKIPPED` | Провайдер намеренно пропущен (например, сумма транзакции ниже порога). |

## Результаты запуска правил

Каждый `TransactionRuleRun` содержит:

* `matched` (boolean): сработало ли правило?
* `is_test` (boolean): было ли правило в режиме TEST?
* `mode`: `ACTIVE`, `DISABLED` или `TEST` на момент оценки.
* `score_delta`: вклад в оценку (если правило сработало и активно).
* `status_target`: статус, который запросило правило (если действие `change_status`).

См. [Правила](https://docs.didit.me/ru/transaction-monitoring/rules.md) для описания структуры правила.

## Коды причин решения

Частые значения `reason` при переходах между статусами:

| Причина | Значение |
| - | - |
| `rule_score_threshold` | Оценка пересекла порог проверки или отклонения. |
| `rule_change_status` | Действие `change_status` правила принудительно задало статус. |
| `analyst_approved` / `analyst_declined` / `analyst_cleared` | Ручное действие аналитика. |
| `user_action_approved` / `user_action_declined` / `user_action_in_review` | Результат связанной сессии устранения проблемы (действие пользователя, запрошенное в статусе `AWAITING_USER`). |
| `provider_update` | Внешний провайдер обновил результат. |
| `aml_confirmed_sanction` | AML-скрининг подтвердил совпадение с санкционным списком. |
| `blocklist_applicant` / `blocklist_counterparty` | Применение списка блокировки к стороне транзакции. |

## Дальнейшие шаги

> [card] [Скоринг рисков](https://docs.didit.me/ru/transaction-monitoring/risk-scoring.md)
>
> Как оценки соотносятся со статусами.

> [card] [Оповещения](https://docs.didit.me/ru/transaction-monitoring/alerts.md)
>
> Жизненный цикл оповещения.

> [card] [Кейсы](https://docs.didit.me/ru/transaction-monitoring/cases.md)
>
> Жизненный цикл кейса.


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