Webhooks
Event catalog
7event types cover the envelope lifecycle and each signer's progress through it.
On this page
Supported events
Use the event_type value below as the eventType field when subscribing. An unrecognized value is rejected with 400.
| Event type | Description | Trigger |
|---|---|---|
envelope.sent | Envelope was sent to signers. | after envelope creation and first email dispatch |
envelope.completed | All signers signed and the final PDF is available. | after last signer signs successfully |
envelope.voided | Envelope was voided by the sender. | when envelope status transitions to Voided |
signer.opened | A signer opened the envelope for the first time. | signer's first email link click |
signer.signed | A single signer completed signing (mid-flow, not final). | each signer's completion |
signer.declined | A signer declined to sign the envelope. | when signer clicks Decline |
signer.delegated | A signer delegated their slot to another person. | when signer submits the delegation form |
envelope.completed vs signer.signed
signer.signed fires for each signer as they finish, mid-flow. envelope.completed fires once, after the last signer, and is the event to listen for when you want the final PDF.Test events
One further event type never comes from a subscription: inkfree.test, dispatched by the test endpoint. It creates a real delivery record and exercises the full signing path, so it is the reliable way to check a receiver before going live.
Fetching the catalog
The catalog is also served as JSON, with no authentication, so an integration can populate an event picker at runtime rather than hardcoding the list:
curl
curl "https://api-uat.softsages.com/core/public/inkfree/webhooks/events"200 response
{
"version": "1.0",
"events": [
{
"event_type": "envelope.sent",
"description": "Envelope was sent to signers.",
"trigger": "after envelope creation and first email dispatch"
},
{
"event_type": "envelope.completed",
"description": "All signers signed and the final PDF is available.",
"trigger": "after last signer signs successfully"
},
{
"event_type": "envelope.voided",
"description": "Envelope was voided by the sender.",
"trigger": "when envelope status transitions to Voided"
},
{
"event_type": "signer.opened",
"description": "A signer opened the envelope for the first time.",
"trigger": "signer's first email link click"
},
{
"event_type": "signer.signed",
"description": "A single signer completed signing (mid-flow, not final).",
"trigger": "each signer's completion"
},
{
"event_type": "signer.declined",
"description": "A signer declined to sign the envelope.",
"trigger": "when signer clicks Decline"
},
{
"event_type": "signer.delegated",
"description": "A signer delegated their slot to another person.",
"trigger": "when signer submits the delegation form"
}
]
}