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

# Delete Webhook

> Permanently remove a webhook subscription so DialNexa stops delivering events to that URL.

<Warning>
  **Legacy endpoint - deprecated.** Unversioned endpoints are scheduled for removal on **July 31, 2026**. Use the [`/v1` version](/docs/api-reference/v1/webhooks/delete) for new integrations. This endpoint remains available for existing integrations until then.
</Warning>

Permanently removes a webhook subscription. DialNexa immediately stops attempting deliveries to the registered URL, including any events that were queued for retry. This action cannot be undone, and webhook secrets are not recoverable after deletion. If you re-create the same URL later, you must store the new secret and redeploy your verification middleware.

## When to use this

Webhook deletion is destructive. Reach for it only when you want to permanently retire a subscription, for example:

* A consumer service is being decommissioned.
* The URL was registered against a development environment that no longer exists.
* A previous integration leaked the signing secret and the cleanest mitigation is to delete the subscription, rotate any external dependencies on it, and re-register with a new secret.

If you only want to stop receiving events temporarily, use [Update Webhook](/docs/api-reference/v1/webhooks/update) and set `is_active` to `false`. Disabled webhooks keep their secret and event subscriptions, so you can re-enable delivery later without coordinating a redeploy.

## Behavior

* Pending retries for this webhook are dropped from the delivery queue.
* The webhook's signing secret is invalidated.
* Past delivery attempts remain visible in [Webhook delivery logs](/docs/api-access/webhook-retries-and-failures) for audit purposes for the standard retention window.

## Path parameters

| Parameter | Description                                     |
| --------- | ----------------------------------------------- |
| `id`      | The webhook ID, for example `whk_c9v3nz8rq4pm`. |

## Errors

* `404 Not Found` is returned when the webhook does not exist or has already been deleted.
* `403 Forbidden` is returned when the caller's API key does not have webhook management permission.

## Related endpoints

* [Update Webhook](/docs/api-reference/v1/webhooks/update): pause delivery without deleting the subscription.
* [List Webhooks](/docs/api-reference/v1/webhooks/list): confirm the webhook is gone after deletion.
* [Webhook secrets](/docs/api-access/webhook-secrets): how secrets are generated and rotated.


## OpenAPI

````yaml DELETE /user-webhooks/{id}
openapi: 3.0.0
info:
  title: DialNexa API
  description: >-
    Public REST API for the DialNexa voice AI platform. Versioned endpoints are
    under /v1; unversioned endpoints are legacy and deprecated.
  version: 1.0.0
servers:
  - url: https://api.dialnexa.com
    description: DialNexa production API
security:
  - bearer: []
tags:
  - name: API Keys
  - name: Agent Functions
  - name: Agents V1
  - name: Agents2
  - name: Batch Calls
  - name: Batch Calls V1
  - name: Call Logs
  - name: Calls
  - name: Calls V1
  - name: Campaign Leads
  - name: Campaigns
  - name: External Webhooks
  - name: Knowledge Base
  - name: Knowledge Base V1
  - name: LLMs
  - name: LLMs V1
  - name: Languages
  - name: Languages V1
  - name: Organization Phone Numbers
  - name: Organization Phone Numbers V1
  - name: Phone Number Pricing
  - name: Phone Number Pricing V1
  - name: Transcribers
  - name: Transcribers V1
  - name: User Webhooks
  - name: User Webhooks V1
  - name: V1
  - name: Voices
  - name: Voices V1
  - name: Webcall
  - name: Workflow Leads
  - name: Workflow Leads V1
  - name: Workflows
  - name: Workflows V1
paths:
  /user-webhooks/{id}:
    delete:
      tags:
        - User Webhooks
      summary: Soft delete a user webhook
      description: >-
        **Legacy endpoint - deprecated, scheduled for removal on July 31,
        2026.** Use the `/v1` version for new integrations. 
      operationId: UserWebhooksController_remove
      parameters:
        - name: id
          required: true
          in: path
          description: The ID of the webhook.
          schema:
            example: wh_123
            type: string
        - name: x-organization-id
          in: header
          description: RSA encrypted organization ID (base64 format)
          required: true
          schema:
            type: string
            example: BASE64_ENCRYPTED_ORG_ID_HERE
      responses:
        '200':
          description: ''
      deprecated: true
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````