# Send a test

`POST https://api.signwithsigil.com/v1/webhooks/{uid}/ping`

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

The call waits for the attempt (up to 10 seconds) and returns the [delivery](/api-reference/objects/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

Header `Authorization: Bearer sgk_…` (or `X-Api-Key: sgk_…`).

## Path parameters

- `uid` (string, required): The webhook's 8-character id. Not case-sensitive.

## Response

`200 OK`: The [delivery](/api-reference/objects/delivery) of the ping.

- `uid` (string): The delivery's id, also sent as `X-Sigil-Delivery`. A retry repeats it.
- `event_id` (string): The event's id, the body's `id`: the same for this event's delivery to each of your endpoints.
- `type` (string): The [event type](/webhooks#events). One of: `pact.sent`, `pact.viewed`, `pact.signed`, `pact.declined`, `pact.voided`, `pact.sealed`, `pact.lapsed`, `ping`.
- `pact_uid` (string | null): The pact the event is about. `null` for a `ping`.
- `status` (string): `pending` is queued or waiting for its next attempt; `sent` got a `2xx`; `failed` was given up on. One of: `pending`, `sent`, `failed`.
- `attempts` (integer): Attempts made so far (7 at most).
- `last_code` (integer | null): The HTTP status of the last attempt, or `null` when it got no response.
- `last_error` (string | 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_attempt` (string (date-time) | null): When it will next be tried, while `pending`.
- `date_created` (string (date-time)): When the event was queued.
- `date_sent` (string (date-time) | null): When it was delivered.

## Errors

| Status | When |
|---|---|
| 401 | The API key is missing, wrong or revoked. |
| 403 | The account's plan does not include API access (Pro and Business do). |
| 404 | No webhook with that id belongs to your account. |
| 409 | The endpoint is disabled. Switch it on first. |

Every error body is `{ "error": "message" }`.

## Example request

```bash
curl -X POST https://api.signwithsigil.com/v1/webhooks/W8NQ3KTE/ping \
  -H "Authorization: Bearer $SIGIL_API_KEY"
```

## Example response

```json
{
  "uid": "HD9TWQ4KMZ7XPE2H",
  "event_id": "PNG4K7QWT9ZXMEH2",
  "type": "ping",
  "pact_uid": null,
  "status": "sent",
  "attempts": 1,
  "last_code": 200,
  "last_error": null,
  "next_attempt": null,
  "date_created": "2026-10-20T14:00:12Z",
  "date_sent": "2026-10-20T14:00:12Z"
}
```
