Didit не присылает email при смене статуса: настройте webhook, чтобы бэкенд узнавал о событии сразу. Проверяйте подпись перед обработкой.

Краткий ответ

Webhook - это HTTP-запрос, который Didit отправляет на ваш URL при изменении. Добавьте назначение в разделе Разработчики → Вебхуки, подпишитесь на нужные события - подстановочного знака нет, перечислите каждое - сохраните секрет подписи и проверяйте подпись, прежде чем что-либо обрабатывать.

Didit не отправляет вам email, когда сессия переходит в In Review или Declined. Чтобы узнавать об изменении статуса в момент, когда оно происходит, не обновляя консоль вручную, настройте webhook - URL на вашем сервере, на который Didit автоматически отправляет обновление.

Webhooks - это рекомендуемый способ интеграции. Опрос endpoint решений работает как запасной вариант, но он медленнее, требует больше запросов и пропускает события, которые доставляются только через webhook, - правки данных, внесённые ревьюером, изменения статуса транзакций и изменения на уровне сущностей.

#Настройка

  1. Разработчики → Вебхуки

    Откройте нужное приложение и среду Live или Sandbox, затем Разработчики и Вебхуки.

  2. Добавьте конечную точку

    Нажмите Добавить конечную точку, укажите HTTPS URL, название и события. Используйте рекомендуемую v3, кроме случаев поддержки старой интеграции. Проверьте и подтвердите.

  3. Сохраните секрет подписи

    У каждой точки свой скрытый секрет подписи. Нажмите Показать и подтвердите личность; через 60 секунд секрет снова скрывается. Сохраните его в настройках сервера. Если кнопка недоступна, обратитесь в поддержку. Разработчики → Вебхуки.

  4. Отправьте тестовое событие

    Подписанное тестовое событие позволяет проверить адрес, подпись и обработку без реальной верификации.

Назначения webhook в консоли Didit с подписанными событиями и историей доставки
У каждого назначения свои подписанные события, секрет подписи и лог доставки.

#На какие события можно подписаться

Подстановочного знака нет - перечисляйте каждое нужное семейство событий. Разнести их по нескольким назначениям - это нормально и часто даже удобнее.

СобытиеСрабатывает, когда
status.updatedМеняется статус сессии KYC или KYB. То, что вам почти наверняка нужно
data.updatedДанные верификации редактируются после создания - например, ревьюер исправляет поле
user.status.updatedКонсолидированный пользователь переходит между ACTIVE, FLAGGED и BLOCKED
user.data.updatedМеняется профиль, счётчики или идентификаторы консолидированного пользователя
business.status.updatedМеняется статус консолидированной компании
business.data.updatedМеняются данные консолидированной компании
transaction.createdТранзакция создана, и по ней готов первоначальный вердикт
transaction.status.updatedСтатус транзакции меняется впоследствии
travel_rule.status.updatedМеняется статус обмена по Travel Rule
Примечание

Событий session.status.updated или kyc.completed не существует. Если вы подписались на название, которого нет в этом списке, вы не получите ничего - и это будет выглядеть в точности как сбой доставки. Сначала проверьте название.

#Что должен делать ваш эндпоинт

  • Проверять подпись раньше всего остального. Считайте HMAC от сырого тела запроса - никогда от пересериализованной версии разобранного JSON, потому что повторная сериализация меняет байты, и подпись перестаёт совпадать. Используйте сравнение за постоянное время.
  • Быстро возвращать 2xx. Тяжёлую работу выполняйте асинхронно, уже после ответа.
  • Быть идемпотентным. Ключом должен быть id события либо связка id сессии + статус + тип webhook. Повторы и дубликаты случаются.
  • Обрабатывать каждый статус, который для вас важен, включая те, что приходят намного позже онбординга - одобренная сессия может позже перейти в In Review из-за постоянного AML-мониторинга.
  • Только HTTPS. Обычные HTTP-эндпоинты не поддерживаются.

#Повторы

При ответах 5xx или 404 Didit повторяет доставку дважды: примерно через минуту, затем через четыре. Тайм-аут после 5 секунд и ошибка соединения не повторяются автоматически. После исправления используйте Повторить в списке доставок. Окончательный сбой вызывает уведомление.

Важно

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

#За файрволом или WAF

Didit доставляет события со статического IP 18.203.201.92 с user agent DiditWebhook/2.0. Если ваш периметр блокирует неизвестных клиентов - как, например, поведение Cloudflare по умолчанию, - разрешите этот IP для принимающего хоста, иначе доставки будут падать, не доходя до вашего кода.

#Ещё нет бэкенда?

Вы всё ещё можете вручную следить за результатами в разделе Verifications консоли, пока не построите его, или использовать ссылку для верификации без кода тем временем.

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

Не нашли ответ? Поговорите с человеком.

Укажите ID организации и ID сессии, о которой спрашиваете.

Связаться с поддержкой