Webhook deliveries
Webhook deliveries are the per-attempt log of every payload Mercel has tried to deliver to one of your endpoints. Inspect the request and response snapshot for any delivery and replay past deliveries on demand.
The webhook delivery object
The webhook delivery object is the shape returned by endpoints in this collection. Its attributes are listed below.
Attributes
Number of HTTP attempts made so far. Increments on every retry.
Time the delivery row was enqueued.
Time the delivery first succeeded. null while pending or failed.
Webhook endpoint the delivery targets.
Short error string from the last failed attempt. null while the delivery is succeeding or has not yet attempted.
Originating event id (or a synthetic id for webhook.ping and replays).
Event type that produced this delivery.
Unique identifier for the delivery attempt row.
HTTP status returned by the receiver on the last attempt. null until the first attempt completes.
Round-trip duration of the last attempt in milliseconds. null until the first attempt completes.
Current state of the delivery: pending (queued or retrying), success, failed (gave up after the retry schedule), or disabled (endpoint was disabled mid-flight).
Store the delivery is scoped to.
{ "attempt": 0, "createdAt": "2026-01-01T00:00:00.000Z", "deliveredAt": "2026-01-01T00:00:00.000Z", "endpointId": "whe_01HJZQK7XJ8R9YGEWABCDEFGHJK", "error": "string", "eventId": "evt_01HJZQK7XJ8R9YGEWABCDEFGHJK", "eventType": "product.created", "id": "whd_01HJZQK7XJ8R9YGEWABCDEFGHJK", "responseStatus": 0, "responseTimeMs": 0, "status": "pending", "storeId": "str_01HJZQK7XJ8R9YGEWABCDEFGHJK"}List all webhook deliveries
Lists recent webhook deliveries, newest first, optionally filtered by endpoint, status, event type, or a createdAt time window. Uses the standard list envelope — see Pagination.
Path & query parameters
Maximum number of items to return per page. Defaults to 20, capped at 100.
Opaque pagination token. Pass the value returned in nextPageUrl / previousPageUrl rather than constructing one — the encoding is internal and may change.
Filter to a single endpoint.
Filter by delivery status.
Filter to a single event type (exact match).
ISO 8601 timestamp lower bound (inclusive) on createdAt.
ISO 8601 timestamp upper bound (inclusive) on createdAt.
curl -X GET "https://api.mercel.app/v1/webhooks/deliveries"{
"data": [
{
"attempt": 0,
"createdAt": "2019-08-24T14:15:22Z",
"deliveredAt": "2019-08-24T14:15:22Z",
"endpointId": "whe_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"error": "string",
"eventId": "evt_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"eventType": "product.created",
"id": "whd_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"responseStatus": 0,
"responseTimeMs": 0,
"status": "pending",
"storeId": "str_01HJZQK7XJ8R9YGEWABCDEFGHJK"
}
],
"nextPageUrl": "http://example.com",
"previousPageUrl": "http://example.com"
}Replay a webhook delivery
Enqueues a fresh delivery with the same payload as the specified delivery row. The original delivery is left untouched; the replay gets a new id and an attempt count of 0. The endpoint must still be active.
Path & query parameters
The id of the webhook delivery.
curl -X POST "https://api.mercel.app/v1/webhooks/deliveries/whd_01hh9zzzzzzzzzzzzzzzzzzzzz/replay"{
"delivery": {
"endpointId": "whe_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"id": "whd_01HJZQK7XJ8R9YGEWABCDEFGHJK"
}
}Retrieve a webhook delivery
Retrieves a single webhook delivery, including the exact request and response snapshot from the most recent attempt.
Path & query parameters
The id of the webhook delivery.
curl -X GET "https://api.mercel.app/v1/webhooks/deliveries/whd_01hh9zzzzzzzzzzzzzzzzzzzzz"{
"delivery": {
"attempt": 0,
"createdAt": "2019-08-24T14:15:22Z",
"deliveredAt": "2019-08-24T14:15:22Z",
"endpointId": "whe_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"error": "string",
"eventId": "evt_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"eventType": "product.created",
"id": "whd_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"responseStatus": 0,
"responseTimeMs": 0,
"status": "pending",
"storeId": "str_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"nextAttemptAt": "2019-08-24T14:15:22Z",
"requestBody": null,
"requestHeaders": {
"property1": "string",
"property2": "string"
},
"responseBody": "string",
"responseHeaders": {
"property1": "string",
"property2": "string"
},
"subject": {
"id": "prd_01HJZQK7XJ8R9YGEWABCDEFGHJK",
"type": "product"
}
}
}