Essence Webhook Management API
Unified webhook management platform for partner integrations
Generated from the WebhookManagement service's code at build time (api-specs/generated/WebhookManagement/Essence.Api.WebhookManagement.Api.json) and drift-checked in CI. It describes what the code registers, which is not the same as what any one deployment has routed.
Webhooks
/api/v1/webhooksGets all webhook subscriptions with pagination
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
pageNumber | query | integer (int32) | no | — |
pageSize | query | integer (int32) | no | — |
Request body
No request body.
Responses
WebhookSubscriptionDtoPaginatedResponse/api/v1/webhooksCreates a new webhook subscription
Authentication:Bearer (the document-wide requirement)
Parameters
Takes no parameters.
Request body
Not marked as required in the document.
CreateWebhookSubscriptionRequestasapplication/*+json,application/json,text/json
Responses
CreateWebhookSubscriptionResponseProblemDetails/api/v1/webhooks/eventsTriggers webhook delivery for an event (internal API)
Authentication:Bearer (the document-wide requirement)
Parameters
Takes no parameters.
Request body
Not marked as required in the document.
TriggerWebhookEventRequestasapplication/*+json,application/json,text/json
Responses
integer (int32)ProblemDetails/api/v1/webhooks/{id}Gets a webhook subscription by ID
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
No request body.
Responses
WebhookSubscriptionDtoProblemDetails/api/v1/webhooks/{id}Updates a webhook subscription
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
Not marked as required in the document.
UpdateWebhookSubscriptionRequestasapplication/*+json,application/json,text/json
Responses
ProblemDetails/api/v1/webhooks/{id}Deletes a webhook subscription
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
No request body.
Responses
ProblemDetails/api/v1/webhooks/{id}/deliveriesGets delivery logs for a webhook subscription
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
pageNumber | query | integer (int32) | no | — |
pageSize | query | integer (int32) | no | — |
Request body
No request body.
Responses
WebhookDeliveryLogDto[]ProblemDetails/api/v1/webhooks/{id}/deliveries/redriveRe-drives (replays) this subscription's dead-lettered deliveries — FR-08.058, debt-2026-08-20-044. Scoped to the caller's OWN subscription and idempotent per delivery id: calling twice does not double-deliver, because each dead letter records that it has been replayed.
The replays re-enter the normal signing + retry path as NEW delivery attempts; the original dead-lettered rows stay terminal so the record of the failure survives the recovery. Send no body (or an empty `deliveryIds`) to replay everything eligible.
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
Not marked as required in the document.
RedriveWebhookDeliveriesRequestasapplication/*+json,application/json,text/json
Responses
RedriveWebhookDeliveriesResponseProblemDetailsProblemDetails/api/v1/webhooks/{id}/rotate-secretRotates the webhook's signing secret (FR-08.045). Generates a fresh secret and keeps the previous one valid for an overlap window (default 24h, max 7 days) so receivers can redeploy without dropping deliveries. The new secret is returned ONCE in the response and is never retrievable again.
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
Not marked as required in the document.
RotateWebhookSecretRequestasapplication/*+json,application/json,text/json
Responses
RotateWebhookSecretResponseProblemDetailsProblemDetails/api/v1/webhooks/{id}/statisticsGets delivery statistics for a webhook subscription
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
fromDate | query | string (date-time) | no | — |
toDate | query | string (date-time) | no | — |
Request body
No request body.
Responses
DeliveryStatisticsDtoProblemDetails/api/v1/webhooks/{id}/testSends a test webhook (for testing purposes)
Authentication:Bearer (the document-wide requirement)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | — |
Request body
No request body.
Responses
ProblemDetailsSchemas
CreateWebhookSubscriptionRequest
| Property | Type | Required | Description |
|---|---|---|---|
description | string | null | no | — |
eventTypes | string[] | null | no | — |
secretKey | string | null | no | — |
webhookUrl | string | null | no | — |
CreateWebhookSubscriptionResponse
| Property | Type | Required | Description |
|---|---|---|---|
createdAt | string (date-time) | no | — |
status | string | null | no | — |
subscriptionId | string (uuid) | no | — |
DeliveryStatisticsDto
| Property | Type | Required | Description |
|---|---|---|---|
averageDurationMs | number (double) | no | — |
failedDeliveries | integer (int32) | no | — |
pendingDeliveries | integer (int32) | no | — |
successRate | number (double) | no | — |
successfulDeliveries | integer (int32) | no | — |
totalDeliveries | integer (int32) | no | — |
ProblemDetails
| Property | Type | Required | Description |
|---|---|---|---|
detail | string | null | no | — |
instance | string | null | no | — |
status | integer (int32) | null | no | — |
title | string | null | no | — |
type | string | null | no | — |
RedrivenDelivery
| Property | Type | Required | Description |
|---|---|---|---|
eventType | string | null | no | — |
originalDeliveryId | string (uuid) | no | — |
replacementDeliveryId | string (uuid) | no | — |
RedriveWebhookDeliveriesRequest
| Property | Type | Required | Description |
|---|---|---|---|
deliveryIds | (string (uuid))[] | null | no | — |
maxBatchSize | integer (int32) | null | no | — |
RedriveWebhookDeliveriesResponse
| Property | Type | Required | Description |
|---|---|---|---|
moreAvailable | boolean | no | — |
redriven | RedrivenDelivery[] | null | no | — |
redrivenAt | string (date-time) | no | — |
redrivenCount | integer (int32) | no | — |
skipped | SkippedDelivery[] | null | no | — |
subscriptionId | string (uuid) | no | — |
RotateWebhookSecretRequest
| Property | Type | Required | Description |
|---|---|---|---|
overlapHours | integer (int32) | null | no | — |
RotateWebhookSecretResponse
| Property | Type | Required | Description |
|---|---|---|---|
newSecret | string | null | no | — |
previousSecretExpiresAt | string (date-time) | no | — |
rotatedAt | string (date-time) | no | — |
subscriptionId | string (uuid) | no | — |
SkippedDelivery
| Property | Type | Required | Description |
|---|---|---|---|
deliveryId | string (uuid) | no | — |
reason | string | null | no | — |
TriggerWebhookEventRequest
| Property | Type | Required | Description |
|---|---|---|---|
eventType | string | null | no | — |
payload | string | null | no | — |
source | string | null | no | — |
UpdateWebhookSubscriptionRequest
| Property | Type | Required | Description |
|---|---|---|---|
description | string | null | no | — |
eventTypes | string[] | null | no | — |
secretKey | string | null | no | — |
webhookUrl | string | null | no | — |
WebhookDeliveryLogDto
| Property | Type | Required | Description |
|---|---|---|---|
attemptNumber | integer (int32) | no | — |
canRedrive | boolean | no | — |
createdAt | string (date-time) | no | — |
deliveredAt | string (date-time) | null | no | — |
durationMs | integer (int64) | null | no | — |
errorMessage | string | null | no | — |
eventType | string | null | no | — |
id | string (uuid) | no | — |
nextRetryAt | string (date-time) | null | no | — |
payload | string | null | no | — |
redriveOfDeliveryId | string (uuid) | null | no | — |
redrivenAt | string (date-time) | null | no | — |
responseBody | string | null | no | — |
status | string | null | no | — |
statusCode | integer (int32) | null | no | — |
subscriptionId | string (uuid) | no | — |
updatedAt | string (date-time) | no | — |
webhookUrl | string | null | no | — |
WebhookSubscriptionDto
| Property | Type | Required | Description |
|---|---|---|---|
createdAt | string (date-time) | no | — |
description | string | null | no | — |
eventTypes | string[] | null | no | — |
failureCount | integer (int32) | no | — |
id | string (uuid) | no | — |
lastFailureAt | string (date-time) | null | no | — |
lastSuccessAt | string (date-time) | null | no | — |
partnerId | string (uuid) | no | — |
status | string | null | no | — |
updatedAt | string (date-time) | no | — |
webhookUrl | string | null | no | — |
WebhookSubscriptionDtoPaginatedResponse
| Property | Type | Required | Description |
|---|---|---|---|
hasNextPage | boolean | no | — |
hasPreviousPage | boolean | no | — |
items | WebhookSubscriptionDto[] | null | no | — |
pageNumber | integer (int32) | no | — |
pageSize | integer (int32) | no | — |
totalCount | integer (int32) | no | — |
totalPages | integer (int32) | no | — |