GET /v3/session/<id>/decision/ и каждым webhook’ом Didit.
Все значения статусов
Каждый статус представляет собой точную строку, которую возвращают API и webhook’и Didit. Всегда используйте строгое сравнение строк (например,
=== "In Review") в своём коде: эти значения чувствительны к регистру и содержат пробелы. Значение Kyc Expired также написано с одной заглавной буквой K (а не KYC).Статусы сессий
Не начата ("Not Started")
Не начата ("Not Started")
API-значение:
"Not Started"Сессия создана через API, но пользователь ещё не открыл ссылку на верификацию.- Что делать: Дождитесь, пока пользователь начнёт верификацию, или отправьте напоминание, если прошло много времени.
- Переходит в:
"In Progress","Expired"
В процессе ("In Progress")
В процессе ("In Progress")
API-значение:
"In Progress"Пользователь открыл ссылку и активно выполняет шаги верификации (съёмка документа, проверка живости и т. д.).- Что делать: Действий не требуется: пользователь проходит процесс.
- Переходит в:
"Approved","Declined","In Review","Abandoned"
Одобрена ("Approved")
Одобрена ("Approved")
API-значение:
"Approved"Все проверки успешно пройдены. Личность пользователя подтверждена.- Что делать: Предоставьте пользователю доступ, обновите его профиль и сохраните данные решения.
- Webhook содержит: Полный объект
decisionсо всеми результатами функций. - Переходит в:
"Kyc Expired"(когда истекает срок действия подтверждённого документа). Это поведение по умолчанию, если для этой страны и типа документа Expiration mode не установлен в Allow expired. Проверяющий или эндпоинт обновления статуса также может перевести сессию в"Declined"или"Resubmitted".
Отклонена ("Declined")
Отклонена ("Declined")
API-значение:
"Declined"Одна или несколько проверок завершились с ошибкой. Пользователь не прошёл верификацию.- Что делать: Уведомите пользователя. При возможности исправить проблему можно запросить повторную отправку.
- Webhook содержит: Полный объект
decisionс предупреждениями, которые объясняют причину ошибки. - Переходит в:
"Resubmitted"(если проверяющий запросит повторную отправку). Проверяющий или эндпоинт обновления статуса также может перевести сессию в"Approved".
На проверке ("In Review")
На проверке ("In Review")
API-значение:
"In Review"Автоматические проверки выявили предупреждения, которые требуют проверки человеком. Окончательное решение должен принять проверяющий по вопросам комплаенса.- Что делать: Проверяющий должен открыть сессию в Консоли и одобрить, отклонить или запросить повторную отправку.
- Webhook содержит: Полный объект
decisionс предупреждениями. - Переходит в:
"Approved","Declined","Resubmitted"
Ожидает пользователя ("Awaiting User")
Ожидает пользователя ("Awaiting User")
API-значение:
"Awaiting User"Используется в KYB-сессиях (верификация бизнеса), когда на шаге Key People отправлен список участников и созданы дочерние KYC- и KYB-сессии. Родительская сессия ждёт, пока все обязательные участники не завершат индивидуальную верификацию.- Что делать: Следите за статусами дочерних KYC-сессий. Когда все обязательные участники завершат проверку (получили статус «Approved», «Declined» или «Expired»), родительская сессия автоматически пересчитает свой итоговый статус.
- Webhook содержит: Текущий список участников и статусы их дочерних сессий.
- Переходит в:
"Approved","Declined","In Review"(когда все дочерние сессии перешли в терминальный статус) - Переходит из:
"In Progress"(после отправки шага Key People) - Примечание: Если дочерняя KYC-сессия отправлена повторно, родительская сессия возвращается в
"Awaiting User"до завершения повторно отправленной сессии. Статус"Declined"у проверки KYB Registry Check имеет приоритет над"Awaiting User".
Требуется повторная отправка ("Resubmitted")
Требуется повторная отправка ("Resubmitted")
API-значение:
"Resubmitted"Проверяющий запросил, чтобы пользователь повторно выполнил определённые шаги верификации (например, переснял размытое фото документа).- Что делать: Дождитесь, пока пользователь повторно выполнит эти шаги. Система автоматически выполнит повторную оценку.
- Webhook содержит: Объект
resubmit_infoсо списком функций для повторного выполнения и причинами. - Переходит в:
"Approved","Declined","In Review"или"Abandoned", если срок сессии истекает до того, как пользователь повторно выполнит шаги.
Истекла ("Expired")
Истекла ("Expired")
API-значение:
"Expired"Сессия истекла до того, как пользователь открыл ссылку на верификацию.- Что делать: Создайте новую сессию и отправьте пользователю новую ссылку.
- Терминальный статус: дальнейших переходов нет.
Прервана ("Abandoned")
Прервана ("Abandoned")
API-значение:
"Abandoned"Пользователь начал верификацию, но не завершил её в отведённое время.- Что делать: Отправьте напоминание или создайте новую сессию.
- Автоматических переходов нет. Проверяющий или
PATCH /v3/session/{sessionId}/update-status/по-прежнему может перевести сессию в"Approved","Declined"или"Resubmitted".
Истёк срок действия KYC ("Kyc Expired")
Истёк срок действия KYC ("Kyc Expired")
API-значение:
"Kyc Expired"Срок действия документа, проверенного в ходе сессии, истёк. Триггером является эта дата, а не период, отсчитываемый от одобрения, и предупреждение заранее не отправляется.- Что делать: Попросите пользователя пройти повторную верификацию в новой сессии.
status.updatedпередаёт этот переход, а результат верификации личности содержит предупреждениеDOCUMENT_EXPIRED. - Управляется: Expiration mode для этой страны и типа документа в ID verification → Additional settings by country & document type. Reject expired (по умолчанию) отслеживает документ, а Allow expired означает, что сессия никогда сюда не переходит.
- Автоматических переходов нет. Проверяющий или
PATCH /v3/session/{sessionId}/update-status/по-прежнему может перевести сессию в"Approved","Declined"или"Resubmitted".
Переходы статусов
Диаграмма жизненного цикла
Терминальные и нетерминальные статусы
Обработка статусов в вашем коде
Используйте webhook или API получения сессии, чтобы реагировать на изменения статусов.Повторная отправка
Статус Resubmitted позволяет вашей команде комплаенса дать пользователям вторую попытку без создания новой сессии.1
Проверяющий инициирует повторную отправку
В консоли откройте сессию в статусе
In Review или Declined и нажмите Запросить повторную отправку. Выберите шаги, которые нужно пройти заново.2
Предыдущие данные архивируются
Система сбрасывает выбранные функции и помечает прежние данные как
previous_attempt, сохраняя полный журнал аудита.3
Пользователь получает уведомление
Если доступен email, пользователь получает локализованное письмо с прямой ссылкой для продолжения.
4
Пользователь повторяет определённые шаги
Пользователь повторяет только помеченные шаги, а не всю верификацию.
5
Система проводит повторную оценку
По завершении сессия автоматически переходит в статус
"Approved", "Declined" или "In Review".Payload webhook повторной отправки
reasons сопоставляет каждый повторно отправленный node_id с кодом предупреждения наиболее релевантного лога по этому шагу (те же коды, что возвращает решение), чтобы вы могли сопоставить его с собственной формулировкой. Этот же код экран повторной отправки размещённого сценария и письмо о повторной отправке локализуют для пользователя, за исключением предупреждений, которые раскрыли бы сигнал скрининга или мошенничества (дубликаты, AML, список блокировки, проверки между организациями, достоверность местоположения и подобные). В этих случаях пользователь видит обобщённую причину, а resubmit_info.reasons в вашем webhook всегда содержит реальный код. Для шага, по которому не зафиксировано предупреждение, записи нет.
Какие функции можно повторно отправить?
Любую функцию с неодобренным статусом: Declined, In Review, Not Finished, Not Started или Expired.Лучшие практики
Следите за статусом «На проверке»
Настройте оповещения (по электронной почте или в Slack) в вашей консоли Didit, чтобы получать уведомление, когда сессии требуют ручной проверки.
Предпочитайте повторную отправку
Если проблему можно исправить (размытое фото, неверная сторона документа), запросите повторную отправку вместо отклонения. Это повышает конверсию.
Отслеживайте отток
Высокая доля прерванных и истекших сессий может указывать на трудности в UX. Рассмотрите возможность изменить TTL сессии или улучшить подсказки для пользователя.
Идемпотентные обработчики
webhook-вызовы могут повторяться. Используйте
session_id в качестве уникального ключа, чтобы обрабатывать каждое изменение статуса только один раз.