Unsubscribe webhook

DELETE/api/v1/triggers/{event}/unsubscribe

Delete a webhook subscription

The same event-specific scope used to subscribe is required.

Permission

An OAuth access token with any one of these scopes. How to get a token

webhooks:document_status
Subscribe to document status changes.
webhooks:form_submission
Subscribe to form submissions.
webhooks:contact_created
Subscribe to contact creation.
webhooks:document_created
Subscribe to document creation.
webhooks:recipient_activity
Subscribe to recipient views and signatures.
webhooks:contact_changes
Subscribe to contact updates and removals.
webhooks:document_delivery
Subscribe to delivery status changes.
webhooks:product_changes
Subscribe to product changes.
webhooks:document_payments
Subscribe to document payment events.
webhooks:document_comments
Subscribe to document comment events.

Parameters

Not sure what to enter? Here’s where to find IDs.

eventpath · stringrequired
Scope mapping: documentStatusChange → webhooks:document_status; formSubmitted → webhooks:form_submission; contactCreated → webhooks:contact_created; documentCreated → webhooks:document_created; recipientFirstViewed and recipientSigned → webhooks:recipient_activity; contactUpdated and contactRemoved → webhooks:contact_changes; documentDeliveryStatusChanged → webhooks:document_delivery; productChanged → webhooks:product_changes; documentPaymentEvent → webhooks:document_payments; documentCommentEvent → webhooks:document_comments.One of documentStatusChange, formSubmitted, contactCreated, documentCreated, recipientFirstViewed, recipientSigned, contactUpdated, contactRemoved, documentDeliveryStatusChanged, productChanged, documentPaymentEvent, documentCommentEvent.
client_idquery · stringrequired
The Client ID of your OAuth client. It’s public, and goes on every request alongside your access token. Find it in QuoteCloud under Settings → API dashboard → Manage Integrations → OAuth Clients.Length at least 1.
statusquery · string
Document status for documentStatusChange; optional subtype for delivery (scheduled, paused_addon, queued, preparing, sending, sent, skipped, failed, needs_review, cancelled), product (created, updated, activated, deactivated), payment (received, failed, refunded), or comment (created, resolved, reopened).
zapIdquery · string
Sent by Zapier to identify the Zap. You can leave this out.

Request body

Sent as application/json.

hookUrlstring (uri)required

Responses

200Webhook deleted.
dataobjectrequired
Fields
statusstringrequired
Always success.
messagestringrequired
400Invalid request or validation failure.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
401Missing or invalid bearer token or client ID.
errorstringrequired
error_descriptionstring
403Insufficient scope, missing add-on, usage limit, or permission denial.

Exactly one of these:

OAuthError
errorstringrequired
error_descriptionstring
ApiErrorEnvelope
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
404Requested resource was not found in the token's company.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
429Shared company API request quota exceeded. Wait before retrying.
Retry-Afterheader · integer
Minimum seconds to wait before retrying.Value at least 1.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
retryAfterSecondsintegerrequired
Value at least 1.

Rate limit

120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.