Skip to content

Retry webhook delivery

POST
/api/webhooks/subscription/{id}/deliveries/{deliveryId}/retry
Code sample: Shell / cURL
curl --request POST \
--url https://api.ztlpay.io/api/webhooks/subscription/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/deliveries/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/retry \
--header 'Authorization: Bearer <token>'

Queues a manual retry of a FAILED or DELIVERED delivery created within the last 30 days for an enabled subscription belonging to the authenticated partner. No request body is required. HTTP 202 confirms acceptance, not successful delivery; use delivery history to check the result. Preserves the delivery ID, event ID, and original payload. Snapshots the subscription’s current target URL, signing secret, and bearer token at acceptance, regardless of its current event-type selection. Later subscription edits do not change that queued cycle. Each attempt has a fresh signature timestamp. Starts a new cycle with up to six attempts under the normal retry policy; cumulative attemptCount and all prior history are preserved. Acceptance sets the delivery status to PENDING and clears deliveredAt, including for previously delivered webhooks. Earlier successful attempts remain in history. A new successful attempt sets deliveredAt to its completion time; replay can also end in FAILED. Replaying a delivered event does not bypass the receiver’s deduplication. Limited to 10 accepted manual retry requests per subscription per minute. There is no bulk replay or replay of events that were never queued. See replay a delivery.

id
required
string format: uuid
deliveryId
required
string format: uuid

Delivery ID from history or X-ZTL-Webhook-Id, distinct from the event payload’s id.

Retry accepted and queued for asynchronous delivery.

Media typeapplication/json
object
deliveryId
required

Existing delivery ID that has been queued for retry.

string format: uuid
Examplegenerated
{
"deliveryId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}

Authentication failed.

Subscription or delivery was not found for the authenticated partner, the delivery belongs to another subscription, or it is outside the 30-day window.

Subscription is disabled or delivery is neither FAILED nor DELIVERED. Deliveries already PENDING or IN_PROGRESS cannot be replayed.

Subscription has reached 10 accepted manual retry requests in the last minute.

Retry-After
integer
Allowed value: 60

Seconds to wait before another retry request.

Example
60