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

# Update Webhook

> Update a Novacal webhook to change its target URL, adjust which events it subscribes to, or pause deliveries without deleting it.

## What this endpoint is for

Change an existing webhook without re-registering it. Send only the fields you want to change.

## What you can change

* `url` — move deliveries to a different endpoint
* `events` — replace the list of subscribed events
* `is_active` — set to `false` to pause deliveries, and back to `true` to resume

The signing secret does not change when you update a webhook, so your receiving endpoint keeps working.

## Pausing instead of deleting

Set `is_active` to `false` while you deploy or debug your receiver. Novacal stops sending deliveries but keeps the webhook and its secret intact.

## Access

You can only update webhooks registered on your own account. Updating another account's webhook returns `403 access_denied`.


## OpenAPI

````yaml PUT /v1/webhooks/{id}
openapi: 3.1.0
info:
  title: Events API
  description: Public API for managing event types
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.novacal.io
security:
  - bearerAuth: []
paths:
  /v1/webhooks/{id}:
    put:
      description: >-
        Updates a webhook. Use this to change the target URL, change the
        subscribed events, or pause deliveries by setting `is_active` to
        `false`.
      parameters:
        - name: id
          in: path
          description: ID of the webhook to update
          required: true
          schema:
            type: integer
      requestBody:
        description: Webhook fields to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhook'
        required: true
      responses:
        '200':
          description: Webhook updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
components:
  schemas:
    UpdateWebhook:
      type: object
      properties:
        url:
          description: A new target URL for deliveries
          type: string
          example: https://example.com/hooks/novacal-v2
        events:
          description: Replaces the subscribed events
          type: array
          minItems: 1
          items:
            type: string
            enum:
              - event.created
              - event.rescheduled
              - event.canceled
          example:
            - event.rescheduled
        is_active:
          description: Set to `false` to pause deliveries without deleting the webhook
          type: boolean
          example: false
    WebhookResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          description: Indicates whether the request was successful
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/Webhook'
    Webhook:
      type: object
      properties:
        id:
          description: The unique identifier of the webhook
          type: integer
          example: 1
        url:
          description: The URL Novacal sends deliveries to
          type: string
          example: https://example.com/hooks/novacal
        events:
          description: The events this webhook is subscribed to
          type: array
          items:
            type: string
            enum:
              - event.created
              - event.rescheduled
              - event.canceled
          example:
            - event.created
            - event.canceled
        secret:
          description: >-
            The signing secret used to verify deliveries. Compare it against the
            `X-Novacal-Signature` header.
          type: string
          example: novacal_wh_YOUR_SIGNING_SECRET
        is_active:
          description: Whether Novacal is currently sending deliveries to this webhook
          type: boolean
          example: true
        created_at:
          description: The date and time the webhook was created
          type: string
          format: date-time
        updated_at:
          description: The date and time the webhook was last updated
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````