> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.hopnow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Webhook Endpoint

> Update an active webhook endpoint's URL, events, or description

<Note>
  Only provided, non-null fields are changed. Sending `null` does not clear a field, and an empty object is a no-op.
  The signing secret is not returned.
</Note>

## Path Parameters

<ParamField path="customer_id" type="string" required>
  The customer's external ID (starts with `cus_`)
</ParamField>

<ParamField path="endpoint_id" type="string" required>
  The webhook endpoint's external ID (starts with `wh_`)
</ParamField>

## Request Body

<ParamField body="url" type="string">
  New HTTPS webhook delivery URL
</ParamField>

<ParamField body="events" type="array">
  Replacement list of event subscriptions. This replaces the entire existing list.
  An empty array removes all subscriptions without deleting the endpoint.
</ParamField>

<ParamField body="description" type="string">
  New description (maximum 255 characters)
</ParamField>

Supported event names are listed in [Webhook Events](/fx/webhooks/events).

## Response

<ResponseField name="id" type="string">
  Webhook endpoint identifier (starts with `wh_`)
</ResponseField>

<ResponseField name="object" type="string">
  Always returns `"webhook_endpoint"`
</ResponseField>

<ResponseField name="url" type="string">
  The webhook delivery URL
</ResponseField>

<ResponseField name="events" type="array">
  Subscribed event types
</ResponseField>

<ResponseField name="description" type="string">
  Webhook description, or `null`
</ResponseField>

<ResponseField name="created" type="string">
  ISO 8601 creation timestamp
</ResponseField>

<ResponseField name="updated" type="string">
  ISO 8601 last-update timestamp
</ResponseField>

<ResponseField name="created_by" type="string">
  Identifier of the actor that created the endpoint, or `null`
</ResponseField>

<ResponseField name="updated_by" type="string">
  Identifier of the actor that last updated the endpoint, or `null`
</ResponseField>

<ResponseField name="last_used_at" type="string">
  Timestamp of the most recent successful delivery, or `null`
</ResponseField>

<ResponseField name="deleted_at" type="string">
  Deletion timestamp. This is `null` for resources updated by this endpoint.
</ResponseField>

## Response Example

```json theme={null}
{
  "id": "wh_1234567890abcdefghijklmn",
  "object": "webhook_endpoint",
  "url": "https://api.mycompany.com/webhooks/hopnow",
  "events": ["withdraw.created", "withdraw.completed", "withdraw.failed"],
  "description": "Updated production webhook",
  "created": "2026-07-15T02:00:00Z",
  "updated": "2026-07-16T02:00:00Z",
  "created_by": null,
  "updated_by": null,
  "last_used_at": null,
  "deleted_at": null
}
```
