POST
Replay a webhook delivery

Authorizations

Authorization
string
header
required

A secret API key. Publishable keys cannot reach this API. A key may carry an expiry, and an expired key is refused exactly like an unknown one, with a 401 that names no reason; check the key's expires_at in the dashboard rather than inferring it from a response. When a merchant rolls a key's secret they choose a grace window of up to 3 days, and for its duration BOTH the new secret and the one it replaced authenticate, so an integration moves over on its own deploy schedule instead of at the instant the button is pressed. Move before the window closes: after it, the old secret is refused. Nothing else about this contract moves with a roll. The key keeps its id and its scopes, so the only thing an integration updates is the credential itself.

Headers

Idempotency-Key
string
required

A unique key per logical write. Replaying a request with the same key returns the first response byte for byte instead of applying the write twice.

Path Parameters

deliveryId
string
required

Body

application/json

Takes no parameters, and an empty body is expected. 201 because this CREATES a delivery. The original row is untouched, so what failed stays on the record, and the response is the NEW delivery whose id you watch. THIS IS HOW YOU GET A PAYLOAD YOU MISSED. The delivery log publishes metadata only, never the event body, because that body is the other family's data and read_webhooks is not a grant over it. Replaying sends the body to the endpoint you already registered, signed, where you can verify it. 409 not_redeliverable when the source delivery is still pending (it is already on its way) or its endpoint is inactive (the attempt would just fail again).

Response

Created

data
object