generation.completed и generation.failed; тест — endpoint.test. Доставка at-least-once: обрабатывайте повторный event ID идемпотентно.
В настройках Token задайте HTTPS URL, создайте 32-byte secret (показывается один раз), включите Webhook и отправьте тест. Без callback_url используется URL Token. Переопределение может менять только path/query при том же scheme/host/port. Без настройки: 400 webhook_not_configured.
task_type: image|video. Result соответствует публичному query API. Channel ID, upstream task ID/keys, credentials и PrivateData не передаются.
event_id + "." + timestamp + "." + raw_request_body, HMAC-SHA256. Для первой доставки отклоняйте timestamp старше 5 минут. 24 часа после ротации принимайте новую или предыдущую подпись.
Python
Node.js
Go
2xx; 3xx не перенаправляются, 4xx/5xx повторяются, timeout 10 секунд. HTTPS, userinfo, fragment, недопустимый port, SSRF, DNS/IP и DNS rebinding проверяются при каждой доставке. Используйте query API как резерв и быстро сохраняйте временные result URL. Real-avatar, платежи и OAuth callback не меняются. Лимиты.