Send a test event to a webhook
Sends a webhook.test event to this webhook only, signed and delivered like any other event in the webhook’s API version, and returns the delivery with status: PENDING. data.object is the webhook’s id and url. Follow the delivery with GET /api/v1/webhooks/:id/deliveries/:deliveryId. The event isn’t listed in GET /api/v1/events, and no other webhook receives it.
Returns 409 INVALID_STATE when the webhook is disabled or paused.
Plan Requirement: Requires the Team plan or higher, or a sandbox organization.
Authorizations
Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.
Headers
API version for this request. Without it, the request uses the organization's default version; an organization without a default is pinned to the latest version by its first request.
2026-09, 2026-10 Makes retries safe. A retry with the same key and the same request replays the stored response for 24 hours (header Idempotent-Replayed: true); the same key with a different request returns 400.
255Path Parameters
The webhook ID.
Response
200
ID of the delivery: one event sent to one endpoint, with every attempt to send it.
The webhook ID.
ID of the event, as GET /api/v1/events/:id takes it. Null for a delivery made before sajn recorded it.
The event type, such as document.completed. Null for an event type that 2026-10 no longer has.
document.created, document.sent, document.fully_signed, document.completed, document.rejected, document.expired, document.withdrawn, document.updated, document.deleted, document.restored, document.archived, document.unarchived, document.expiration_extended, document.expiring_soon, document.party.sent, document.party.delivery_failed, document.party.opened, document.party.read, document.party.signed, document.party.rejected, document.party.delegated, document.party.auth_failed, document.party.verified, document.party.updated, document.party.added, document.party.removed, document.party.reminded, document.comment.created, identity_check.created, identity_check.sent, identity_check.opened, identity_check.verified, identity_check.failed, identity_check.cancelled, contact.created, contact.updated, contact.deleted, company.created, company.updated, company.deleted, template.created, template.updated, template.deleted, template.restored, form.submitted, workspace.created, member.added, member.invited, member.invite_accepted, approval_request.created, approval_request.approved, approval_request.rejected, approval_request.cancelled, login.completed, login.failed, security.document_downloaded, security.documents_exported, security.signature_identity_accessed, security.member_removed, security.member_role_changed, security.role_updated, security.workspace_retention_updated, usage.limit_reached, webhook.test, null SUCCESS when an attempt got a 2xx answer, FAILED when sajn stopped retrying, and PENDING while attempts remain.
SUCCESS, FAILED, PENDING The endpoint URL the delivery was sent to.
ID of the delivery this one replays. Null for an original delivery.
The JSON body sent to the endpoint, in the webhook's API version. Null until the first attempt.
Every attempt, oldest first. Empty until the first attempt.
When the webhook was created.

