Перейти к основному содержанию
POST
curl
Адреса назначения webhook позволяют отправлять разные события Didit на разные URL. У каждого адреса назначения есть собственные secret_shared_key, webhook_version и список subscribed_events.

Как работает subscribed_events

subscribed_events является обязательным массивом точных названий событий. Didit доставляет webhook на этот адрес назначения только тогда, когда webhook_type в payload совпадает с одним из значений в массиве.
  • Укажите хотя бы одно событие.
  • Используйте только поддерживаемые названия событий из списка ниже.
  • Добавьте каждое событие, которое хотите получать; подстановочного значения вроде * или all не существует.
  • Чтобы направлять разные продуктовые направления в разные системы, создайте несколько адресов назначения с разными списками subscribed_events.

Каталог событий

Семейства событий Investigator (investigator.*) и Authentication (auth.*) также принимаются. Все события и их payload перечислены в разделе Webhooks. Распространённые наборы подписок:
Примеры payload и код для подписи см. в руководстве по webhook.

Авторизации

x-api-key
string
header
обязательно

API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.

Тело

application/json
label
string
обязательно

Понятное имя, отображаемое в Console → Webhooks. Помогает различать адреса назначения, если их несколько (например, «Prod», «Staging mirror»).

Maximum string length: 255
url
string<uri>
обязательно

HTTPS-URL, который будет принимать POST-запросы. Должен быть уникальным среди адресов назначения приложения. Используйте стабильный, защищённый endpoint: Didit выполняет повторные попытки неудавшейся доставки по схеме задержек между повторными попытками.

Maximum string length: 2000
enabled
boolean
по умолчанию:true

Если false, адрес назначения сохраняется, но Didit не отправляет на него никакие webhook. Полезно для staging-конфигураций, которые вы хотите оставить неактивными.

webhook_version
enum<string>

Версия схемы payload, которую отправит Didit. v3 является текущим и рекомендуемым форматом; более старые версии сохранены для обратной совместимости с устаревшими интеграциями.

Доступные опции:
v1,
v2,
v3
subscribed_events
enum<string>[]

События для доставки. Фактически обязательно: явный массив [] отклоняется с кодом 400, а пропуск поля создаёт адрес назначения без подписок, который ничего не получает.

Minimum array length: 1

Поддерживаемое имя события webhook. Используйте именно эти строки в subscribed_events; неподдерживаемые значения отклоняются.

Доступные опции:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated,
travel_rule.status.updated,
workflow.compliance_changed,
transaction_rule_suggestions.created,
auth.signup,
auth.login,
auth.login_failed,
auth.password_reset_requested,
auth.password_reset_completed,
auth.mfa_changed,
auth.new_device,
auth.account_locked,
investigator.report.ready,
investigator.decision.automated,
investigator.decision.overridden,
investigator.decision.contested,
investigator.question.raised,
investigator.automation.paused,
investigator.rfi.answered,
investigator.rfi.overdue,
investigator.drift.detected,
investigator.sla.breached,
investigator.qa.failed,
investigator.external.report.ready
Пример:

Ответ

Адрес назначения создан. secret_shared_key — это секрет подписи HMAC, сохраните его сейчас.

uuid
string<uuid>

Постоянный идентификатор назначения. Используйте как {destination_uuid} в последующих вызовах.

label
string
url
string<uri>
enabled
boolean
webhook_version
enum<string>
Доступные опции:
v1,
v2,
v3
secret_shared_key
string

Автоматически сгенерированный секрет подписи HMAC, привязанный к этому адресу назначения (URL-безопасный token из 43 символов). Используйте его для проверки заголовков подписи во входящих webhook. При запросе с API-ключом всегда возвращается полностью; пользователям Консоли требуется разрешение read:webhooks, иначе они увидят пустую строку.

secret_last4
string

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

previous_secret_expires_at
string<date-time> | null

Устанавливается на 24 часа после ротации секрета подписи адреса назначения в Business Console. До истечения этого времени каждая доставка на адрес назначения также содержит X-Signature-Previous, X-Signature-V2-Previous и X-Signature-Simple-Previous, созданные с заменённым секретом (см. Проверка подписи). null, если за последние 24 часа ротация не проводилась.

subscribed_events
enum<string>[]

Фильтр событий для этого адреса назначения webhook. Didit доставляет только те webhook, чей тип события точно совпадает с одним из этих значений — подписка по маске отсутствует. При отправке список должен содержать как минимум одно допустимое событие (явный пустой массив [] отклоняется с кодом 400); адрес назначения с пустым списком (поле пропущено при создании) ничего не получает. При обновлении список заменяется целиком, а не объединяется.

Minimum array length: 1

Поддерживаемое имя события webhook. Используйте именно эти строки в subscribed_events; неподдерживаемые значения отклоняются.

Доступные опции:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated,
travel_rule.status.updated,
workflow.compliance_changed,
transaction_rule_suggestions.created,
auth.signup,
auth.login,
auth.login_failed,
auth.password_reset_requested,
auth.password_reset_completed,
auth.mfa_changed,
auth.new_device,
auth.account_locked,
investigator.report.ready,
investigator.decision.automated,
investigator.decision.overridden,
investigator.decision.contested,
investigator.question.raised,
investigator.automation.paused,
investigator.rfi.answered,
investigator.rfi.overdue,
investigator.drift.detected,
investigator.sla.breached,
investigator.qa.failed,
investigator.external.report.ready
Пример:
created_by_email
string | null

Электронная почта участника Business Console, создавшего адрес назначения. null для адреса назначения, созданного с помощью API-ключа.

created_by_name
string | null

Имя участника Business Console, создавшего адрес назначения. null для адреса назначения, созданного с помощью API-ключа.

created_at
string<date-time>
updated_at
string<date-time>
health_status
enum<string>

Состояние доставки. failing: 3 или более последовательных событий завершились неудачей при первой попытке доставки с момента последнего успешного ответа адреса назначения (см. failing_streak). degraded: не failing, но за последние 24 часа произошла неудачная попытка доставки, и ни одна последующая попытка пока не доставила это событие; повторная попытка или повторная отправка, которая доставит его, сбрасывает этот статус. healthy: ни то, ни другое. Не зависит от enabled. Неудачной считается попытка, получившая ответ HTTP 400 или выше, либо оставшаяся вовсе без ответа.

Доступные опции:
healthy,
degraded,
failing
failing_streak
integer

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

failing_since
string<date-time> | null

Когда была совершена первая неудачная попытка из текущей серии ошибок failing_streak. null, если failing_streak равен 0.

last_success_at
string<date-time> | null

Когда адрес назначения в последний раз ответил на доставку с HTTP-статусом ниже 400 за последние 30 дней. null, если ответов в этот период не было.

environment
enum<string>

Среда приложения, которому принадлежит адрес назначения.

Доступные опции:
live,
sandbox
summary
object

Метрики доставки за последние metrics_window_days (30) дней. last_delivery_at представляет собой самую последнюю попытку, когда бы она ни выполнялась.

Последнее изменение 7 ноября 2026 г.