Управление Webhooks (Webhook Management)
Управляйте эндпоинтами вебхуков для получения уведомлений о событиях в реальном времени. Вы можете зарегистрировать до 10 эндпоинтов вебхуков на организацию.
Создание вебхука
POST /webhooks
Тело запроса
{
"url": "https://yourapp.com/webhooks/vignetim",
"events": ["order.completed", "order.failed"],
"description": "Production order notifications"
}
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
url | string | Да | HTTPS URL эндпоинта для получения доставок вебхуков |
events | string[] | Да | Массив типов событий для подписки (или ["*"] для всех) |
description | string | Нет | Понятное описание данного эндпоинта |
Ответ (201 Created)
{
"id": "wh-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"url": "https://yourapp.com/webhooks/vignetim",
"events": ["order.completed", "order.failed"],
"description": "Production order notifications",
"active": true,
"signingSecret": "whs_a1b2c3d4e5f6789012345678901234567890abcdef",
"createdAt": "2026-03-20T14:30:00.000Z"
}
Важно:
signingSecretвозвращается только при первом создании вебхука. Сохраните его в безопасном месте -- он понадобится для проверки входящих подписей вебхуков. Повторно получить его невозможно.
Защита от SSRF
URL вебхуков должны быть публично доступными HTTPS-эндпоинтами. Следующие адреса отклоняются:
- Частные/внутренние IP-адреса (10.x.x.x, 172.16-31.x.x, 192.168.x.x)
- Localhost и loopback-адреса
- URL без HTTPS
Список вебхуков
GET /webhooks
Ответ
{
"data": [
{
"id": "wh-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"url": "https://yourapp.com/webhooks/vignetim",
"events": ["order.completed", "order.failed"],
"description": "Production order notifications",
"active": true,
"consecutiveFailures": 0,
"createdAt": "2026-03-20T14:30:00.000Z",
"updatedAt": "2026-03-20T14:30:00.000Z"
}
]
}
Обновление вебхука
PUT /webhooks/:id
Параметры пути
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
id | string | Да | ID вебхука |
Тело запроса
{
"url": "https://yourapp.com/webhooks/vignetim-v2",
"events": ["*"],
"description": "Updated to receive all events"
}
Все поля необязательные. Обновляются только предоставленные поля.
Ответ
Возвращает обновлённый объект вебхука.
Удаление вебхука
DELETE /webhooks/:id
Параметры пути
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
id | string | Да | ID вебхука |
Ответ
Возвращает 204 No Content при успешном выполнении.
Тестирование вебхука
Отправьте тестовое событие для проверки доступности вашего эндпоинта и корректной обработки доставок вебхуков.
POST /webhooks/:id/test
Параметры пути
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
id | string | Да | ID вебхука |
Ответ
{
"success": true,
"statusCode": 200,
"responseTime": 145,
"message": "Test webhook delivered successfully"
}
Если тестовая доставка не удалась:
{
"success": false,
"statusCode": 500,
"responseTime": 10000,
"message": "Webhook endpoint returned non-2xx status code"
}