Subscribe a callback URL to a QuoteCloud event
The required OAuth scope depends on event; the exact mapping is on TriggerEvent. status is required for documentStatusChange and is an optional subtype filter for delivery, product, payment, and comment events. Callback URLs must pass QuoteCloud's public HTTPS webhook URL validation.
Permission
An OAuth access token with any one of these scopes. How to get a token
webhooks:document_statuswebhooks:form_submissionwebhooks:contact_createdwebhooks:document_createdwebhooks:recipient_activitywebhooks:contact_changeswebhooks:document_deliverywebhooks:product_changeswebhooks:document_paymentswebhooks:document_commentsParameters
Not sure what to enter? Here’s where to find IDs.
eventpath · stringrequireddocumentStatusChange → 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 · stringrequiredstatusquery · stringdocumentStatusChange; 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 · stringRequest body
Sent as application/json.
hookUrlstring (uri)requiredResponses
200Webhook created or reactivated.
dataobjectrequiredFields
statusstringrequiredsuccess. messagestringrequired400Invalid request or validation failure.
dataobjectrequiredFields
statusstringrequirederror. messagestringrequiredcodestringdocumentRefstringassetGenerationIdstringerrorsarray of objectItem fields
fieldstringrequiredmessagestringrequired401Missing or invalid bearer token or client ID.
errorstringrequirederror_descriptionstring403Insufficient scope, missing add-on, usage limit, or permission denial.
Exactly one of these:
OAuthError
errorstringrequirederror_descriptionstringApiErrorEnvelope
dataobjectrequiredFields
statusstringrequirederror. messagestringrequiredcodestringdocumentRefstringassetGenerationIdstringerrorsarray of objectItem fields
fieldstringrequiredmessagestringrequired429Shared company API request quota exceeded. Wait before retrying.
Retry-Afterheader · integerdataobjectrequiredFields
statusstringrequirederror. messagestringrequiredretryAfterSecondsintegerrequiredCallbacks
QuoteCloud webhook delivery. QuoteCloud sends POST to {$request.body#/hookUrl}.
X-QuoteCloud-Event-Idheader · stringrequireddocument_status:<documentId>:<status>; domain-event deliveries use the payload's id.Payload
Exactly one of these:
DocumentStatusChangeWebhook
The complete body delivered for documentStatusChange. This payload is intentionally minimal; hydrate the full document with GET /api/v1/zapierDocument?document_id=<documentId>.
eventIdstringoccurredAtstring (date-time)previousStatusstringsent, opened, signing, signing_complete, part_paid, paid, accepted, lost, canceled, creating, revising, workflow_review_requested, workflow_review_accepted, pending_sent, scheduled_send, delivery_delayed, delivered, alert, email_complained, email_bounced, send_failed, expired, custom, template, system_template. documentIdstringrequiredstatusstringrequiredsent, opened, signing, signing_complete, part_paid, paid, accepted, lost, canceled, creating, revising, workflow_review_requested, workflow_review_accepted, pending_sent, scheduled_send, delivery_delayed, delivered, alert, email_complained, email_bounced, send_failed, expired, custom, template, system_template. userIdstringrequiredreasonstringreasonDetailsstringFormSubmittedWebhook
idstringrequiredeventstringrequiredform_submission. submissionIdstringrequireddocumentIdstringrequiredrecipientIdstring or nullrequiredsubmittedAtstring (date-time)requiredvalueCountintegerrequiredContactCreatedWebhook
idstringrequiredeventstringrequiredcontact_created. contactIdstringrequiredemailstringrequiredfirstNamestringrequiredlastNamestring or nullrequiredfullNamestringrequiredphonestring or nullrequiredmobilestring or nullrequiredjobTitlestring or nullrequiredaddressstring or nullrequiredcreatedAtstring (date-time)requiredDocumentCreatedWebhook
idstringrequiredeventstringrequireddocument_created. documentIdstringrequireddocumentRefstringrequiredtitlestringrequiredstatusstringrequiredsourcestringrequiredownerIdstringrequiredownerEmailstring or nullrequiredsourceDocumentIdstring or nullrequiredtemplateIdstring or nullrequiredcreatedAtstring (date-time)requireddocumentobjectrequiredFields
idstringrequireddocumentRefstringrequiredtitlestringrequiredstatusstringrequiredRecipientFirstViewedWebhook
idstringrequiredeventstringrequiredrecipient_first_viewed. documentIdstringrequireddocumentRefstringrequireddocumentTitlestringrequireddocumentStatusstringrequiredrecipientIdstringrequiredrecipientEmailstring or nullrequiredrecipientNamestringrequiredfirstViewedAtstring (date-time)requiredviewCountnumberrequireddocumentobjectrequiredFields
idstringrequireddocumentRefstringrequiredtitlestringrequiredstatusstringrequiredrecipientobjectrequiredFields
idstringrequiredemailstring or nullrequiredfirstNamestringrequiredlastNamestring or nullrequiredRecipientSignedWebhook
idstringrequiredeventstringrequiredrecipient_signed. documentIdstringrequireddocumentRefstringrequireddocumentTitlestringrequireddocumentStatusstringrequiredrecipientIdstringrequiredrecipientEmailstring or nullrequiredrecipientNamestringrequiredsignedAtstring (date-time)requiredcompletedFieldCountintegerrequiredremainingSignerCountintegerrequireddocumentSigningCompletebooleanrequireddocumentobjectrequiredFields
idstringrequireddocumentRefstringrequiredtitlestringrequiredstatusstringrequiredrecipientobjectrequiredFields
idstringrequiredemailstring or nullrequiredfirstNamestringrequiredlastNamestring or nullrequiredContactChangedWebhook
idstringrequiredeventstringrequiredcontact_updated, contact_removed. contactIdstringrequiredemailstringrequiredfirstNamestringrequiredlastNamestring or nullrequiredfullNamestringrequiredphonestring or nullrequiredmobilestring or nullrequiredjobTitlestring or nullrequiredaddressstring or nullrequiredchangedFieldsarray of stringrequiredoccurredAtstring (date-time)requiredDocumentDeliveryWebhook
idstringrequiredeventstringrequireddocument_delivery_status_changed. deliveryRefstringrequireddocumentIdstringrequireddocumentRefstring or nullpreviousStatusstring or nullrequiredscheduled, paused_addon, queued, preparing, sending, sent, skipped, failed, needs_review, cancelled. statusstringrequiredscheduled, paused_addon, queued, preparing, sending, sent, skipped, failed, needs_review, cancelled. occurredAtstring (date-time)requiredProductChangedWebhook
idstringrequiredeventstringrequiredproduct_changed. changestringrequiredcreated, updated, activated, deactivated. productIdstringrequirednamestringrequiredskustringrequiredactivebooleanrequiredchangedFieldsarray of stringrequiredoccurredAtstring (date-time)requiredDocumentPaymentWebhook
idstringrequiredeventstringrequireddocument_payment_event. paymentEventstringrequiredreceived, failed, refunded. transactionIdstringrequiredtransactionRefstringrequireddocumentIdstringrequireddocumentRefstring or nullrequireddocumentTitlestringrequireddocumentStatusstringrequiredrecipientIdstring or nullrequiredproviderPaymentRefstringrequiredamountMinorintegerrequiredrefundTotalMinorintegerrequiredcurrencystringrequiredstatusstringrequiredpayerEmailstring or nullrequiredfailureCodestring or nullrequiredfailureMessagestring or nullrequiredoccurredAtstring (date-time)requiredDocumentCommentWebhook
idstringrequiredeventstringrequireddocument_comment_event. commentEventstringrequiredcreated, resolved, reopened. commentIdstringrequiredcommentRefstringrequireddocumentIdstringrequireddocumentRefstring or nullrequireddocumentTitlestringrequireddocumentStatusstringrequiredbodystringrequiredstatusstringrequiredopen, resolved. authorIdstringrequiredauthorNamestring or nullrequiredauthorEmailstring or nullrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredresolvedAtstring (date-time) or nullrequiredReply with 2XX: Acknowledge the event.
Rate limit
120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.