smartchat

Redeliver webhook delivery

Queues the event of an earlier delivery for another delivery to the same endpoint, while the event is in the 30 day log and the endpoint is active. Sends no messages to contacts. Returns the new delivery.

POST /v1/webhook-deliveries/{delivery_id}/redeliver

Permissionwebhooks:write (all permissions)
RiskWrite (no outside effect)
Idempotency-KeyOptional (how it works)
Safe to repeatWith the same Idempotency-Key the first answer comes back and nothing is done twice. Without a key a repeat is done again.
Rate limit classwrite (120 requests per minute per key)
ConfirmationNone
MCP toolNot available in MCP
Since version2026-10-25

#What it does

  • Changes data in your account. It does not send messages to contacts.
  • Acts on a connected outside system.

#Request

Header

NameRequiredDescription
AuthorizationyesBearer <key>
Idempotency-KeynoA unique value for this operation, for example a UUID (1 to 255 visible ASCII characters).

Path parameters

NameTypeDescription
delivery_idstringDelivery ID from the delivery log.

#Examples

curl -X POST "https://api.smartchat.marketing/v1/webhook-deliveries/whd_7a1b2c3d4e5f40718293a4b5c6d7e8f9/redeliver" \
  -H "Authorization: Bearer $SMARTCHAT_API_KEY"
import os
import requests

response = requests.post(
    "https://api.smartchat.marketing/v1/webhook-deliveries/whd_7a1b2c3d4e5f40718293a4b5c6d7e8f9/redeliver",
    headers={"Authorization": "Bearer " + os.environ["SMARTCHAT_API_KEY"]},
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.smartchat.marketing/v1/webhook-deliveries/whd_7a1b2c3d4e5f40718293a4b5c6d7e8f9/redeliver", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SMARTCHAT_API_KEY}`,
  },
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());

Response (202):

{
  "object": "webhook_delivery",
  "id": "whd_9b8a7c6d5e4f43218293a4b5c6d7e8f0",
  "endpoint_id": "whe_0f8c1a2e4b7d4c3e9a5b6d7e8f901234",
  "event_id": "evt_0f8c1a2e4b7d4c3e9a5b6d7e8f905678",
  "type": "contact.created",
  "attempt": 0,
  "status": "pending",
  "http_status": null,
  "error": null,
  "duration_ms": null,
  "next_attempt_at": "2026-10-25T09:50:00Z",
  "created_at": "2026-10-25T09:44:59Z",
  "finished_at": null
}

#Response

Status 202. Every response has the headers Request-Id, SmartChat-Version and X-RateLimit-*.

NameTypeDescription
objectstringAlways "webhook_delivery". always webhook_delivery
idstringDelivery ID (also sent in the SmartChat-Delivery-Id header).
endpoint_idstringEndpoint that received or will receive the event.
event_idstring or nullEvent ID (also in the event body as id). Null for test pings. up to 64 characters
typestringEvent type, for example contact.created. up to 60 characters
attemptintegerNumber of attempts made so far (maximum 9). 0 to 9
statusstringpending = waiting for the next attempt, sending = in progress, delivered = your server answered 2xx, failed = no more attempts. one of: pending, sending, delivered, failed
http_statusinteger or nullHTTP status of the last attempt. Null if your server did not answer. 0 to 599
errorstring or nullShort reason of the last failure, for example HTTP 500 or timeout. Never contains the body of your answer. up to 200 characters
duration_msinteger or nullDuration of the last attempt in milliseconds. 0 to 3600000
next_attempt_atstring or nullWhen the next attempt is planned. Null if none is planned. up to 40 characters; format date-time
created_atstringWhen the delivery was queued. up to 40 characters; format date-time
finished_atstring or nullWhen the delivery reached a final state. up to 40 characters; format date-time

#Errors

CodeStatusWhen
idempotency_key_invalid400The 'Idempotency-Key' header must be 1 to 255 visible ASCII characters.
api_key_expired401This API key has expired.
api_key_invalid401This API key is not valid.
api_key_revoked401This API key was revoked.
authentication_required401No API key was sent. Send 'Authorization: Bearer <key>'.
insufficient_scope403This key lacks a required permission.
ip_not_allowed403This IP address is not allowed for this key.
delivery_not_found404No webhook delivery with this ID exists in this account.
conflict409The state of the object does not allow this.
idempotency_in_progress409A request with this idempotency key is still running.
idempotency_key_reused422This idempotency key was already used with a different request.
validation_failed422A field is not valid.
rate_limited429Too many requests. Wait and try again.
internal_error500Something went wrong on our side.

All errors use one format.