Appearance
Webhooks
Webhooks tell your systems when something happens, so you don't have to poll. A request is sent, viewed, signed, completed, declined, voided or expires. An intake link is answered. An agent asks to send something, or a person decides.
Add an endpoint
- Open your team, then Webhooks, then Add endpoint. Only owners and admins can manage webhooks, on Teams & Platform.
- Give a public
https://URL that you control. - Choose the events it receives.
- Copy the signing secret. It starts with
whsec_and is shown once. You need it to verify deliveries.
Send a test delivers a ping so you can check your endpoint. Deliveries lists the latest attempts with their status codes and errors.
What a delivery looks like
http
POST /justdocs HTTP/1.1
Content-Type: application/json
User-Agent: JustDocs-Webhooks/1
JustDocs-Signature: t=1793722800,v1=6c1f…e9
JustDocs-Event-Id: evt_3b8e1f7c-2a4d-4c6e-9f1b-5d7a9c2e4b6f
{
"id": "evt_3b8e1f7c-2a4d-4c6e-9f1b-5d7a9c2e4b6f",
"type": "request.completed",
"created_at": "2026-11-03T16:20:00.000Z",
"workspace_id": "f1a3c5e7-9b2d-4c4f-a6e8-1b3d5f7a9c2e",
"data": {
"signing_request_id": "c3e9a7b1-2d4f-4a6c-8e1b-5f7d9a2c4e6b",
"status": "completed"
}
}Events carry identifiers and statuses, never document content, signatures or anyone's answers. When you need more, fetch the record through the API with your key. That also means a leaked delivery reveals very little.
Your endpoint's job
- Verify the signature against the raw body before you trust anything in it.
- Answer
2xxquickly, once the event is safely queued or stored. Any status from 200 to 299 counts as delivered. Anything else, a redirect, or no answer within 10 seconds counts as a failure, and the delivery is retried. So if you can't keep an event, answer with an error. - Do the work afterwards, on a queue, so a slow job doesn't cause a retry.
- Drop duplicates by the event
idwhen you do the work, not when the event arrives. A retry has the sameid, and so does the same event on each of your endpoints. Record theidin the same transaction as the work it causes, so an event whose work failed isn't dropped later as a duplicate. - Don't rely on order. Retries can arrive after later events. Use
created_at, or fetch the record's current state.
Rules for endpoints
- HTTPS only, on the public internet. Addresses that resolve to private or reserved networks are refused, both when you add the endpoint and on every delivery.
- Redirects aren't followed.
- A workspace can have a limited number of endpoints. See Plans and limits.
- Webhooks are part of Teams & Platform. A workspace that leaves the plan stops getting them, and gets them again if it comes back.
Next
- Events Every event and its payload.
- Verify signatures Node.js, Python and Go.
- Retries and pausing The schedule, and what happens when an endpoint keeps failing.
- Track completion A complete receiver, start to finish.