Delete a webhook subscription (deprecated)
Scopewebhooks:writeDeprecated. Use DELETE /v1/accounts/{account_id}/webhooks/{webhook_id}, which behaves identically.
Permanently deletes a webhook subscription. No further events are
delivered to its URL. To stop deliveries reversibly, set active to
false instead.
Retires on 9 December 2026. See the migration guide for what moved where and what changes when you switch.
Keys are prefixed beel_sk_, and each one carries the scopes it was created with: a key
short of the scope an operation needs is answered 403. The scope an operation requires
is shown next to its title, and the full catalogue lives in the Scopes reference.
Keys are created from the BeeL dashboard. They are secret credentials: do not share them or commit them to source control.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X DELETE "https://app.beel.es/api/v1/webhooks/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You do not have permission to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "INVOICE_NOT_FOUND",
"message": "Invoice not found"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Unsupported media type: text/plain. Supported: application/json"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}Update a webhook subscription (deprecated) PATCH
**Deprecated.** Use `PATCH /v1/accounts/{account_id}/webhooks/{webhook_id}`, which behaves identically. Updates the fields present in the body — `url`, `events`, `active`, `account_relationship` — and leaves the rest untouched. - **`events`:** replaces the whole list, it does not add to it, so an event left out of it stops being delivered. - **`active`:** setting it to `false` stops deliveries without discarding the delivery history. A subscription we turned off ourselves (`deactivated_by: beel`) needs a successful test delivery before it can be turned back on. Turning a subscription back on counts towards the limit of 10 active subscriptions, and is rejected with `400` `WEBHOOK_ACTIVE_SUBSCRIPTION_LIMIT_REACHED` when ten are already active. - **Signing secret:** not touched here. Rotate it with `POST /v1/accounts/{account_id}/webhooks/{webhook_id}/secret`. **Retires on 9 December 2026.** See the [migration guide](https://docs.beel.es/changelog/resources-under-the-nif) for what moved where and what changes when you switch.
Send a test event to a webhook endpoint (deprecated) POST
**Deprecated.** Use `POST /v1/accounts/{account_id}/webhooks/{webhook_id}/test`, which behaves identically. Sends a synthetic payload to the subscription's URL immediately, outside the normal delivery queue. Use it to verify that your endpoint is reachable and handles deliveries correctly before you rely on real events. - **Payload:** carries `"test": true` and synthetic data, and is signed like any other delivery, so it also exercises your signature check. - **Retries:** none. A failed test is not retried and does not appear in the delivery history. - **`Idempotency-Key`:** repeating the call with the same key returns the cached result without sending the test payload again. - **Result:** read `delivery_success`; a delivery your endpoint rejected is still a successful test run, not an error. **Retires on 9 December 2026.** See the [migration guide](https://docs.beel.es/changelog/resources-under-the-nif) for what moved where and what changes when you switch.