История доставок
Для каждого webhook сохраняется лог попыток доставки — это удобный инструмент для диагностики и сверки.
Запрос
curl "https://gateway.pert.paranoid.security/api/v1/webhooks/$WEBHOOK_ID/deliveries?limit=20&offset=0" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
limit |
int | 20 | Размер страницы (1–100) |
offset |
int | 0 | Смещение от начала |
Ответ
{
"items": [
{
"id": "delivery-uuid",
"event_id": "event-uuid",
"event_type": "transaction.created",
"category": "Transactions",
"status": "success",
"response_status_code": 200,
"attempt_number": 1,
"created_at": "2026-04-23T10:15:30Z",
"completed_at": "2026-04-23T10:15:31Z"
}
],
"total_count": 145,
"limit": 20,
"offset": 0
}
Поля записи доставки
| Поле | Тип | Описание |
|---|---|---|
id |
UUID | Идентификатор записи доставки |
event_id |
UUID | Идентификатор события |
event_type |
string | Тип события |
category |
string | Категория события |
status |
string | Статус доставки (см. ниже) |
response_status_code |
int | HTTP-код ответа вашего сервера, если был получен |
error_message |
string | Текст ошибки доставки, если есть |
attempt_number |
int | Номер попытки (1 — первая доставка, 2+ — retry) |
created_at |
string | Время первой попытки (ISO 8601) |
completed_at |
string | Время финального статуса (success или failed) |
Статусы доставки
| Статус | Что означает |
|---|---|
pending |
Доставка в процессе (запрос отправлен, ответа ещё нет) |
success |
Сервер ответил кодом 2xx |
retrying |
Доставка не удалась, запланирована следующая попытка |
failed |
Окончательно неуспешная доставка (исчерпано окно retry или прерван retry-цикл) |
Что хранится в логе
- HTTP-код ответа вашего сервера и первые 4 КБ тела ответа — для каждой попытки.
- Текст ошибки (тайм-аут, отказ TLS, неразрешимый DNS и т. п.).
- Номер попытки и время.
Используйте для разбора инцидентов
Если ваш мониторинг показал отсутствие событий — сравните total_count с ожидаемым числом, отфильтруйте по
статусу failed и посмотрите error_message. Чаще всего проблема в одном из:
- истёкший TLS-сертификат;
- изменившийся URL после деплоя;
- блокировка балансировщиком/WAF;
- превышен таймаут 10 секунд.