Update a webhook endpoint
Updates a webhook endpoint's `url`, `events`, `enabled`, or `description`. The `events` array REPLACES the current subscription list (not merged). At least one field is required.
/api/v1/webhooks/{id}Path Parameters
Updated HTTPS endpoint. Omit to leave the current URL unchanged. Rotating the URL does NOT rotate the signing secret — call POST /webhooks/{id}/rotate-secret separately.
urilength <= 2048Updated subscription list. When provided, REPLACES the current event list wholesale (not merged). Omit to leave subscriptions unchanged.
1 <= itemsSet false to pause delivery without deleting the endpoint. Held/booked/released events still occur on the platform but no HTTP POSTs go out. Re-enable by setting true.
Updated description (≤ 255 chars). Omit to keep the current description.
length <= 255Response Body
curl -X PATCH "http://localhost:3000/api/v1/webhooks/string" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "wh_2a8f1d",
"url": "https://api.brooklynmusichall.example/seats-webhook",
"events": [
"seat.held",
"seat.booked",
"seat.released",
"seat.hold_expired"
],
"description": "Production order pipeline (now with hold-expiry alerts)",
"enabled": true,
"createdAt": "2026-09-12T14:22:01.044Z",
"updatedAt": "2026-09-22T08:11:30.000Z"
}{
"statusCode": 0,
"message": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}{
"statusCode": 0,
"message": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}{
"statusCode": 0,
"message": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}{
"statusCode": 0,
"message": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}Create a webhook endpoint POST
Registers a webhook endpoint and returns the new `id` and signing `secret`. The secret is shown ONCE — store it server-side to verify the HMAC-SHA256 signature on incoming payloads. Subsequent reads omit the secret; use `/rotate-secret` to mint a new one.
Delete a webhook endpoint DELETE
Deletes a webhook endpoint. In-flight deliveries (queued retries) are cancelled. Past delivery records are kept for 30 days and remain queryable via `/deliveries`.