Керування Webhooks (Webhook Management)
Керуйте ендпоінтами webhook для отримання сповіщень про події в реальному часі. Ви можете зареєструвати до 10 ендпоінтів webhook на організацію.
Створити Webhook
POST /webhooks
Тіло запиту
{
"url": "https://yourapp.com/webhooks/vignetim",
"events": ["order.completed", "order.failed"],
"description": "Production order notifications"
}
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
url | string | Так | HTTPS URL ендпоінта для отримання доставок webhook |
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повертається лише при першому створенні webhook. Збережіть його надійно -- він знадобиться вам для перевірки вхідних підписів webhook. Його неможливо отримати повторно.
Захист від SSRF
URL-адреси webhook повинні бути загальнодоступними HTTPS-ендпоінтами. Наступні адреси відхиляються:
- Приватні/внутрішні IP-адреси (10.x.x.x, 172.16-31.x.x, 192.168.x.x)
- Localhost та loopback-адреси
- URL без HTTPS
Список Webhooks
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"
}
]
}
Оновити Webhook
PUT /webhooks/:id
Параметри шляху
| Назва | Тип | Обов'язковий | Опис |
|---|---|---|---|
id | string | Так | ID webhook-а |
Тіло запиту
{
"url": "https://yourapp.com/webhooks/vignetim-v2",
"events": ["*"],
"description": "Updated to receive all events"
}
Усі поля необов'язкові. Оновлюються лише надані поля.
Відповідь
Повертає оновлений об'єкт webhook.
Видалити Webhook
DELETE /webhooks/:id
Параметри шляху
| Назва | Тип | Обов'язковий | Опис |
|---|---|---|---|
id | string | Так | ID webhook-а |
Відповідь
Повертає 204 No Content у разі успіху.
Тестувати Webhook
Надішліть тестову подію для перевірки того, що ваш ендпоінт доступний та коректно обробляє доставки webhook.
POST /webhooks/:id/test
Параметри шляху
| Назва | Тип | Обов'язковий | Опис |
|---|---|---|---|
id | string | Так | ID webhook-а |
Відповідь
{
"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"
}