Webhook Endpoints
Webhook management endpoints use session-based authentication (the VisiSign dashboard session) and require admin or owner role in the organization.
List webhook endpoints
Section titled “List webhook endpoints”GET /v1/webhooksReturns all webhook endpoints for the organization.
Response:
{ "webhook_endpoints": [ { "id": 1, "url": "https://example.com/webhooks", "events": ["signature_request.signed", "signature_request.completed"], "enabled": true, "consecutive_failures": 0, "last_delivery_at": "2026-03-04T10:00:00Z", "created_at": "2026-01-15T10:00:00Z" } ]}Create a webhook endpoint
Section titled “Create a webhook endpoint”POST /v1/webhooksCreates a new webhook endpoint. The signing secret is returned only in this response.
Body parameters:
| Parameter | Type | Description |
|---|---|---|
url | string | HTTPS URL to receive events (required) |
events | array | Event types to subscribe to (optional — empty means all events) |
Valid events:
signature_request.sentsignature_request.viewedsignature_request.signedsignature_request.declinedsignature_request.completedsignature_request.expiredsignature_request.cancelled
Response (201):
{ "webhook_endpoint": { "id": 2, "url": "https://example.com/webhooks", "events": [], "enabled": true, "consecutive_failures": 0, "created_at": "2026-03-04T12:00:00Z" }, "signing_secret": "whsec_a1b2c3d4e5f6..."}Delete a webhook endpoint
Section titled “Delete a webhook endpoint”DELETE /v1/webhooks/:idPermanently removes the endpoint. No further deliveries will be sent.
Response: 204 No Content
Test a webhook endpoint
Section titled “Test a webhook endpoint”POST /v1/webhooks/:id/testSends a test delivery to the endpoint URL. The test payload looks like:
{ "event": { "type": "test", "timestamp": "2026-03-04T12:00:00Z" }, "signature_request": { "id": "sr_test", "title": "Test Event" }}Response:
{ "message": "Test webhook queued", "delivery_id": 42}The test delivery is queued and sent asynchronously. Check your endpoint logs to confirm receipt.