Webhooks
Listen to Signatures events
Webhooks will be executed as POST
requests against the URL you have defined on your signature order. The URL will be used as-is, no parameters will be stripped.
The POST request will contain a JSON
body similar to the events shown below.
You can use the values included in the webhook body to query the GraphQL API for more details.
All non-200 HTTP status codes will be retried according to a retry backoff sequence:
Attempt | Wait Time |
---|---|
1 | 5 seconds |
2 | 30 seconds |
3 | 60 seconds |
4 | 5 minutes |
5 | 60 minutes |
6 | 5 hours |
7 | 12 hours |
8 | 24 hours |
9 | 36 hours |
10 | 48 hours |
A list of events and sample payloads.
Triggered when a signatory successfully signs the order.
{
"event" = "SIGNATORY_SIGNED",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]"
}
Triggered when a signatory rejects the signature order via the UI.
{
"event" = "SIGNATORY_REJECTED",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]",
"reason" = "[REASON]" | null
}
Triggered when a signatory experiences an error as part of signing.
{
"event" = "SIGNATORY_SIGN_ERROR",
"error" = "[ERROR MESSAGE]",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]"
}
Triggered when a signatory opens the sign link href
{
"event" = "SIGNATORY_SIGN_LINK_OPENED",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]"
}
Triggered when a signatory opens the download link downloadHref
{
"event" = "SIGNATORY_DOWNLOAD_LINK_OPENED",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]"
}
Triggered when a signatory opens, approves or rejects a document.
{
"event" = "SIGNATORY_DOWNLOAD_LINK_OPENED",
"signatureOrderId" = "[GraphQL ID]",
"signatoryId" = "[GraphQL ID]",
"documentId" = "[GraphQL ID]",
"status" = "OPENED|APPROVED|REJECTED|%future%"
}
Triggered when a signature order has expired and is cleaned up.
{
"event" = "SIGNATURE_ORDER_EXPIRED",
"signatureOrderId" = "[GraphQL ID]"
}
Triggered when a signature order is created with webhook validation.
Make sure to respond with 200
/OK
our your signature order will not be created.
{
"event" = "WEBHOOK_VALIDATION"
}
query SignatoryWebhook($signatoryId: ID!) {
signatory(id: $signatoryId) {
status
signatureOrder {
id
}
}
}