---
title: "Update a webhook endpoint"
method: PATCH
path: "/v1/webhooks/{id}"
tags: ["Webhooks"]
---

# Update a webhook endpoint

`PATCH /v1/webhooks/{id}`

## Request

- Base URL: `https://api.creem.io`
- URL: `https://api.creem.io/v1/webhooks/{id}`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/creem/apis/creem-api/docs/v1/webhooks/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update the URL, name, status or event filter of a webhook endpoint. Only supplied fields change.

## Path parameters

- `id` string, required

## Request body

- UpdateWebhookRequestEntity
  - `url` string: The HTTPS URL Creem will deliver events to.
  - `name` string, nullable: A human-readable label for the endpoint. Send `null` to clear it.
  - `status` 'enabled' | 'disabled': Whether the endpoint receives deliveries. Disabled endpoints keep their configuration but receive nothing.
  - `events` WebhookEventType[]

## Response `200`

Successfully updated the webhook endpoint

- WebhookEntity
  - `id` string, required: Unique identifier for the object.
  - `mode` 'test' | 'prod' | 'sandbox', required: String representing the environment.
  - `object` string, required: A string representing the object’s type. Objects of the same type share the same value.
  - `store_id` string, required: The store this webhook endpoint belongs to.
  - `name` string, nullable, required: A human-readable label for the endpoint.
  - `url` string, required: The HTTPS URL Creem delivers events to. For `cli` endpoints this is a placeholder that is never called.
  - `delivery_mode` 'http' | 'cli', required: How events reach this endpoint: `http` deliveries are POSTed to `url`; `cli` deliveries wait in the pending-events feed for a local `creem listen` session.
  - `status` 'enabled' | 'disabled', required: Whether the endpoint receives deliveries. Disabled endpoints keep their configuration but receive nothing.
  - `events` WebhookEventType[], required
  - `secret` string: The signing secret used to verify delivery signatures. Only returned when the endpoint is created; retrieve it later via the secret endpoint.

## Other responses

- `400`: Bad Request - Invalid input parameters
- `401`: Unauthorized - Invalid or missing API key
- `404`: Not Found - Resource does not exist

## Changes

- **2026-09-18** `3f39a8f266c3`: 1 info
  - added the required property `delivery_mode` to the response with the `200` status
- **2026-09-16** `ab9722a7eb0c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/creem/apis/creem-api/changes/v1/webhooks/:id/patch.md)

---

[API](https://skmtc.dev/creem/apis/creem-api.md) - [All operations](https://skmtc.dev/creem/apis/creem-api/llms.txt) - [OpenAPI document](https://skmtc.dev/creem/apis/creem-api/revisions/3f39a8f266c3?raw)
