Webhooks are available on the Pro and Business plans. Every member can see the endpoints; only admins can add, pause, test or remove them.
Set up an endpoint
1
Build a receiving URL
Create a URL on your server that accepts POST requests, for example
https://example.com/webhooks/suresign. It must use https. While building, http://localhost and http://127.0.0.1 are allowed too.2
Add the endpoint
Go to Settings > Developers, find Webhooks and select Add endpoint. Enter the URL and tick the events you want under Send me.
3
Copy the signing secret
Suresign shows the endpoint’s signing secret once. It starts with
whsec_. Copy it into your app’s secret store, then select I have copied it.4
Send a test
Select Test next to the endpoint. Suresign sends a real, signed
document.completed delivery with "test": true and a fake document, and tells you what your server answered.Events
What a delivery looks like
Each delivery is a JSON POST with these headers:
The body holds the event, the time and the document. The
document object is the same shape the REST API returns.
document.completed
document:
Verify every delivery
TheX-Suresign-Signature header is an HMAC-SHA256 of <timestamp>.<raw body>, keyed with your endpoint’s secret, in hex. Checking it protects you from forged requests (nobody without your secret can sign) and replayed ones (the timestamp is signed, so reject anything older than five minutes).
1
Split the header
Read
t (the timestamp) and v1 (the signature) from t=...,v1=....2
Check the age
Reject the delivery if
t is more than 300 seconds from your server’s current time.3
Recompute and compare
Compute HMAC-SHA256 of
t + "." + rawBody with your secret and compare it to v1 in constant time.verify-webhook.js
Delivery and failures
- Timeout: your endpoint has 8 seconds to answer. Reply with any
2xxstatus quickly and do slow work afterwards. - No automatic retries: each event is sent once. If a delivery fails, use the REST API to catch up, for example by listing recent documents.
- Health at a glance: the endpoint list shows the last attempt, the last status or error, and how many deliveries in a row have failed.
- Pause or remove: pause an endpoint to stop deliveries for a while, or remove it entirely.
- Plan changes: if a workspace moves to a plan without webhooks, endpoints are kept but nothing is sent until the plan includes webhooks again.
Next steps
REST API
Download the signed PDF after an event.
Audit Trail
What Suresign records for every step.

