Docs

Webhooks

Send a test

Post a ping event to the endpoint now and report how it answered.

POST/v1/webhooks/{uid}/ping

The call waits for the attempt (up to 10 seconds) and returns the delivery: status: "sent" with your status in last_code, or pending with the reason in last_error, in which case it is retried like any event. The body posted is { "id", "type": "ping", "created", "data": { "endpoint": { "uid", "url" } } }, signed like every other.

Authorization

Authorizationstringheaderrequired
Bearer followed by your API key: Bearer sgk_…. The key also works in an X-Api-Key header. See Authentication.

Path parameters

uidstringpathrequired
The webhook's 8-character id. Not case-sensitive.

Response

200 OKThe delivery of the ping.
uidstring
The delivery's id, also sent as X-Sigil-Delivery. A retry repeats it.
event_idstring
The event's id, the body's id: the same for this event's delivery to each of your endpoints.
typestring
The event type.
One of pact.sent pact.viewed pact.signed pact.declined pact.voided pact.sealed pact.lapsed ping
pact_uidstring | null
The pact the event is about. null for a ping.
statusstring
pending is queued or waiting for its next attempt; sent got a 2xx; failed was given up on.
One of pending sent failed
attemptsinteger
Attempts made so far (7 at most).
last_codeinteger | null
The HTTP status of the last attempt, or null when it got no response.
last_errorstring | null
Why the last attempt did not count as delivered: the status and the start of your response body, a timeout, or a connection error.
next_attemptstring (date-time) | null
When it will next be tried, while pending.
date_createdstring (date-time)
When the event was queued.
date_sentstring (date-time) | null
When it was delivered.

Errors

StatusWhen
401 UnauthorizedThe API key is missing, wrong or revoked.
403 ForbiddenThe account's plan does not include API access (Pro and Business do).
404 Not FoundNo webhook with that id belongs to your account.
409 ConflictThe endpoint is disabled. Switch it on first.

Every error body is { "error": "message" }. See Errors.