Open app

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

attemptinteger

Number of HTTP attempts made so far. Increments on every retry.

createdAttimestamp

Time the delivery row was enqueued.

deliveredAttimestamp

Time the delivery first succeeded. null while pending or failed.

endpointIdstring

Webhook endpoint the delivery targets.

errorstring

Short error string from the last failed attempt. null while the delivery is succeeding or has not yet attempted.

eventIdstring

Originating event id (or a synthetic id for webhook.ping and replays).

eventTypestring

Event type that produced this delivery.

idstring

Unique identifier for the delivery attempt row.

responseStatusinteger

HTTP status returned by the receiver on the last attempt. null until the first attempt completes.

responseTimeMsinteger

Round-trip duration of the last attempt in milliseconds. null until the first attempt completes.

statusenum

Current state of the delivery: pending (queued or retrying), success, failed (gave up after the retry schedule), or disabled (endpoint was disabled mid-flight).

one of: pending, success, failed, disabled
storeIdstring

Store the delivery is scoped to.

Example response
{  "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

limitinteger

Maximum number of items to return per page. Defaults to 20, capped at 100.

1 ≤ value ≤ 100
pagestring

Opaque pagination token. Pass the value returned in nextPageUrl / previousPageUrl rather than constructing one — the encoding is internal and may change.

endpointIdstring

Filter to a single endpoint.

statusenum

Filter by delivery status.

one of: pending, success, failed, disabled
eventTypestring

Filter to a single event type (exact match).

sincetimestamp

ISO 8601 timestamp lower bound (inclusive) on createdAt.

untiltimestamp

ISO 8601 timestamp upper bound (inclusive) on createdAt.

curl -X GET "https://api.mercel.app/v1/webhooks/deliveries"
Response200
{
  "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

deliveryIdstringRequired

The id of the webhook delivery.

curl -X POST "https://api.mercel.app/v1/webhooks/deliveries/whd_01hh9zzzzzzzzzzzzzzzzzzzzz/replay"
Response202
{
  "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

deliveryIdstringRequired

The id of the webhook delivery.

curl -X GET "https://api.mercel.app/v1/webhooks/deliveries/whd_01hh9zzzzzzzzzzzzzzzzzzzzz"
Response200
{
  "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"
    }
  }
}

On this page