Event Notifications Webhooks 1.0

Event Notifications Webhooks — OpenAPI 3.0.1 contract published by Fenergo for the webhooks service of the Fen-X SaaS platform, carrying 4 path(s) and 7 operation(s). Harvested verbatim from Fenergo's own published specification endpoint.

Operations 7

GET /v1/webhooks List all webhook configurations. #
POST /v1/webhooks Add a webhook configuration. #
DELETE /v1/webhooks/{webhookId} Delete webhook configuration. #
PUT /v1/webhooks/{webhookId} Update a webhook configuration. #
GET /v1/webhooks/{webhookId} Get webhook configuration. #
GET /v1/webhooks/event-notification-types List all available event notification types. #
GET /v1/webhooks/{webhookId}/test Test webhook availability. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/webhooks-v1-0"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fenergo-webhooks-v1-0-openapi.json Raw ↑
{
  "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<br /><br /><b>Required permissions:</b><br />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.<br /><br /><b>Required permissions:</b><br />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<br /><br /><b>Required permissions:</b><br />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<br /><br /><b>Required permissions:</b><br />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<br /><br /><b>Required permissions:</b><br />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.<br /><br /><b>Required permissions:</b><br />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.<br /><br /><b>Required permissions:</b><br />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"
          },
    

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-webhooks-v1-0-openapi.json