{
"openapi": "3.0.1",
"info": {
"title": "Event Notifications Webhooks",
"description": "An API to manage event notifications webhooks.\n\nWebhooks allow you to build or setup integrations which subscribe to certain events from Fen-X. When one of those events is triggered, we'll send an HTTP POST payload to the webhook's configured URL. \n\nUsing this API you can Add, Update, Delete and List your tenant's webhooks. You can add app to 10 webhooks per tenant.",
"version": "1.0"
},
"servers": [
{
"url": "/webhooks"
}
],
"paths": {
"/v1/webhooks": {
"get": {
"tags": [
"Webhooks"
],
"summary": "List all webhook configurations.",
"description": "\nThis method will list all webhook configurations for specific tenant
Required permissions:
Following permissions are required: WebhookAccess",
"operationId": "ListWebhooks",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.ListWebhooksResponse class containing webhook configuration results",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"post": {
"tags": [
"Webhooks"
],
"summary": "Add a webhook configuration.",
"description": "\nThis method will add new webhook configuration for specific tenant\n\nThe maximum number of configurations allowed is 10.
Required permissions:
Following permissions are required: WebhookManagement",
"operationId": "AddWebhook",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.AddWebhookRequest class represents add request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AddWebhookRequest"
}
],
"description": "Add a webhook."
}
}
}
},
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.AddWebhookResponse class represents new webhook configuration",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/{webhookId}": {
"delete": {
"tags": [
"Webhooks"
],
"summary": "Delete webhook configuration.",
"description": "\nThis method will delete specific webhook configuration
Required permissions:
Following permissions are required: WebhookManagement",
"operationId": "DeleteWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Webhook configuration was successfully deleted."
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"put": {
"tags": [
"Webhooks"
],
"summary": "Update a webhook configuration.",
"description": "\nThis method will update specific webhook configuration
Required permissions:
Following permissions are required: WebhookManagement",
"operationId": "UpdateWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.UpdateWebhookRequest class represents update request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateWebhookRequest"
}
],
"description": "Represents a request to update a webhook."
}
}
}
},
"responses": {
"200": {
"description": "Webhook configuration was successfully updated."
},
"400": {
"description": "Bad request. The request has missing/invalid values"
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"get": {
"tags": [
"Webhooks"
],
"summary": "Get webhook configuration.",
"description": "\nThis method will return specific webhook configuration
Required permissions:
Following permissions are required: WebhookAccess",
"operationId": "GetWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.GetWebhookResponse class represents webhook configuration",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
}
}
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/event-notification-types": {
"get": {
"tags": [
"Webhooks"
],
"summary": "List all available event notification types.",
"description": "\nThis method will list all available event notification types.
Required permissions:
Following permissions are required: WebhookAccess",
"operationId": "ListEventNotificationTypes",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Utils.Dto.ListEventNotificationTypesResponse class containing event notification types\n results.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/{webhookId}/test": {
"get": {
"tags": [
"Webhooks"
],
"summary": "Test webhook availability.",
"description": "\nThis method allows to check if webhook is available and prepared to receive events.
Required permissions:
Following permissions are required: WebhookManagement",
"operationId": "TestWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.TestWebhookResponse class representing test response",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
}
}
},
"404": {
"description": "There is no webhook configuration for this tenant and webhook id"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AddWebhookRequest": {
"required": [
"enabled",
"eventTypes",
"secret",
"url"
],
"type": "object",
"properties": {
"name": {
"maxLength": 128,
"type": "string",
"description": "The name of the webhook.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"example": "https://www.example.com"
},
"secret": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "The webhook secret.",
"example": "secret"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"example": [
"entitydata:draftcreated_enriched"
]
},
"emailAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of email addresses which will be notified when the system disables the webhook (maximum 5 email addresses)",
"nullable": true,
"example": [
"someone@example.com"
]
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type. Default value: Single",
"nullable": true,
"example": "Single"
},
"batchSize": {
"maximum": 100,
"minimum": 10,
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
}
},
"additionalProperties": false,
"description": "Add a webhook."
},
"AddWebhookResponse": {
"type": "object",
"properties": {
"webhookId": {
"type": "string",
"description": "The identifier of the added webhook.",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
}
},
"additionalProperties": false,
"description": "The reponse when adding a webhook."
},
"BasicWebhook": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The webhook name.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"nullable": true,
"example": "https://www.example.com"
},
"id": {
"type": "string",
"description": "The webhook identifier",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"nullable": true,
"example": [
"entitydata:draftcreated_enriched"
]
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookStatus"
}
],
"description": "The webhook status",
"nullable": true
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type",
"nullable": true,
"example": "Single"
},
"batchSize": {
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
}
},
"additionalProperties": false
},
"DeliveryAttempt": {
"type": "object",
"properties": {
"when": {
"type": "string",
"description": "Timestamp of the delivery",
"format": "date-time"
},
"notificationId": {
"type": "string",
"description": "Id of notification used in delivery attempt",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemStatus"
}
],
"description": "Status of the delivery",
"example": "Succeeded"
},
"httpStatusCode": {
"type": "integer",
"description": "Http status code of delivery request",
"format": "int32",
"nullable": true,
"example": 200
}
},
"additionalProperties": false
},
"DeliveryDetail": {
"type": "object",
"properties": {
"when": {
"type": "string",
"description": "Timestamp of the delivery attempt.",
"format": "date-time"
},
"notificationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Identifiers of the notifications included in this delivery attempt.\nContains a single entry for `Single` deliveries and multiple entries for `Batch` deliveries.",
"nullable": true
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemType"
}
],
"description": "Delivery mode — `Single` or `Batch`."
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemStatus"
}
],
"description": "Outcome of the delivery attempt."
},
"httpStatusCode": {
"type": "integer",
"description": "HTTP status code returned by the webhook endpoint, if a response was received.",
"format": "int32",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents a single delivery attempt in the webhook delivery history."
},
"DeliveryItemStatus": {
"enum": [
"Successful",
"Failed",
"TimedOut"
],
"type": "string"
},
"DeliveryItemType": {
"enum": [
"Single",
"Batch"
],
"type": "string"
},
"DeliverySummaryResponse": {
"type": "object",
"properties": {
"totalDeliveryAttempts": {
"type": "integer",
"description": "Raw count of delivery records in the date range.",
"format": "int32"
},
"successfulDeliveries": {
"type": "integer",
"description": "Count of delivery attempts with a Successful status.",
"format": "int32"
},
"failedDeliveries": {
"type": "integer",
"description": "Count of delivery attempts with a Failed status.",
"format": "int32"
},
"timedOutDeliveries": {
"type": "integer",
"description": "Count of delivery attempts with a TimedOut status.",
"format": "int32"
},
"successfullyDeliveredUniqueEvents": {
"type": "integer",
"description": "Count of distinct notification IDs that appear in at least one successful delivery.\nFor batch deliveries each notification ID in the batch is counted individually.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "Aggregated delivery counts for a webhook over a requested date range."
},
"DeliveryTestResult": {
"type": "object",
"properties": {
"status": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemStatus"
}
]
},
"httpStatusCode": {
"type": "integer",
"format": "int32",
"nullable": true
}
},
"additionalProperties": false
},
"EventNotificationTypeDto": {
"type": "object",
"properties": {
"eventType": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
},
"example": {
"nullable": true
}
},
"additionalProperties": false
},
"GetNotificationResponse": {
"type": "object",
"properties": {
"notification": {
"allOf": [
{
"$ref": "#/components/schemas/NotificationDetail"
}
],
"description": "The notification detail, including its decrypted payload.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents the response when retrieving a specific notification by ID."
},
"GetWebhookResponse": {
"type": "object",
"properties": {
"webhook": {
"allOf": [
{
"$ref": "#/components/schemas/Webhook"
}
],
"description": "The Webhook information.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents the response when getting a sepecific webhook."
},
"ListDeliveriesResponse": {
"type": "object",
"properties": {
"deliveries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeliveryDetail"
},
"description": "The collection of delivery records for the requested time window.",
"nullable": true
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor to pass as `cursor` on the next request to retrieve the following page.\n`null` when no further pages exist.",
"nullable": true
},
"hasMore": {
"type": "boolean",
"description": "Indicates whether additional pages of results are available."
}
},
"additionalProperties": false,
"description": "Represents a paginated response when listing webhook delivery history."
},
"ListEventNotificationTypesResponse": {
"type": "object",
"properties": {
"eventTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventNotificationTypeDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"ListWebhooksResponse": {
"type": "object",
"properties": {
"webHooks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BasicWebhook"
},
"description": "The collection of webhooks.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents a response when listing webhooks."
},
"NotificationDetail": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the notification.",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"eventType": {
"type": "string",
"description": "The event type that triggered this notification.",
"nullable": true,
"example": "entitydata:draftcreated_enriched"
},
"when": {
"type": "string",
"description": "Timestamp of when the event occurred.",
"format": "date-time"
},
"correlationId": {
"type": "string",
"description": "Correlation identifier carried through from the originating request.",
"nullable": true,
"example": "corr-abc-123"
},
"causationId": {
"type": "string",
"description": "Causation identifier of the command or event that caused this notification.",
"nullable": true,
"example": "cause-def-456"
},
"relativeUrl": {
"type": "string",
"description": "Relative URL of the resource associated with the event.",
"nullable": true,
"example": "/api/entity/12345"
},
"payload": {
"description": "The full, decrypted event payload as originally delivered to the webhook endpoint.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Full detail of a single notification, including its decrypted payload."
},
"ObjectServiceResponse": {
"type": "object",
"properties": {
"data": {
"nullable": true
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceResponseMessage"
},
"nullable": true
}
},
"additionalProperties": false
},
"ServiceResponseMessage": {
"type": "object",
"properties": {
"message": {
"type": "string",
"nullable": true
},
"type": {
"type": "string",
"nullable": true
},
"errorCode": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"TestWebhookResponse": {
"type": "object",
"properties": {
"delivery": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryTestResult"
}
],
"description": "Information about delivery.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents a response when testing webhook."
},
"UpdateWebhookRequest": {
"required": [
"enabled",
"eventTypes",
"url"
],
"type": "object",
"properties": {
"name": {
"maxLength": 128,
"type": "string",
"description": "The name of the webhook.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"example": "https://www.example.com"
},
"secret": {
"maxLength": 128,
"type": "string",
"description": "The webhook secret. If not specified or empty string, then the\nexisting secret is retained.",
"nullable": true,
"example": "secret"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"example": [
"entitydata:draftcreated_enriched"
]
},
"emailAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of email addresses which will be notified when the system disables the webhook (maximum 5 email addresses)",
"nullable": true,
"example": [
"someone@example.com"
]
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type. Default value: Single",
"nullable": true,
"example": "Single"
},
"batchSize": {
"maximum": 100,
"minimum": 10,
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
}
},
"additionalProperties": false,
"description": "Represents a request to update a webhook."
},
"Webhook": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The webhook name.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"nullable": true,
"example": "https://www.example.com"
},
"id": {
"type": "string",
"description": "The webhook identifier",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"nullable": true,
"example": [
"entitydata:draftcreated_enriched"
]
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookStatus"
}
],
"description": "The webhook status",
"nullable": true
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type",
"nullable": true,
"example": "Single"
},
"batchSize": {
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
},
"lastDeliveries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeliveryAttempt"
},
"description": "Collection of last 20 webhook's deliveries",
"nullable": true
},
"emailAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of email addresses which will be notified when the system disables the webhook (maximum 5 email addresses)",
"nullable": true,
"example": [
"someone@example.com"
]
}
},
"additionalProperties": false
},
"WebhookStatus": {
"enum": [
"UserDisabled",
"Enabled",
"SystemDisabled",
"Retrying"
],
"type": "string"
},
"WebhookType": {
"enum": [
"Single",
"Batch"
],
"type": "string"
}
},
"securitySchemes": {
"Bearer": {
"type": "apiKey",
"description": "Please insert JWT with Bearer into field",
"name": "Authorization",
"in": "header"
}
}
},
"security": [
{
"Bearer": [ ]
}
]
}