Webhooks

Stage signing key

Create a secondary key and return its secret once. Events are signed with both keys (v1 and v1s) until you promote or retire it. The body is optional.

POSThttps://api.sndr.sh/v1/webhooks/{id}/signing-keys/stage
Stage signing key
curl -X POST 'https://api.sndr.sh/v1/webhooks/wh_2a7d4e9c-6b1/signing-keys/stage' \
  -H "Authorization: Bearer $SNDR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"reason": "scheduled rotation"}'
201Created
{
  "id":              "whk_61d0a9c7-5e4",
  "webhook_id":      "wh_2a7d4e9c-6b1",
  "status":          "secondary",
  "created_at":      "2026-06-01T13:00:00Z",
  "created_by":      "usr_5b2f8c1e-9a3",
  "rotation_reason": "scheduled rotation",
  "secret":          "Qm3vT8xZ1cR6yH0nB5wL9kD2fJ7sA4gP"
}

Authorization

Authorizationstringheaderrequired

Bearer followed by your API key. Needs the send scope.

Path parameters

idstringrequired

Webhook ID (wh_...).

Body

application/json
reasonstring

Short label stored with the key. Defaults to customer.

notesstring

Optional free-form note.

Errors

401unauthenticatedMissing or invalid API key.
400invalid_requestBody is missing or not valid JSON (send {} for the defaults).
403insufficient_scopeThe API key is missing the send scope.
404not_foundResource does not exist or belongs to a different account.