---
title: "Update Webhook"
method: PATCH
path: "/webhooks/{id}"
tags: ["Webhooks"]
---

# Update Webhook

`PATCH /webhooks/{id}`

Updates a webhook endpoint's URL, subscribed events, API version, pinned payload version, or enabled state.

## Request body

- object
  - `api_version` 'v1' | 'v2' | 'v5' — The API version for this webhook.
  - `api_version_date` string, nullable — The dated API version (Api-Version-Date) to pin this webhook's payloads to. Only valid for `v1` webhooks. Omit to leave the current pin unchanged, or pass `null` to unpin and track the current payload shape.
  - `child_resource_events` boolean — Whether or not to send events for child resources.
  - `enabled` boolean — Whether or not the webhook is enabled.
  - `events` string[] — The events to send the webhook for, in dot form (for example `payment.succeeded`).
  - `url` string — The URL to send the webhook to.

## Response `200`

webhook updated

- Webhook
  - `api_version` 'v1' | 'v2' | 'v5', required — The API version used to format payloads sent to this webhook endpoint.
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) that v1 payloads for this endpoint are pinned to: events serialize exactly like a REST read at this version (the native serializer where the resource has one). Null when unpinned — legacy (v2/v5) webhooks, and v1 webhooks on the legacy payload shape.
  - `child_resource_events` boolean, required — Whether events are sent for child resources. For example, if the webhook is on an account, enabling this sends events only from its connected accounts.
  - `created_at` string, required — When the webhook was created, as an ISO 8601 timestamp.
  - `disabled_at` string, nullable, required — When Whop automatically disabled this webhook, as an ISO 8601 timestamp. `null` unless the webhook was disabled by Whop; a webhook you disabled yourself has `enabled: false` and a `null` `disabled_at`.
  - `disabled_reason` 'delivery_failures' | 'null', nullable, required — Why Whop disabled this webhook. `delivery_failures` means every delivery failed for 3 days straight. `null` when `disabled_at` is `null`.
  - `enabled` boolean, required — Whether this webhook endpoint is currently active and receiving events.
  - `events` string[], required
  - `id` string, required — Webhook ID, prefixed `hook_`.
  - `last_failure_at` string, nullable, required — When a delivery to this endpoint most recently failed after exhausting retries, as an ISO 8601 timestamp. `null` if no delivery has ever failed.
  - `resource_id` string, required — ID of the resource (account or app) this webhook is attached to.
  - `testable_events` string[], required
  - `url` string, required — Destination URL where webhook payloads are delivered via HTTP POST.
  - `webhook_secret` string, nullable, required — Secret key used to sign webhook payloads for verification. Include this in your HMAC validation logic. Returned on the create response and to interactive dashboard sessions; `null` for API-key and OAuth callers on later reads.

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Resource not found

## Changes

- **2026-08-04** `bdd0e2c70d58` — 38 warning, 22 info
  - added the new `card_transaction.completed` enum value to the `events/items/` response property for the response status `200`
  - added the new `card_transaction.completed` enum value to the `testable_events/items/` response property for the response status `200`
  - added the new `card_transaction.created` enum value to the `events/items/` response property for the response status `200`
  - added the new `card_transaction.created` enum value to the `testable_events/items/` response property for the response status `200`
  - …56 more
- **2026-07-31** `099fdc3be422` — 1 breaking, 112 warning, 83 info
  - request property `events/items/` was restricted to a list of enum values
  - added the new `app_membership.cancel_at_period_end_changed` enum value to the `events/items/` response property for the response status `200`
  - added the new `app_membership.cancel_at_period_end_changed` enum value to the `testable_events/items/` response property for the response status `200`
  - added the new `app_membership.went_invalid` enum value to the `events/items/` response property for the response status `200`
  - …192 more
- **2026-07-26** `60bbb4a6ffbc` — 50 breaking, 9 warning, 90 info
  - request body became required
  - request property `api_version` was restricted to a list of enum values
  - the request property `child_resource_events` became not nullable
  - the request property `enabled` became not nullable
  - …145 more

[Change history](https://skmtc.dev/whop/apis/whop-api/changes/webhooks/:id/patch.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/whop/whop-api/revisions/ca841fbd6786/schema)
