Skip to main content
The Update Webhook endpoint lets you change any combination of fields on an existing webhook without needing to delete and re-create it. Updating does not rotate the signing secret. Only include the fields you want to change — unspecified fields remain unchanged. This endpoint requires the webhooks:write permission.

Request

PUT https://0k90mc4jjj.execute-api.us-east-2.amazonaws.com/v1/webhooks/{id}

Headers

Authorization
string
required
Bearer token using your API key. Format: Bearer cs_live_your_key
Content-Type
string
required
Must be application/json.

Path parameters

id
string
required
The unique identifier of the webhook to update (e.g., wh_01hx4kz9mntd8vr2bpqe5ycf3a).

Request body

All body fields are optional. Send only the fields you want to change.
url
string
New destination HTTPS URL for event deliveries.
events
array[string]
Replacement list of event types to subscribe to. This fully replaces the current list — include all events you want, not just the new ones.
Supported events are donation.created, donation.updated, subscription.created, subscription.updated, subscription.cancelled, subscription.payment_method_updated, contact.created, contact.updated, form.created, and form.updated.
description
string
Updated human-readable description for this webhook.
status
string
New status for the webhook. Accepted values: ACTIVE or DISABLED. Setting to DISABLED stops event delivery without deleting the webhook.

Response

200 — success

Returns the full updated webhook object. See List Webhooks for a description of all fields.

400 — bad request

Returned when the request body is invalid — for example, if url is not a valid HTTPS URL or events is an empty array.

403 — forbidden

Returned when the webhook exists but belongs to a different merchant account.

404 — not found

Returned when no webhook with the given id exists under your merchant account.

Examples

curl -X PUT https://0k90mc4jjj.execute-api.us-east-2.amazonaws.com/v1/webhooks/wh_01hx4kz9mntd8vr2bpqe5ycf3a \
  -H "Authorization: Bearer cs_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"status": "DISABLED"}'
Sample response (200)
{
  "webhookId": "wh_01hx4kz9mntd8vr2bpqe5ycf3a",
  "url": "https://newdomain.yourapp.com/webhooks/charitystack",
  "events": [
    "donation.created",
    "subscription.created",
    "subscription.payment_method_updated"
  ],
  "status": "ACTIVE",
  "description": "Production webhook for donation notifications",
  "createdAt": 1714003200,
  "lastDeliveryAt": 1714089600,
  "successCount": 142,
  "failureCount": 3
}
To re-enable a previously disabled webhook, send {"status": "ACTIVE"}. Event deliveries resume immediately for new events — past events that occurred while the webhook was disabled are not replayed.