Authentication
All webhook endpoints require a JWT bearer token. Managing webhooks is restricted to organization Owner and Admin roles (read access is also available to Issuer and Verifier roles).Base path
All webhook endpoints are rooted at/webhooks.
Register a webhook
POST /webhooks/orgs/:orgId/register
Register a webhook URL for an organization.
Required roles: owner, admin
Path parameters
UUID of the organization to register the webhook for.
Request body
A valid URL that CREDEBL will POST event payloads to.
Optional shared secret used for payload verification. Must be at least 16 characters long.
Example
Response
201 on success.Confirmation message.
The registered webhook record.
Get webhook URL
GET /webhooks/orgs/webhookurl
Retrieve the registered webhook URL for an organization or tenant.
Required roles: owner, admin, issuer, verifier
Query parameters
Organization ID to look up the webhook for.
UUID of a specific tenant to look up.
Example
Update a webhook
PATCH /webhooks/orgs/:orgId
Update the webhook URL or secret for an organization.
Required roles: owner, admin
Path parameters
UUID of the organization whose webhook to update.
Request body
New webhook endpoint URL.
New shared secret. Must be at least 16 characters long.
Example
Webhook payload structure
The platform POSTs event data to your registered URL using theWebhookResponseDto structure:
The URL the payload was delivered to.
The event-specific payload from the underlying Aries agent or platform service.
The exact shape of
data depends on the event type (connection, credential, or proof) and
the DIDComm protocol used. Inspect the payloads your endpoint receives to understand the
structure for your specific setup.Error responses
| Status | Meaning |
|---|---|
400 Bad Request | Invalid orgId, missing webhookUrl, or webhookSecret shorter than 16 characters. |
401 Unauthorized | JWT token missing or expired. |
403 Forbidden | Insufficient role — only owner and admin can register or update webhooks. |