Skip to main content
Subscribe an endpoint to an event by adding its type to the webhook’s events. Event types are dotted lowercase names: the resource, an optional sub-resource, and what happened, such as document.party.signed. This page lists every type, grouped by resource. Each event links to its reference page, which has the full schema, and each group links to its data on Webhook payloads. Every event appears in GET /api/v1/events for 30 days, whether or not an endpoint subscribed to it. sajn records each occurrence once: if the same thing is reported again with identical data, such as a party opening a document a second time before anything changed, sajn neither records nor delivers it again.

Choose events

Most integrations need only a few events: document.completed means that the sealed PDF is ready: sajn fires it after it has sealed the signed document. document.fully_signed fires earlier, when every party has signed but before the seal, so don’t download the signed file on it.

Document events

These events fire when a document changes state. data.object is the document, in the shape that GET /api/v1/documents/{id} returns. For the extra fields, see Document events.

Party events

These events fire when something happens to one party on a document. data.object is the document, and data.party is the party that the event is about, as GET /api/v1/documents/{id}/parties lists it. For the extra fields, see Party events.

Approval request events

These events follow a document’s internal approval. data.object is the approval request, as GET /api/v1/approval-requests/{id} returns it.

Identity check events

These events fire as an identity check moves through its steps. data.object is the check, as GET /api/v1/identity-checks lists it. The data never contains the verified national identity number.

Contact and company events

These events fire when a contact or a company in the workspace changes. data.object is the contact, as GET /api/v1/contacts/{id} returns it, or the company, as GET /api/v1/companies/{id} returns it.

Template and form events

Template events fire when a template changes; forms don’t fire them. data.object is the template, as GET /api/v1/templates/{id} returns it.

Workspace and usage events

Security events

These events report security-relevant actions in a workspace, for a SIEM or an audit feed. data.object holds the details, and actor says whether a user, an API key, or an OAuth app acted. For the fields, see Security events. Organization-level actions, such as sign-ins, two-factor changes, and API key changes, have no security event, because webhooks belong to a workspace.

sajn Login events

login.completed and login.failed report the outcome of a sajn Login authentication. They use the same delivery, signing, and retries as every other event. For when they fire and their data, see Login webhooks.

Test event

webhook.test is sent only when you call POST /api/v1/webhooks/{id}/test, and only to that webhook. You can’t subscribe to it, and GET /api/v1/events doesn’t list it. data.object is the webhook’s id and url. For how to use it, see Test webhooks locally.

Events in API version 2026-09

An endpoint on 2026-09 receives the same events under their uppercase names, such as DOCUMENT_PARTY_SIGNED. A few differ: document.fully_signed is DOCUMENT_SIGNED, an inbox upload also fires DOCUMENT_ARCHIVE_UPLOADED, reminders are DOCUMENT_REMINDER_AUTOMATIC and DOCUMENT_REMINDER_MANUAL, identity check events are ID_* with ID_CANCELED, and security events are SECURITY_*. For the full mapping, see Upgrading to 2026-10.