Cowdidocs

Retry a delivery

POST
/v1/webhooks/deliveries/{deliveryId}/retry

Sends the recorded delivery again, with the bytes it was created with, so the receiver sees the same idempotency key as before and can tell that this is the same action. The signature is new: it covers a new timestamp, which is what stops an old request from being replayed. Answers with the delivery as it now stands; the attempt itself runs in the background and the retry policy applies to it as it does to a first attempt. A delivery that was accepted can also be sent again, for a receiver that lost it; the delivery id does not change, so the receiver can tell the copy from a new action. One retry at a time — asking again while a retry is still running does not send a second copy. One manual retry per delivery per minute. Requires the org:connect:write permission.

AuthorizationBearer <token>

Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.

In: header

Path Parameters

deliveryId*string

Unique identifier of the delivery.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/webhooks/deliveries/0198c1c2-4f1e-7a3b-9c2d-6f0a1b2c3d4e/retry"
{  "id": "0198c1c2-4f1e-7a3b-9c2d-6f0a1b2c3d4e",  "webhook_id": "550e8400-e29b-41d4-a716-446655440000",  "event_type": "approval.outcome",  "payload": {    "delivery_id": "0198c1c2-4f1e-7a3b-9c2d-6f0a1b2c3d4e",    "event_type": "approval.outcome"  },  "status": "PENDING",  "attempts": 1,  "sent_at": "2026-03-14T09:30:00Z",  "http_status": 200,  "response_snippet": {    "status": "ok"  },  "error": "Connection timed out after PT5S",  "duration": "PT0.412S",  "next_attempt_at": "2026-03-14T09:35:00Z",  "created_at": "2026-09-01T10:15:30Z"}
{  "code": "BAD_REQUEST",  "description": "Bad Request"}
{  "code": "UNAUTHORISED",  "description": "Unauthorised"}
{  "code": "FORBIDDEN",  "description": "Forbidden"}
{  "code": "BAD_REQUEST",  "description": "Invalid input"}
{  "code": "BAD_REQUEST",  "description": "Invalid input"}
{  "code": "RATE_LIMIT_EXCEEDED",  "description": "Too Many Requests"}
{  "code": "INTERNAL_ERROR",  "description": "Internal Server Error"}