Skip to main content
Every delivery has the same envelope. event is one of the names below and data is that event’s payload.
string
required
The event name.
string
required
When the event was raised, ISO 8601 in UTC.
object
required
Event-specific payload, documented per event below.
boolean
true on a sample sent with Send test event. Absent on real events.
Events about one package are recorded in the order they happened, so an endpoint receives PACKAGE_SENT before that package’s SESSION_SENT events, and SESSION_DECLINED before PACKAGE_DECLINED before the SESSION_CANCELLED events that follow it. A retried delivery can still arrive after later ones, so order by timestamp when it matters. Package events describe the package as a whole. Session events describe one recipient’s turn on a package. A recipient’s recipientName and recipientEmail are nullable because a session can exist before the recipient is known. Every event also carries the package’s custom field values:
object
required
The package’s custom field values, keyed by the custom field’s key. Only fields with a value appear; {} when none are set. Keys are managed under Settings > Custom fields.
The same schemas are published in the OpenAPI spec as WebhookPayload_<EVENT> components, so you can generate types for your listener.

Package events

PACKAGE_SENT

Raised once when a package is sent and its signing sessions are created. The package already reads IN_PROGRESS when this arrives.
string
required
string
required
integer
required
Number of recipients who must act on the package.
integer
required
Number of sessions invited immediately. Lower than signerCount when recipients sign in order.

PACKAGE_COMPLETED

Raised when the last recipient finishes and the package becomes COMPLETED.
string
required
string
required
string
required
ISO 8601 timestamp.

PACKAGE_DECLINED

Raised when a recipient’s decline ends the package as DECLINED. A SESSION_CANCELLED event follows for every other recipient whose session was open.
string
required
string
required
string | null
required
The reason the recipient gave, if any.

PACKAGE_VOIDED

Raised when a package is voided by a member or through the API. A SESSION_CANCELLED event follows for every recipient whose session was open.
string
required
string
required
string
required
Email address of the member who voided it, or system.

PACKAGE_EXPIRED

Raised when a sent package passes its expiry date unsigned. A package that expires before it was ever sent (a draft, or one still scheduled) raises nothing. A SESSION_CANCELLED event follows for every recipient whose session was open.
string
required
string
required

PACKAGE_ON_HOLD

Raised when a package out for signing is put on hold by a member or through the API. Recipients can’t sign until it is resumed.
string
required
string
required
string
required
Email address of the member who put it on hold, or system.

PACKAGE_RESUMED

Raised when a package on hold goes back out for signing.
string
required
string
required
string
required
Email address of the member who resumed it, or system.
string | null
required
The new expiry, ISO 8601, pushed back by the time the package spent on hold. Null when the package never expires.

PACKAGE_SCHEDULED

Raised when a package is scheduled to send later, and again when a scheduled package is moved to a new time. PACKAGE_SENT follows when it sends.
string
required
string
required
string
required
When the package will send, ISO 8601.

PACKAGE_DELETED

Raised when a package that was scheduled, out for signing or on hold is deleted. Deleting a draft, or a package that had already completed, been declined or voided, raises nothing. A SESSION_CANCELLED event follows for every recipient whose session was open. The package is gone by the time this arrives, so GET /api/v1/packages/{packageId} returns 404.
string
required
string
required
string
required
Email address of the member who deleted it.

Session events

All session events share these fields:
string
required
string
required
Matches recipientSessions[].id on GET /api/v1/packages/{packageId}.
string | null
required
string | null
required

SESSION_SENT

Raised when a recipient’s invitation is sent. In a sequential package this happens when it becomes their turn.
string
required

SESSION_OPENED

Raised when the recipient opens their session. Carries the shared fields only.

SESSION_COMPLETED

Raised when the recipient finishes their session.
string
required

SESSION_DECLINED

Raised when the recipient declines to sign. A PACKAGE_DECLINED event follows when the decline ends the package.
string
required
string | null
required
The reason the recipient gave, if any.

SESSION_REMINDED

Raised each time a recipient is sent a reminder, whether a member sent it or the package’s reminder schedule did.
string
required
string
required
manual when a member sent the reminder, automatic when the reminder schedule did.

SESSION_CANCELLED

Raised for each recipient whose session was open, meaning sent and not yet finished, when the package is declined by someone else, voided, expires or is deleted, or when a correction removes the recipient. A recipient whose turn had not come yet raises nothing. When a correction removes the recipient, their session is deleted, so its sessionId no longer appears on the package.
string
required