Webhooks
Webhooks notify your systems when signing events happen, so you don't have to poll the API. Register an HTTPS endpoint and ESign will POST a JSON event to it.
Events
document.sent— a document was sent for signature.recipient.signed— a recipient completed their fields.document.completed— all recipients signed; the sealed PDF is ready.document.declined— a recipient declined to sign.document.expired— the document passed its expiry without completion.
Payload
{
"id": "evt_...",
"type": "document.completed",
"createdAt": "2026-06-17T01:23:45.000Z",
"data": {
"documentId": "doc_...",
"status": "completed"
}
}Verifying signatures
Each delivery is signed with your endpoint's secret in an X-ESign-Signature header. Compute the HMAC of the raw request body with your secret and compare it in constant time before trusting the event.
Delivery & retries
- Respond with
2xxquickly to acknowledge receipt; do heavy work asynchronously. - Failed deliveries are retried with exponential backoff.
- Events may be delivered more than once — use the event
idto deduplicate.