Webhook deliveries
Webhook deliveries
Inspect webhook delivery attempts and outbox state.
Paths
GET /api/operator/webhooks/deliveries
POST /api/operator/webhooks/deliveries/{id}/replay
Required scopes:
webhooks:readfor listwebhooks:writefor replay- Polyflight or all-product list filters additionally require
polyflight:readunless the caller has*
Query params
Each list filter is optional. Multiple payload filters combine with AND.
| Parameter | Type | Requirement | Values/default |
|---|---|---|---|
status | string | Optional | pending, sent, failed, or dead_letter. |
event_type | string | Optional | Exact event type. |
product | string | Optional | opinion (default), polyflight, or explicitly labelled all. |
created_from | datetime | Optional | Inclusive delivery creation-time lower bound. |
created_to | datetime | Optional | Inclusive delivery creation-time upper bound. |
order_id | positive integer | Optional | Exact callback payload order ID. |
trade_id | positive integer | Optional | Exact callback payload trade ID. |
market_id | positive integer | Optional | Exact callback payload market ID. |
external_user_id | string | Optional | Exact callback payload external user ID. |
purchase_request_id | UUID | Optional | Exact Polyflight purchase request correlation. |
ticket_id | UUID | Optional | Exact Polyflight ticket correlation. |
sort | string | Optional | created_at_desc (default) or next_retry_at_asc. |
page | positive integer | Optional | Default 1. |
page_size | positive integer | Optional | Default 50, maximum 100. |
Status values:
pendingsentfaileddead_letter
Response highlights
- delivery
attempt_count last_status_codelast_response_body_samplenext_retry_atdelivered_at- nested
endpoint - nested
event.event_id - nested
event.event_type - nested
event.aggregate_type - nested
event.aggregate_id - nested
event.payload_json - nested outbox
status
event.payload_json is the operator-actionable callback data preview. Opinion trade events are reconstructed from durable order, user, operator, and trade rows when possible. Polyflight events come from immutable purchase/ticket/operation/obligation rows and do not revalue amounts with current FX or terms.
Opinion payload filters use durable order data. Polyflight purchase_request_id and ticket_id match their event correlations. Supplying multiple filters requires every condition to match the same event. One event can still have multiple delivery rows when it targets multiple endpoints.
The default product filter remains Opinion-only. Choose polyflight or explicitly labelled all to avoid silently mixing product event families in existing operational views.
Replay rules
id is a required positive delivery ID path parameter. Replay has no query parameters or request body.
Replay dispatches the same delivery object again and does not create a new business event.
The API scopes both mini_app_webhook_endpoints.operator_id and mini_app_outbox_events.operator_id to the authenticated operator before replay.
Receivers must dedupe by event_id, especially when replaying a delivery that was already sent.
