---
title: "Update Webhook"
method: PUT
path: "/v2/webhook/{id}"
tags: ["Webhook"]
---

# Update Webhook

`PUT /v2/webhook/{id}`

Updates the webhook. Any fields not provided in the request body will reset to their default values.

## Path parameters

- `id` string, uuid, required

## Request body

- WebhookRequest
  - `event_type` 'LINK_HIT' | 'OPT_OUT' | 'MMS_STATUS' | 'SMS_INBOUND' | 'SMS_STATUS' | 'MMS_INBOUND' | 'WHATSAPP_STATUS' | 'WHATSAPP_INBOUND' | 'RCS_STATUS' | 'RCS_INBOUND' — Event type string values: - LINK_HIT: Link hit event when a recipient visits a tracked link - OPT_OUT: Opt out event when a recipient visits an opt-out link or by sending a message with the text "STOP" - MMS_STATUS: Status change for a MMS messages. Currently only comprised of internal statuses (sent, failed) - SMS_INBOUND: Inbound SMS sent from a recipient back to the sender - SMS_STATUS: Status change for a SMS message. Includes internal statuses (sent, failed) and delivery receipts (soft_bounce, hard_bounce, delivered, undelivered). Multiple status events can be triggered for a single message - MMS_INBOUND: Inbound MMS sent from a recipient back to the sender - WHATSAPP_STATUS: Status change for Whatsapp messages - WHATSAPP_INBOUND: Inbound Whatsapp sent from a recipient back to the sender - RCS_STATUS: Status change for RCS messages - RCS_INBOUND: Inbound RCS sent from a recipient back to the sender
  - `filter` object — Filter to apply to webhook events. The filters are applied differently based on the event type: - For status events (`SMS_STATUS`, `MMS_STATUS`, etc.): `sender`, `status`, `message_ref`, and `campaign_id` filters are applied to the **status** payload. - For `LINK_HIT` events: `sender` and `message_ref` filters are applied to the `source_message` in the link-hit payload. - For `OPT_OUT` events: `sender` and `message_ref` filters are applied to the `source_message` in the opt-out payload. - For inbound events (`SMS_INBOUND`, `MMS_INBOUND`, etc.): `sender` filter is applied to the `recipient` field (the sender address that received the inbound message), while `message_ref` and `campaign_id` filters are applied to `last_message` if available. Within each filter array (e.g., sender, status, message_ref), the conditions are combined using an OR logic. For example, if multiple senders are specified, the webhook will trigger if the event matches any of the specified senders. Between different filters (e.g., sender and status), the conditions are combined using an AND logic. For example, the webhook will trigger only if the event matches both the specified sender and the specified status.
    - `event_type` EventType[] — Types of events to subscribe to
    - `sender` string[] — Filter by sender. For outbound events (status, link-hit, opt-out), this filters by the sender of the outbound message. For inbound events, this filters by the recipient of the inbound message (the sender address that received it).
    - `status` string[] — Filter by message status (only applicable for status events)
    - `message_ref` string[] — Filter by message ref
    - `campaign_id` string[] — Filter by campaign ID
  - `name` string, required — Name of the webhook
  - `url` string, uri, required — URL (https) that accepts JSON encoded POST requests
  - `rate_limit` integer — Rate limit for your URL in requests per second. Max 10,000/sec. If set to 0 or not specified, the default system limit will be applied.
  - `is_sandbox` boolean — Deprecated. Will be removed in a future version.

## Response `200`

Webhook updated successfully

- WebhookResponse — Webhook details.
  - `id` string, required — Unique identifier for the webhook.
  - `filter` Filter, nullable — Filter applied to webhook events
    - `event_type` EventType[] — Types of events to subscribe to
    - `sender` string[] — Filter by sender
    - `status` string[] — Filter by message status (only applicable for status events)
    - `message_ref` string[] — Filter by message ref
    - `campaign_id` string[] — Filter by campaign ID
  - `name` string, required — Name of the webhook.
  - `url` string, uri, required — URL (https) that accepts JSON encoded POST requests.
  - `rate_limit` integer, required — Rate limit for the webhook in requests per second.
  - `is_sandbox` boolean, required — Deprecated. Will be removed in a future version.
  - `created_at` string, date-time, required — Timestamp when the webhook was created.
  - `updated_at` string, date-time, required — Timestamp when the webhook was last updated.

## Other responses

- `400` — Validation error

---

[API](https://skmtc.net/kudosity/apis/transmit-message-api.md) · [All operations](https://skmtc.net/kudosity/apis/transmit-message-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kudosity/transmit-message-api/versions/bf132756e067/schema)
