curl --request DELETE \
--url https://app.vumasign.com/api/v1/webhooks/{webhookId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vumasign.com/api/v1/webhooks/{webhookId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vumasign.com/api/v1/webhooks/{webhookId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vumasign.com/api/v1/webhooks/{webhookId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}Remove an endpoint. ⚠️ Queued deliveries go with it.
⚠️ EVERY DELIVERY STILL QUEUED FOR THIS ENDPOINT IS DISCARDED. That is a decision, stated here because a customer who expected the queue to drain deserves to have been told rather than to find out.
Why: the secret that would sign a retry lives on this record and dies with it, so a surviving delivery could only be sent unsigned — which no correct receiver should accept. And deleting an endpoint is a withdrawal of consent to be POSTed to: the usual reasons are a decommissioned URL or a leaked secret, and continuing to send to a hostname that may since have been reassigned is exactly what you asked us to stop doing.
If you want the queue kept, use PATCH {"active": false} instead. It stops delivery immediately, holds the backlog, and resumes it when you re-activate.
⚠️ A SECOND DELETE IS 404, NOT 204. The act is idempotent — the end state is identical — but a client that deleted the wrong id and re-ran its script deserves to learn that the second call named nothing.
curl --request DELETE \
--url https://app.vumasign.com/api/v1/webhooks/{webhookId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vumasign.com/api/v1/webhooks/{webhookId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vumasign.com/api/v1/webhooks/{webhookId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vumasign.com/api/v1/webhooks/{webhookId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>"
}
}Authorizations
Authorization: Bearer vsk_live_…. Chosen over a bespoke X-API-KEY header because every client, proxy and log-redaction rule already knows this one. What a key may DO is its scopes — see x-scopes at the root of this document and x-required-scope on each operation. The scope list is not written here because OpenAPI reserves a requirement’s scope array for oauth2 and openIdConnect and requires it to be empty for an http scheme.
Path Parameters
The endpoint’s id, as returned when it was registered.
An endpoint id.
"01960000-0000-4000-8000-000000000e5d"
Response
Deleted, along with anything queued for it. No body: the resource is gone, so there is nothing true to describe.