Create a webhook

A webhook tells your system when something happens, so it doesn’t have to keep asking. When a document moves into the status you choose, QuoteCloud sends the details to an address in your system.

Before you start

You need the API & Zapier add-on on your company, access to your organisation’s settings, and an address in your system that can receive the data. A webhook belongs to the company you’re working in, so check you’re in the right one. The pictures show QuoteCloud on a computer.

Need more than document statuses? Webhooks made here only cover status changes. For new contacts, form submissions, payments, comments and more, subscribe through the API.

  1. Open Manage Integrations

    Open the API dashboard and choose Manage Integrations at the top right. If the add-on is off, this page shows the pricing and a button to turn it on.

    The API dashboard, with the Manage Integrations button outlined at the top right.Open full size in a new tab
  2. Start a new webhook

    The panel opens on the Webhooks tab. Choose New webhook. If this is your first webhook, there’s no button because the form is already open.

    The Integrations panel on the Webhooks tab, with the tab and the New webhook button outlined.Open full size in a new tab
  3. Fill in the form

    The new webhook form, with Xero sync as the name, an address, Accepted as the trigger event and Document ID selected.Open full size in a new tab
    Name
    A name you’ll recognise, such as the system you’re connecting.
    URL
    The address in your system that receives the data. It must use https and be reachable from the internet, so localhost and private network addresses won’t save. It can’t contain a username or password.
    Trigger event
    The status that sets it off, such as Accepted or Paid. Each webhook has one, so create one for each status you care about.
    Data sent
    Document ID sends the document’s ID, its status and who changed it. Your system can then ask the API for anything else. Full Zapier document also includes the recipients, line items and links. If the full document can’t be built, you get the shorter version instead.

    Choose Save Webhook.

  4. Check it’s switched on

    Your webhook appears in the list with Active ticked, and it starts working straight away.

    The webhook list, with the Active tick and the actions menu outlined for the Xero sync webhook.Open full size in a new tab
  5. Try it out

    Move a document into the status you chose, then look at the Events table on the API dashboard. Each delivery shows as Success or Failed. Open the ⋮ menu on a row and choose More information to see what was sent, or Retry to send a failed one again. See how to fix a failed delivery.

What your system receives

A POST request with a JSON body. This is the Document ID version, with made-up IDs:

Request body
{
  "documentId": "k57c9m2x8e4t1r6w",
  "status": "accepted",
  "userId": "j90b3n7q5h2s8v4y",
  "eventId": "document_status:k57c9m2x8e4t1r6w:m12d6f9p3a7g5z8c",
  "occurredAt": "2026-11-02T04:15:00.000Z",
  "previousStatus": "opened"
}
documentId
Pass this to Get document status as document_id.
eventId
Stays the same if a delivery is sent again, and also arrives in the X-QuoteCloud-Event-Id header. Keep the ones you’ve handled, so you can ignore repeats.
reason, reasonDetails
Only sent when the status change has a reason, such as why a document was lost.

How to reply

2xx
Delivered. Reply within 15 seconds, and do any slow work after replying.
5xx, 408, 429 or no reply
QuoteCloud tries three more times, after 2, 4 and 8 seconds. If they all fail, the delivery shows as Failed and the webhook stays on.
Any other 4xx, or a redirect
QuoteCloud switches the webhook off and doesn’t try again, because the address looks wrong. Redirects aren’t followed, so use the final address. Fix the problem, then turn it back on.

Keep it safe

Deliveries aren’t signed, so anyone who knows your address could send it a fake one. Put a long, random value in the address, and before you act on anything important, confirm it with Get document status.

Changing a webhook later

Untick Active to pause a webhook without losing it. The ⋮ menu has Edit and Delete. Webhooks made by Zapier also appear in this list, and Zapier controls their event and data.