{
  "openapi": "3.0.3",
  "paths": {
    "/jobs/{id}": {
      "get": {
        "description": "Retrieve Job based on ID",
        "operationId": "JobsController_findOne",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Job to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDto"
                }
              }
            }
          },
          "403": {
            "description": "Job cannot be accessed with the current API client permissions",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Unauthorized to access Job with id 01HQXYZ123ABC456DEF789GHI",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Job with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Job with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Job Based on ID",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs": {
      "get": {
        "description": "Retrieve Jobs sorted by ascending startDate. By default, the response contains the 100 (maxItems property) first items. To retrieve the next items matching the request, use the query parameter 'after' with the ID of the last item",
        "operationId": "JobsController_findAll",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "required": false,
            "in": "query",
            "description": "Filter for Jobs with startDate greater than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "until",
            "required": false,
            "in": "query",
            "description": "Filter for Jobs with startDate less than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "workflowId",
            "required": false,
            "in": "query",
            "description": "Filter for Jobs using a specific Workflow",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "after",
            "required": false,
            "in": "query",
            "description": "Cursor for pagination. Indicates that the API should return the Jobs which are immediately after this one in the list (the next page)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxItems",
            "required": false,
            "in": "query",
            "description": "Maximum number (1 - 1000) of Jobs that might be returned. It is possible that the response contains fewer elements. Default to 100",
            "schema": {
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrollableJobDtoDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "maxItems must be an integer number",
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Jobs Sorted by Ascending StartDate and Filters",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/single-file": {
      "post": {
        "description": "Create a Job for a workflow based on a unique file. It returns the Job unique identifier and the url where to upload the file to be processed. Note that the Job will be in AWAITING_FOR_FILE status for maximum 2 hours and will be deleted if no file is provided.",
        "operationId": "JobsController_createSingleFileJob",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSingleFileJobRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSingleFileJobResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid job configuration or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "workflowId must be a string",
                      "jobName must be a string"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Workflow configuration is not enabled, not validated, or not allowed for the API client",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI is not enabled",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Workflow configuration with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json', or the file extension is not supported",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "File of type '.exe' is not supported",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create Job For A Single File Workflow",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/payload-pdf": {
      "post": {
        "description": "Create a Job for a workflow based on a PDF payload. It stores the provided payload and returns the url where to upload the PDF file to be processed. Note that the Job will be in AWAITING_FOR_FILE status for maximum 2 hours and will be deleted if no file is provided.",
        "operationId": "JobsController_createPayloadPdfJob",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayloadPdfJobRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePayloadPdfJobResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload PDF job configuration or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI is not configured for PAYLOAD_PDF input source",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Workflow configuration is not enabled, not validated, or not allowed for the API client",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI is not validated",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Workflow configuration with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json', or the file extension is not supported",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "File of type '.txt' is not supported",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create Job For A Payload PDF Workflow",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/payload-word": {
      "post": {
        "description": "Create a Job for a workflow based on a Word payload. It stores the provided payload (including template data) and returns the Job unique identifier.",
        "operationId": "JobsController_createPayloadWordJob",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayloadWordJobRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePayloadWordJobResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload Word job configuration or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI is not configured for PAYLOAD_WORD input source",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Workflow configuration is not enabled, not validated, or not allowed for the API client",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI is not enabled",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Workflow configuration with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Workflow configuration 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json', or the file extension is not supported",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "File of type '.pdf' is not supported",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create Job For A Payload Word Workflow",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/sending-events/{id}": {
      "get": {
        "description": "Retrieve SendingEvent based on ID",
        "operationId": "SendingEventsController_findOne",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the SendingEvent to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with the SendingEvent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendingEventResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sending event public ID format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Invalid public id format",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Sending event cannot be accessed with the current API client permissions",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Department 01HQDEPARTMENT123456789 of sending event 01HQSENDINGEVENT12345 is not allowed to be used with the api client",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Sending event with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "SendingEvent not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve SendingEvent Based on ID",
        "tags": [
          "SendingEvents"
        ]
      }
    },
    "/sending-events": {
      "get": {
        "description": "Retrieve SendingEvents sorted by ascending startDate. By default, the response contains the 100 (maxItems property) first items. To retrieve the next items matching the request, use the query parameter 'after' with the ID of the last item",
        "operationId": "SendingEventsController_findSendingEvents",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents belonging to a specific Job",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobName",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents belonging to Jobs with a given name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowId",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents using a specific Workflow",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowName",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents built using specific Workflows. Note that the workflowName is captured at the creation of the SendingEvent. Further changes (ex. name) of the Workflow are not updated in the SendingEvents",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "technicalStatus",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents with specific status",
            "schema": {
              "type": "string",
              "enum": [
                "IN_PROGRESS",
                "SUCCESS",
                "WARNING",
                "FAILURE"
              ]
            }
          },
          {
            "name": "businessStatus",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents with specific businessStatus",
            "schema": {
              "type": "string",
              "enum": [
                "NOT_STARTED",
                "SCHEDULED_FOR_EXECUTION",
                "IN_PROGRESS",
                "SUCCESS",
                "FAILURE",
                "REJECTED"
              ]
            }
          },
          {
            "name": "from",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents with startDate greater than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "until",
            "required": false,
            "in": "query",
            "description": "Filter for SendingEvents with startDate less than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "after",
            "required": false,
            "in": "query",
            "description": "Cursor for pagination. Indicates that the API should return the SendingEvents which are immediately after this one in the list (the next page)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxItems",
            "required": false,
            "in": "query",
            "description": "Maximum number (1 - 1000) of Sending Events that might be returned. It is possible that the response contains fewer elements. Default to 100",
            "schema": {
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with a list of SendingEvents",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrollableSendingEventResponseDtoDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "from must be a valid ISO 8601 date string",
                      "maxItems must be an integer number"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve SendingEvents Sorted by Ascending Start Date and Filters",
        "tags": [
          "SendingEvents"
        ]
      }
    },
    "/sending-events/{id}/resend": {
      "post": {
        "description": "Creates a new Sending Event from an existing one in a final state (success or failure). All tasks are re-executed using the original document. Not allowed on Sending Events that are themselves a re-send.",
        "operationId": "SendingEventsController_resend",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Public identifier of the original Sending Event to re-send",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The public identifier of the newly created Sending Event",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResendSendingEventResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sending event public ID format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Invalid public id format",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Sending event cannot be accessed with the current API client permissions",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Department 01HQDEPARTMENT123456789 of sending event 01HQSENDINGEVENT12345 is not allowed to be used with the api client",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Sending event with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "SendingEvent not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Sending event cannot be resent from its current state",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 409,
                    "message": "Cannot re-send an already re-sent sending event",
                    "error": "Conflict"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Re-send a Completed SendingEvent",
        "tags": [
          "SendingEvents"
        ]
      }
    },
    "/sending-events/{id}/files/{fileReference}/download-url": {
      "get": {
        "description": "Retrieve Sending Event files (documents, ePod, Submission report). The file download can be initiated with a GET request on the received URL.",
        "operationId": "SendingEventsController_retrieveDownloadUrl",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileReference",
            "required": true,
            "in": "path",
            "description": "Reference of the SendingEvent file to be retrieved, as exposed in the SendingEvent documents or in file-ready webhooks",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pre-signed URL to download Sending Event files (documents, ePod, Submission report). The file download can be initiated with a GET request on the received URL.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sending event public ID format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "SendingEvent id is malformatted",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Sending event cannot be accessed with the current API client permissions",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Department 01HQDEPARTMENT123456789 of sending event 01HQSENDINGEVENT12345 is not allowed to be used with the api client",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Sending event or file not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "File 01HQDOCUMENT123456789 of SendingEvent 01HQSENDINGEVENT12345 not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Pre-signed URL to Download SendingEvent Files (Documents, ePod, Submission Report).",
        "tags": [
          "SendingEvents"
        ]
      }
    },
    "/workflows/{id}": {
      "get": {
        "description": "Retrieve Workflow Configuration based on ID",
        "operationId": "WorkflowsController_findOne",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Workflow Configuration to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with the Workflow Configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Workflow configuration cannot be accessed with the current API client permissions",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Missing required permission",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Workflow configuration with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Workflow not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Workflow Configuration Based on ID",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/workflows": {
      "get": {
        "description": "Retrieve the Workflow Configurations. By default, the response contains the 100 (maxItems property) first items. To retrieve the next items matching the request, use the query parameter 'after' with the ID of the last item",
        "operationId": "WorkflowsController_findWorkflows",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter for the name of the Workflow",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enabled",
            "required": false,
            "in": "query",
            "description": "Filter for Workflows based on their enabled status",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "validated",
            "required": false,
            "in": "query",
            "description": "Filter for Workflows based on their validation status",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "after",
            "required": false,
            "in": "query",
            "description": "Cursor for pagination. Indicates that the API should return the Workflows which are immediately after this one in the list (the next page)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxItems",
            "required": false,
            "in": "query",
            "description": "Maximum number (1 - 1000) of Workflows that might be returned. It is possible that the response contains fewer elements. Default to 100",
            "schema": {
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with a paginated list of Workflow Configurations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrollableWorkflowResponseDtoDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "enabled must be a boolean value",
                      "maxItems must be an integer number"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Workflow Configurations",
        "tags": [
          "Workflows"
        ]
      }
    },
    "/peppol-incoming-documents": {
      "get": {
        "description": "Retrieve Incoming Peppol Documents. Use the 'sortField' parameter to choose the ordering field: 'createdAt' (default) or 'lastModifiedAt', and the 'sortOrder' parameter to choose the direction: 'desc' (default) or 'asc'. The 'from' and 'until' filters apply to the same field selected by 'sortField'. By default, the response contains the 100 (maxItems property) first items. To retrieve the next items matching the request, use the query parameter 'after' with the ID of the last item.",
        "operationId": "PeppolController_retrieveIncomingPeppolDocumentsForFilter",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": false,
            "in": "query",
            "description": "Filter for a Peppol Incoming Document using a specific DocumentID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senderName",
            "required": false,
            "in": "query",
            "description": "Filter for a Peppol Incoming Document with a given Sender Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentType",
            "required": false,
            "in": "query",
            "description": "Document Type of the Peppol Incoming Document",
            "schema": {
              "type": "string",
              "enum": [
                "BIS_BILLING_INVOICE_V3",
                "BIS_SELF_BILLING_INVOICE_V3",
                "BIS_BILLING_CREDIT_NOTE_V3",
                "BIS_SELF_BILLING_CREDIT_NOTE_V3",
                "INVOICE_RESPONSE_3_0",
                "ORDER_3_0",
                "ORDER_AGREEMENT_3_0",
                "ORDER_RESPONSE_3_0",
                "CATALOGUE_3_0",
                "CATALOGUE_RESPONSE_3_0",
                "PUNCH_OUT_3_0",
                "DESPATCH_ADVICE_3_0",
                "MESSAGE_LEVEL_RESPONSE_3_0",
                "ORDER_CHANGE",
                "ORDER_CANCELLATION",
                "ORDER_RESPONSE_ADVANCED",
                "UNKNOWN"
              ]
            }
          },
          {
            "name": "from",
            "required": false,
            "in": "query",
            "description": "Filter for PePPOL Documents with the sort field (createdAt by default, or lastModifiedAt when sortField=lastModifiedAt) greater than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "until",
            "required": false,
            "in": "query",
            "description": "Filter for PePPOL Documents with the sort field (createdAt by default, or lastModifiedAt when sortField=lastModifiedAt) less than a specific datetime expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "sortField",
            "required": false,
            "in": "query",
            "description": "Field used to sort the results. The from/until filters apply to this same field. Defaults to createdAt.",
            "schema": {
              "default": "createdAt",
              "type": "string",
              "enum": [
                "createdAt",
                "lastModifiedAt"
              ]
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "Order in which to sort the results. Defaults to desc.",
            "schema": {
              "default": "desc",
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "after",
            "required": false,
            "in": "query",
            "description": "Pagination cursor. Provide the 'after' parameter value returned in the previous response to retrieve the next page of Peppol Documents (items that come immediately after that document in the result order). This value must be URL-encoded as it may contain special characters like #.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxItems",
            "required": false,
            "in": "query",
            "description": "Maximum number (1 - 1000) of Peppol Documents that might be returned. It is possible that the response contains fewer elements. Default to 100",
            "schema": {
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeppolIncomingDocumentsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter format or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "The 'after' parameter is missing the required '#' separator. Expected format: 'senderId#id'. Make sure you URL-encode it: the '#' character must be encoded as '%23'.",
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Incoming Peppol Documents with Sorting and Filters",
        "tags": [
          "Peppol Incoming Documents"
        ]
      }
    },
    "/peppol-incoming-documents/sender/{senderId}/document/{id}": {
      "get": {
        "description": "Retrieve Incoming Peppol Document based on ID",
        "operationId": "PeppolController_retrieveIncomingPeppolDocument",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senderId",
            "required": true,
            "in": "path",
            "description": "Peppol sender participant identifier",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Peppol Document to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/IncomingResponsePeppolDocumentDto"
                    },
                    {
                      "$ref": "#/components/schemas/IncomingInvoicePeppolDocumentDto"
                    },
                    {
                      "$ref": "#/components/schemas/GenericPeppolDocumentDto"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "documentType",
                    "mapping": {
                      "INVOICE_RESPONSE_3_0": "#/components/schemas/IncomingResponsePeppolDocumentDto",
                      "BIS_BILLING_INVOICE_V3": "#/components/schemas/IncomingInvoicePeppolDocumentDto",
                      "BIS_BILLING_CREDIT_NOTE_V3": "#/components/schemas/IncomingInvoicePeppolDocumentDto",
                      "ORDER_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "ORDER_AGREEMENT_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "ORDER_RESPONSE_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "CATALOGUE_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "CATALOGUE_RESPONSE_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "PUNCH_OUT_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "DESPATCH_ADVICE_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "MESSAGE_LEVEL_RESPONSE_3_0": "#/components/schemas/GenericPeppolDocumentDto",
                      "ORDER_CHANGE": "#/components/schemas/GenericPeppolDocumentDto",
                      "ORDER_CANCELLATION": "#/components/schemas/GenericPeppolDocumentDto",
                      "ORDER_RESPONSE_ADVANCED": "#/components/schemas/GenericPeppolDocumentDto",
                      "UNKNOWN": "#/components/schemas/GenericPeppolDocumentDto"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Incoming Peppol document with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Could not find Peppol Document 01HQXYZ123ABC456DEF789GHI for Company 01HQCOMPANY123456789",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Incoming Peppol Document Based on ID",
        "tags": [
          "Peppol Incoming Documents"
        ]
      }
    },
    "/peppol-incoming-documents/sender/{senderId}/document/{id}/download-url": {
      "get": {
        "description": "Retrieve a pre-signed URL for downloading the Incoming Peppol Document identified by the given ID. It is valid for 10 minutes",
        "operationId": "PeppolController_retrieveDownloadUrl",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senderId",
            "required": true,
            "in": "path",
            "description": "Peppol sender participant identifier",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Peppol Document to download",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pre-signed URL to download the Incoming Peppol Document. The file download can be initiated with a GET request on the received URL.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Incoming Peppol document with the specified ID not found",
            "content": {
              "text/plain": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Could not find Peppol Document 01HQXYZ123ABC456DEF789GHI for Company 01HQCOMPANY123456789",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Incoming Peppol Document Pre-Signed Download URL Based on ID",
        "tags": [
          "Peppol Incoming Documents"
        ]
      }
    },
    "/companies": {
      "post": {
        "description": "Create a Company based on the provided details.",
        "operationId": "CompaniesController_createCompany",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCompanyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid company payload",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "name should not be empty",
                      "email must be an email"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Identification number is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Identification number is not valid",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Identification number already in use",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 409,
                    "message": "Identification number already in use",
                    "error": "Conflict"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create a Company",
        "tags": [
          "Companies"
        ]
      },
      "get": {
        "description": "Retrieve all managed companies.",
        "operationId": "CompaniesController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompaniesResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "A managed company mapping points to a company that no longer exists",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Company with ID \"01HQXYZ123ABC456DEF789GHI\" not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve All Managed Companies",
        "tags": [
          "Companies"
        ]
      }
    },
    "/companies/{id}": {
      "get": {
        "description": "Retrieve a Company based on ID",
        "operationId": "CompaniesController_findCompanyById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Company to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Company cannot be accessed by the requester",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Company with id 01HQXYZ123ABC456DEF789GHI cannot be accessed by company 01HQREQUESTOR123456",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Company with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Company with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve a Company Based on ID",
        "tags": [
          "Companies"
        ]
      },
      "patch": {
        "description": "Update a Company based on ID. It returns the updated Company.",
        "operationId": "CompaniesController_updateCompany",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Company to be updated",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCompanyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid company payload",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "email must be an email",
                      "name should not be empty"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Company cannot be accessed by the requester or identification number is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 403,
                    "message": "Company with id 01HQXYZ123ABC456DEF789GHI cannot be accessed by company 01HQREQUESTOR123456",
                    "error": "Forbidden"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Company with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Company with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Identification number already in use",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 409,
                    "message": "Identification number already in use",
                    "error": "Conflict"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Update a Company Based on ID",
        "tags": [
          "Companies"
        ]
      }
    },
    "/departments": {
      "post": {
        "description": "Create a Department based on the provided details.",
        "operationId": "DepartmentsController_createDepartment",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDepartmentDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid department payload or duplicate department name",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Department name Finance already exists for Company 01HQCOMPANY123456789",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create a Department",
        "tags": [
          "Departments"
        ]
      },
      "get": {
        "description": "Retrieve all managed departments.",
        "operationId": "DepartmentsController_findAll",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentsResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve All Managed Departments",
        "tags": [
          "Departments"
        ]
      }
    },
    "/departments/{id}": {
      "patch": {
        "description": "Update a Department based on ID. It returns the updated Department.",
        "operationId": "DepartmentsController_updateDepartment",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Department",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDepartmentDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid department payload or duplicate department name",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Department name Finance already exists for Company 01HQCOMPANY123456789",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Department with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Department 01HQXYZ123ABC456DEF789GHI not found for company 01HQCOMPANY123456789",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Update a Department Based on ID",
        "tags": [
          "Departments"
        ]
      },
      "get": {
        "description": "Retrieve a Department based on ID",
        "operationId": "DepartmentsController_findDepartmentById",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the Department to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Department with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Department 01HQXYZ123ABC456DEF789GHI not found for company 01HQCOMPANY123456789",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve a Department Based on ID",
        "tags": [
          "Departments"
        ]
      }
    },
    "/users": {
      "post": {
        "description": "Create a User based on the provided details.",
        "operationId": "UsersController_createUser",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user payload",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "username must be a string",
                      "email must be an email"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "409": {
            "description": "User cannot be created because provisioning is enabled or username/email is already taken",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 409,
                    "message": "username_or_email_taken",
                    "error": "Conflict"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create a User",
        "tags": [
          "Users"
        ]
      },
      "get": {
        "description": "Retrieve all managed users.",
        "operationId": "UsersController_findAll",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsersResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve All Managed Users",
        "tags": [
          "Users"
        ]
      }
    },
    "/users/{id}": {
      "patch": {
        "description": "Update a User based on ID. It returns the updated User.",
        "operationId": "UsersController_updateUser",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the User",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user payload",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "email must be an email",
                      "enabled must be a boolean value"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "404": {
            "description": "User with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "User 01HQXYZ123ABC456DEF789GHI not found for company 01HQCOMPANY123456789",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "409": {
            "description": "User cannot be updated because provisioning is enabled",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 409,
                    "message": "user_provisioning_enabled",
                    "error": "Conflict"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Update a User Based on ID",
        "tags": [
          "Users"
        ]
      },
      "get": {
        "description": "Retrieve a User based on ID",
        "operationId": "UsersController_findUserById",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "The ID of the managed company on behalf of which the request is made",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the User to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "User with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "User with ID: \"01HQXYZ123ABC456DEF789GHI\" not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve a User Based on ID",
        "tags": [
          "Users"
        ]
      }
    },
    "/webhooks": {
      "post": {
        "description": "Create a webhook subscription for a given company.",
        "operationId": "WebhooksController_createWebhookSubscription",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookCreatedDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid webhook configuration or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "name should not be empty",
                      "url must be a valid URL address",
                      "events should not be empty"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Create a Webhook Subscription",
        "tags": [
          "Webhook Subscriptions"
        ]
      },
      "get": {
        "description": "Retrieve all webhook subscriptions for a given company.",
        "operationId": "WebhooksController_findWebhookSubscriptions",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhooksResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve All Webhook Subscriptions",
        "tags": [
          "Webhook Subscriptions"
        ]
      }
    },
    "/webhooks/{id}": {
      "get": {
        "description": "Retrieve a webhook subscription by ID.",
        "operationId": "WebhooksController_findWebhookById",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the webhook to retrieve",
            "schema": {
              "example": "01HQXYZ123ABC456DEF789GHI",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Webhook with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Webhook with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve a Webhook Subscription",
        "tags": [
          "Webhook Subscriptions"
        ]
      },
      "patch": {
        "description": "Update a webhook subscription by ID.",
        "operationId": "WebhooksController_updateWebhook",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the webhook to update",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUpdateDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid webhook configuration or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "name should not be empty",
                      "url must be a valid URL address",
                      "events should not be empty"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Webhook with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Webhook with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Update a Webhook Subscription",
        "tags": [
          "Webhook Subscriptions"
        ]
      },
      "delete": {
        "description": "Delete a webhook subscription by ID.",
        "operationId": "WebhooksController_deleteWebhook",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the webhook to delete",
            "schema": {
              "example": "01HQXYZ123ABC456DEF789GHI",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Webhook subscription deleted"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Delete a Webhook Subscription",
        "tags": [
          "Webhook Subscriptions"
        ]
      }
    },
    "/webhooks/{id}/reset-secret": {
      "post": {
        "description": "Reset the secret for a webhook subscription by ID and return the new secret once.",
        "operationId": "WebhooksController_resetWebhookSecret",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the webhook for which to reset the secret",
            "schema": {
              "example": "01HQXYZ123ABC456DEF789GHI",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResetSecretDto"
                }
              }
            }
          },
          "404": {
            "description": "Webhook with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Webhook with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Reset a Webhook Secret",
        "tags": [
          "Webhook Subscriptions"
        ]
      }
    },
    "/webhooks/{id}/test": {
      "post": {
        "description": "Sends a test event matching one of the subscribed event types to the subscription URL and returns the HTTP response status. When the subscription has more than one event type, eventType must be provided.",
        "operationId": "WebhooksController_testWebhook",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Unique identifier of the webhook to test",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTestRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook test response with HTTP status code",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookTestResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "No event types configured or requested event type not subscribed",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Webhook subscription is not configured for event type peppol.document.received",
                    "error": "Bad Request"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Webhook subscription with the specified ID not found",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 404,
                    "message": "Webhook subscription with id 01HQXYZ123ABC456DEF789GHI not found",
                    "error": "Not Found"
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request Content-Type is not 'application/json'",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 415,
                    "message": "Content-Type must be application/json",
                    "error": "Unsupported Media Type"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Test a Webhook Subscription",
        "tags": [
          "Webhook Subscriptions"
        ]
      }
    },
    "/usage": {
      "get": {
        "description": "Retrieve usage data for a specific company with filters.",
        "operationId": "UsageController_getUsage",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Start date of the usage data to retrieve, expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "until",
            "required": true,
            "in": "query",
            "description": "End date of the usage data to retrieve, expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "departments",
            "required": false,
            "in": "query",
            "description": "Optional list of department IDs. When provided, only department-scoped usage data for those departments is returned. Company-level usage data is excluded.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid usage query parameter format",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": [
                      "from must be a valid ISO 8601 date string",
                      "until must be a valid ISO 8601 date string"
                    ],
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Usage Data for a Specific Company",
        "tags": [
          "Usage"
        ]
      }
    },
    "/usage/details": {
      "get": {
        "description": "Retrieve detailed usage events for a specific company with filters.",
        "operationId": "UsageController_getUsageDetails",
        "parameters": [
          {
            "name": "x-managed-company-id",
            "in": "header",
            "description": "Optional: the ID of the managed company on behalf of which the request is made",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Start date of the usage data to retrieve, expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "until",
            "required": true,
            "in": "query",
            "description": "End date of the usage data to retrieve, expressed in UTC timezone (format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z')",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "departments",
            "required": false,
            "in": "query",
            "description": "Optional list of department IDs. When provided, only department-scoped usage data for those departments is returned. Company-level usage data is excluded.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "after",
            "required": false,
            "in": "query",
            "description": "Cursor for pagination. Indicates that the API should return the Usage details which are immediately after this one in the list (the next page)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxItems",
            "required": false,
            "in": "query",
            "description": "Maximum number (1 - 1000) of Usage details that might be returned. It is possible that the response contains fewer elements. Default to 100",
            "schema": {
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Scrollable list of usage events",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageDetailsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid usage details query parameter format or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "statusCode": 400,
                    "message": "Usage detail cursor is invalid",
                    "error": "Bad Request"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Retrieve Detailed Usage Events for a Specific Company",
        "tags": [
          "Usage"
        ]
      }
    }
  },
  "info": {
    "title": "EasyPost Connect Public API",
    "description": "This API enables partners to programmatically manage the creation and consultation of outgoing sendings, as well as the automated consultation of incoming PePPOL documents. It provides endpoints for handling jobs (groupings of sendings), individual sending events, and workflows, supporting integration and automation of document exchange processes.",
    "version": "1.0.0",
    "contact": {
      "name": "EasyPost Connect",
      "url": "https://api.acc.connect.easypost.eu",
      "email": "support.connect@easypost.eu"
    }
  },
  "tags": [
    {
      "name": "Jobs",
      "description": "Entity representing the grouping of one or multiple sendings, created simultaneously from the same resource file (PDF, ZIP, CSV or XML). All the Job mails, internally referred to as SendingEvents, will share the same job ID. The Job is linked to one specific Workflow used to describe all the channels to be used to reach the recipient."
    },
    {
      "name": "SendingEvents",
      "description": "Entity representing a mail to be sent to one recipient using a specific Workflow."
    },
    {
      "name": "Workflows",
      "description": "Entity representing the sequence of one or multiple tasks, used to create Jobs."
    },
    {
      "name": "Peppol Incoming Documents",
      "description": "Entity representing an incoming Peppol document."
    },
    {
      "name": "Companies",
      "description": "Entity representing a Company."
    },
    {
      "name": "Departments",
      "description": "Entity representing a Department within a Company."
    },
    {
      "name": "Users",
      "description": "Entity representing a User within a Company."
    },
    {
      "name": "Usage",
      "description": "Entity representing usage data within a Company."
    },
    {
      "name": "Webhook Subscriptions",
      "description": "Endpoints used to create, configure, test, and manage webhook subscriptions."
    }
  ],
  "servers": [
    {
      "url": "https://api.acc.connect.easypost.eu"
    }
  ],
  "components": {
    "securitySchemes": {
      "Security": {
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.acc.connect.easypost.eu/oauth2/token",
            "scopes": {}
          }
        },
        "type": "oauth2"
      },
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "ApprovalDto": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "PREPARING_FOR_APPROVAL",
              "AWAITING_APPROVAL",
              "APPROVED",
              "REJECTED",
              "TIMEOUT",
              "PROCESSING"
            ],
            "type": "string",
            "description": "Status of the approval"
          },
          "userId": {
            "type": "string",
            "description": "Unique identifier of the user who approved or rejected the Job"
          },
          "username": {
            "type": "string",
            "description": "Username of the user who approved or rejected the Job"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp in format ISO 8601 of when the Job was approved or rejected",
            "format": "date-time"
          }
        },
        "required": [
          "status"
        ]
      },
      "SendingEventsCount": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "number",
            "description": "Amount of SendingEvents which have no warning or error after the job preparation"
          },
          "warning": {
            "type": "number",
            "description": "Amount of SendingEvents having at least one warning. (Ex. unrecognized physical address for an Easyprint task)"
          },
          "total": {
            "type": "number",
            "description": "Amount of SendingEvents having at least one warning. They cannot be processed. (Ex. invalid email address for an Email task)"
          }
        },
        "required": [
          "ok",
          "warning",
          "total"
        ]
      },
      "CustomErrorDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code representing the type of error"
          },
          "message": {
            "type": "string",
            "description": "Error message providing more details about the error"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the error occurred",
            "format": "date-time"
          }
        },
        "required": [
          "code",
          "message",
          "timestamp"
        ]
      },
      "JobDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Job"
          },
          "name": {
            "type": "string",
            "description": "Name of the Job"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment of Job creation",
            "format": "date-time"
          },
          "status": {
            "enum": [
              "AWAITING_FILE_UPLOAD",
              "WAITING",
              "PROCESSING",
              "OK",
              "ACTION_REQUIRED",
              "ERROR",
              "CANCELLED"
            ],
            "type": "string",
            "description": "Status of the Job"
          },
          "pendingEsigningApprovalCount": {
            "type": "number",
            "description": "Number of eSigning documents awaiting approval after signing"
          },
          "originalFilename": {
            "type": "string",
            "description": "Name of the the file used to create the Job"
          },
          "executionDate": {
            "type": "string",
            "description": "Datetime of the moment when the SendingEvents of the Job are created",
            "format": "date-time"
          },
          "sendingEventExecutionDateUtc": {
            "type": "string",
            "description": "Datetime of the scheduled SendingEvents execution in UTC",
            "format": "date-time"
          },
          "author": {
            "type": "string",
            "description": "Name of the user who submitted the Job"
          },
          "approval": {
            "description": "The approval information for the job",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApprovalDto"
              }
            ]
          },
          "sendingEvents": {
            "description": "SendingEvents count details",
            "allOf": [
              {
                "$ref": "#/components/schemas/SendingEventsCount"
              }
            ]
          },
          "errorList": {
            "description": "List of errors for the job",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "warningList": {
            "description": "List of warnings for the job",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "workflowId": {
            "type": "string",
            "description": "Unique identifier of the workfow used to process the Job"
          }
        },
        "required": [
          "id",
          "name",
          "startDate",
          "status",
          "originalFilename",
          "executionDate",
          "sendingEvents",
          "errorList",
          "warningList",
          "workflowId"
        ]
      },
      "ScrollableJobDtoDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of items for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobDto"
            }
          },
          "totalItems": {
            "type": "number",
            "description": "Total number of items available (without pagination)"
          }
        },
        "required": [
          "items",
          "totalItems"
        ]
      },
      "CreateSingleFileJobRequestDto": {
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string",
            "description": "Unique identifier of the Workflow to which the Job will be associated"
          },
          "jobName": {
            "type": "string",
            "description": "Name of the Job to be created"
          },
          "filename": {
            "type": "string",
            "description": "Name of the the file that will be used for the Job"
          },
          "sendingEventExecutionDateUtc": {
            "type": "string",
            "description": "Datetime of the scheduled SendingEvents execution in UTC",
            "format": "date-time"
          }
        },
        "required": [
          "workflowId",
          "jobName",
          "filename"
        ]
      },
      "CreateSingleFileJobResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the created Job"
          },
          "fileUploadUrl": {
            "type": "string",
            "description": "Presigned URL to be used to upload the file of the Job and start effectively its processing. The upload is made via an HTTP PUT request with the file attached as binary to the request."
          }
        },
        "required": [
          "id",
          "fileUploadUrl"
        ]
      },
      "PayloadChannelIdentifierDto": {
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "ADDRESS",
              "ADDRESS_FIRST_NAME",
              "ADDRESS_LAST_NAME",
              "ADDRESS_COMPANY_NAME",
              "ADDRESS_STREET",
              "ADDRESS_STREET_NUMBER",
              "ADDRESS_BOX",
              "ADDRESS_PO_BOX",
              "ADDRESS_POSTAL_CODE",
              "ADDRESS_CITY",
              "ADDRESS_COUNTRY_CODE",
              "EMAIL_ADDRESS",
              "PHONE_NUMBER",
              "LAST_NAME",
              "FIRST_NAME",
              "BIRTH_DATE",
              "INVOICE_AMOUNT",
              "INVOICE_DESCRIPTION",
              "INVOICE_DUE_DATE",
              "INVOICE_PAY_LINK",
              "INVOICE_PAY_LINK_SHORT",
              "INVOICE_COMMUNICATION",
              "INVOICE_PAYMENT_DATE",
              "POM_OPT_IN_EMAIL",
              "COMPANY_IDENTIFICATION_NUMBER",
              "NATIONAL_REGISTER_NUMBER",
              "EBOX_RECIPIENT_PARTITION",
              "INVOICE_REFERENCE",
              "DOCCLE_TOKEN_SET_VALUE1",
              "DOCCLE_TOKEN_SET_VALUE2",
              "DOCCLE_RECEIVER_ID",
              "DOCCLE_TOKEN_SET_START_DATE",
              "DOCCLE_TOKEN_SET_END_DATE",
              "PEPPOL_SENDER_PARTICIPANT_ID",
              "PEPPOL_RECEIVER_PARTICIPANT_ID",
              "PEPPOL_DOCUMENT_ID",
              "PEPPOL_ISSUE_DATE",
              "PEPPOL_DOCUMENT_TYPE"
            ],
            "type": "string",
            "description": "Channel identifier kind"
          },
          "value": {
            "type": "string",
            "description": "Channel identifier value"
          },
          "mustBeEncrypted": {
            "type": "boolean",
            "description": "Whether the system must encrypt this value before storing it. Supported for ADDRESS, ADDRESS_FIRST_NAME, ADDRESS_LAST_NAME, ADDRESS_COMPANY_NAME, ADDRESS_STREET, ADDRESS_STREET_NUMBER, ADDRESS_BOX, ADDRESS_PO_BOX, ADDRESS_POSTAL_CODE, ADDRESS_CITY, ADDRESS_COUNTRY_CODE, EMAIL_ADDRESS, LAST_NAME, FIRST_NAME, BIRTH_DATE, COMPANY_IDENTIFICATION_NUMBER, NATIONAL_REGISTER_NUMBER, EBOX_RECIPIENT_PARTITION, DOCCLE_TOKEN_SET_VALUE1, DOCCLE_TOKEN_SET_VALUE2, DOCCLE_RECEIVER_ID. Unsupported channel identifiers return 400 Bad Request when set to true. NATIONAL_REGISTER_NUMBER is encrypted regardless of this flag."
          }
        },
        "required": [
          "kind",
          "value"
        ]
      },
      "PayloadExtraInfoIdentifierDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Extra info identifier name"
          },
          "value": {
            "type": "string",
            "description": "Extra info identifier value"
          },
          "mustBeEncrypted": {
            "type": "boolean",
            "description": "Whether the system must encrypt this value before storing it"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "PayloadDto": {
        "type": "object",
        "properties": {
          "channelIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayloadChannelIdentifierDto"
            }
          },
          "extraInfoIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayloadExtraInfoIdentifierDto"
            }
          }
        },
        "required": [
          "channelIdentifiers",
          "extraInfoIdentifiers"
        ]
      },
      "CreatePayloadPdfJobRequestDto": {
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string",
            "description": "Unique identifier of the Workflow to which the Job will be associated"
          },
          "jobName": {
            "type": "string",
            "description": "Name of the Job to be created"
          },
          "filename": {
            "type": "string",
            "description": "Name of the the file that will be used for the Job"
          },
          "sendingEventExecutionDateUtc": {
            "type": "string",
            "description": "Datetime of the scheduled SendingEvents execution in UTC",
            "format": "date-time"
          },
          "payload": {
            "description": "Payload content used to build the sending event",
            "allOf": [
              {
                "$ref": "#/components/schemas/PayloadDto"
              }
            ]
          }
        },
        "required": [
          "workflowId",
          "jobName",
          "filename",
          "payload"
        ]
      },
      "CreatePayloadPdfJobResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the created Job"
          },
          "fileUploadUrl": {
            "type": "string",
            "description": "Presigned URL to be used to upload the file of the Job and start effectively its processing. The upload is made via an HTTP PUT request with the file attached as binary to the request."
          }
        },
        "required": [
          "id",
          "fileUploadUrl"
        ]
      },
      "PayloadWithTemplateDataDto": {
        "type": "object",
        "properties": {
          "channelIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayloadChannelIdentifierDto"
            }
          },
          "extraInfoIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayloadExtraInfoIdentifierDto"
            }
          },
          "templateData": {
            "type": "object",
            "additionalProperties": true,
            "description": "Template data used to generate the final document"
          }
        },
        "required": [
          "channelIdentifiers",
          "extraInfoIdentifiers",
          "templateData"
        ]
      },
      "CreatePayloadWordJobRequestDto": {
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string",
            "description": "Unique identifier of the Workflow to which the Job will be associated"
          },
          "jobName": {
            "type": "string",
            "description": "Name of the Job to be created"
          },
          "filename": {
            "type": "string",
            "description": "Name of the the file that will be used for the Job"
          },
          "sendingEventExecutionDateUtc": {
            "type": "string",
            "description": "Datetime of the scheduled SendingEvents execution in UTC",
            "format": "date-time"
          },
          "payload": {
            "description": "Payload content used to build the sending event",
            "allOf": [
              {
                "$ref": "#/components/schemas/PayloadWithTemplateDataDto"
              }
            ]
          }
        },
        "required": [
          "workflowId",
          "jobName",
          "filename",
          "payload"
        ]
      },
      "CreatePayloadWordJobResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the created Job"
          }
        },
        "required": [
          "id"
        ]
      },
      "PhysicalAddressDto": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string"
          },
          "streetNr": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "box": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "addressAdditionalLine": {
            "type": "string"
          }
        },
        "required": [
          "street",
          "streetNr",
          "postalCode",
          "city",
          "countryCode"
        ]
      },
      "StructuredAddressDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Recipient first name"
          },
          "lastName": {
            "type": "string",
            "description": "Recipient last name"
          },
          "companyName": {
            "type": "string",
            "description": "Recipient company name"
          },
          "street": {
            "type": "string",
            "description": "Street name"
          },
          "streetNumber": {
            "type": "string",
            "description": "Street number"
          },
          "box": {
            "type": "string",
            "description": "Address box/unit"
          },
          "poBox": {
            "type": "string",
            "description": "PO Box"
          },
          "postalCode": {
            "type": "string",
            "description": "Postal code"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "countryCode": {
            "type": "string",
            "description": "ISO country code"
          }
        },
        "required": [
          "postalCode",
          "city",
          "countryCode"
        ]
      },
      "TaskHistoryValueDateDto": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "Status"
          },
          "date": {
            "type": "string",
            "description": "Date the task went into this status",
            "format": "date-time"
          }
        },
        "required": [
          "value",
          "date"
        ]
      },
      "PrintTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "EASY_PRINT",
              "EASY_PRINT_FR"
            ],
            "description": "Type of an EASY_PRINT Task"
          },
          "departmentAddress": {
            "description": "Department postal address",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhysicalAddressDto"
              }
            ]
          },
          "addressRawData": {
            "type": "string",
            "description": "Address of the recipient used with the Mailing Distribution third-party (BPost in Belgium)"
          },
          "structuredAddress": {
            "description": "Structured address used for Easyprint when provided as payload channel identifiers",
            "allOf": [
              {
                "$ref": "#/components/schemas/StructuredAddressDto"
              }
            ]
          },
          "format": {
            "enum": [
              "SMALL",
              "LARGE"
            ],
            "type": "string",
            "description": "Describe the format of the envelope"
          },
          "deliveryType": {
            "enum": [
              "PRIOR",
              "NON_PRIOR",
              "REGISTERED"
            ],
            "type": "string",
            "description": "Delivery type"
          },
          "mailID": {
            "type": "string",
            "description": "Id from the Mailing Distribution third-party (BPost in Belgium)"
          },
          "barcode": {
            "type": "string",
            "description": "Barcode from the Mailing Distribution third-party (BPost in Belgium)"
          },
          "hasRegisteredMailRPFlag": {
            "type": "boolean",
            "description": "Registered mail RP flag"
          },
          "connectReference": {
            "type": "string",
            "description": "Connect reference"
          },
          "epodLocation": {
            "type": "string",
            "description": "EPOD location"
          },
          "trackAndTraceUrl": {
            "type": "string",
            "description": "Url from third-party to track the sending when it is of type registered mail"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "departmentAddress",
          "location"
        ]
      },
      "EmailTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "EMAIL"
            ],
            "description": "Type of an EMAIL Task",
            "default": "EMAIL"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "location"
        ]
      },
      "ERDSTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "ERDS"
            ],
            "description": "Type of a ERDS Task",
            "default": "ERDS"
          },
          "submissionReportLocation": {
            "type": "string",
            "description": "Submission report location"
          },
          "deliveryReportLocation": {
            "type": "string",
            "description": "Delivery report location"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "location"
        ]
      },
      "QERDSTaskRetractionDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Identifier of the user who performed the retraction"
          },
          "username": {
            "type": "string",
            "description": "Username of the user performed the retraction"
          },
          "timestamp": {
            "type": "string",
            "description": "Datetime of the moment the retraction was performed"
          }
        },
        "required": [
          "userId",
          "username",
          "timestamp"
        ]
      },
      "EncryptedValueDto": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "String value"
          },
          "isEncrypted": {
            "type": "boolean",
            "description": "Whether the value is encrypted"
          }
        }
      },
      "QERDSRecipientWithEncryptionFlagsDto": {
        "type": "object",
        "properties": {
          "recipientType": {
            "type": "string",
            "description": "The type of recipient the SendingEvent is intended for"
          },
          "companyIdentificationNumber": {
            "description": "Company Identifier Number",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "emailAddress": {
            "description": "Email address of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "firstName": {
            "description": "Firstname of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "lastName": {
            "description": "Lastname of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "birthDate": {
            "description": "Birth date of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "postalCode": {
            "description": "Postal code of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "houseNumber": {
            "description": "House number of the recipient",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          }
        },
        "required": [
          "emailAddress"
        ]
      },
      "QERDSTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "QERDS"
            ],
            "description": "Type of a QERDS Task",
            "default": "QERDS"
          },
          "evidenceReportLocation": {
            "type": "string",
            "description": "Evidence report location"
          },
          "notificationReportLocation": {
            "type": "string",
            "description": "Notification report location"
          },
          "retraction": {
            "description": "Retraction details",
            "allOf": [
              {
                "$ref": "#/components/schemas/QERDSTaskRetractionDto"
              }
            ]
          },
          "recipientDetails": {
            "description": "Recipient details",
            "allOf": [
              {
                "$ref": "#/components/schemas/QERDSRecipientWithEncryptionFlagsDto"
              }
            ]
          },
          "modelVersion": {
            "type": "string",
            "enum": [
              "v2"
            ],
            "description": "Model version",
            "default": "v2"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "recipientDetails",
          "modelVersion",
          "location"
        ]
      },
      "EBoxCitizenEntityDto": {
        "type": "object",
        "properties": {
          "eboxIdValue": {
            "type": "string",
            "description": "The CBE number in 10 digits if the eboxType is enterprise or the NRN if the eboxType is citizen"
          },
          "eboxType": {
            "type": "string",
            "enum": [
              "citizen"
            ],
            "description": "The type of EBox platform (citizen or enterprise)",
            "default": "citizen"
          }
        },
        "required": [
          "eboxIdValue",
          "eboxType"
        ]
      },
      "EBoxEnterpriseEntityDto": {
        "type": "object",
        "properties": {
          "eboxIdValue": {
            "type": "string",
            "description": "The CBE number in 10 digits if the eboxType is enterprise or the NRN if the eboxType is citizen"
          },
          "eboxType": {
            "type": "string",
            "enum": [
              "enterprise"
            ],
            "description": "The type of EBox platform (citizen or enterprise)",
            "default": "enterprise"
          },
          "partition": {
            "type": "string",
            "description": "eBox partition"
          }
        },
        "required": [
          "eboxIdValue",
          "eboxType",
          "partition"
        ]
      },
      "BaseEBoxEntityDto": {
        "type": "object",
        "properties": {
          "eboxIdValue": {
            "type": "string",
            "description": "The CBE number in 10 digits if the eboxType is enterprise or the NRN if the eboxType is citizen"
          }
        },
        "required": [
          "eboxIdValue"
        ]
      },
      "EBoxTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "EBOX"
            ],
            "description": "Type of a EBOX Task",
            "default": "EBOX"
          },
          "recipientInfo": {
            "description": "Recipient info",
            "anyOf": [
              {
                "$ref": "#/components/schemas/EBoxCitizenEntityDto"
              },
              {
                "$ref": "#/components/schemas/EBoxEnterpriseEntityDto"
              }
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/BaseEBoxEntityDto"
              }
            ]
          },
          "isRegisteredMail": {
            "type": "boolean",
            "description": "Is registered mail"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "recipientInfo",
          "isRegisteredMail",
          "location"
        ]
      },
      "TokenSetDto": {
        "type": "object",
        "properties": {
          "token1": {
            "description": "Token 1",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "token2": {
            "description": "Token 2",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "startDate": {
            "type": "string",
            "description": "Start date"
          },
          "endDate": {
            "type": "string",
            "description": "End date"
          }
        },
        "required": [
          "token1",
          "token2",
          "startDate"
        ]
      },
      "DoccleTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "DOCCLE"
            ],
            "description": "Type of a DOCCLE Task",
            "default": "DOCCLE"
          },
          "tokenSet": {
            "description": "Token set",
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenSetDto"
              }
            ]
          },
          "receiverId": {
            "description": "Receiver ID",
            "allOf": [
              {
                "$ref": "#/components/schemas/EncryptedValueDto"
              }
            ]
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "tokenSet",
          "receiverId",
          "location"
        ]
      },
      "PeppolTaskDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier in the Workflow used to process the SendingEvent"
          },
          "externalId": {
            "type": "string",
            "description": "Identifier of the SendingEvent as known in external supplier API"
          },
          "name": {
            "type": "string",
            "description": "Name of the Task in the Workflow used to process the SendingEvent"
          },
          "maxDurationInSeconds": {
            "type": "number",
            "description": "Maximum amount of seconds a Task can be in status IN_PROGRESS without reaching a terminal status. After that period it gets the status TIMEOUT"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending is started using the channel configured in the Task",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment when the Sending via the Task is in final state",
            "format": "date-time"
          },
          "warningList": {
            "description": "List of warnings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "errorList": {
            "description": "List of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "statusHistory": {
            "description": "Status history",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskHistoryValueDateDto"
            }
          },
          "documentHash": {
            "type": "string",
            "description": "Base64 encoded SHA256 checksum of the SendingEvent file"
          },
          "documentSizeInBytes": {
            "type": "number",
            "description": "Size of the document file in bytes"
          },
          "documentPageCount": {
            "type": "number",
            "description": "Number of pages in the document file"
          },
          "order": {
            "type": "number",
            "description": "Order of the Task in the Workflow"
          },
          "submitAttempts": {
            "type": "number",
            "description": "Number of submission attempts"
          },
          "status": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "ERROR",
              "TIMEOUT",
              "MAX_ATTEMPTS_EXCEEDED"
            ],
            "type": "string",
            "description": "Technical status of the Task"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string",
            "description": "Business status of the Task"
          },
          "recipient": {
            "type": "string",
            "description": "Address used in the context of the Task to reach the recipient"
          },
          "isRecipientEncrypted": {
            "type": "boolean",
            "description": "Whether the recipient is encrypted"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Absolute Datetime (UTC) at which the Task expires",
            "format": "date-time"
          },
          "taskType": {
            "type": "string",
            "enum": [
              "PEPPOL"
            ],
            "description": "Type of a PEPPOL Task",
            "default": "PEPPOL"
          },
          "documentId": {
            "type": "string",
            "description": "Document identifier in the Peppol network"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue date of the document"
          },
          "senderParticipantId": {
            "type": "string",
            "description": "Participant identifier of the sender"
          },
          "receiverParticipantId": {
            "type": "string",
            "description": "Participant identifier of the receiver"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "maxDurationInSeconds",
          "warningList",
          "errorList",
          "statusHistory",
          "order",
          "submitAttempts",
          "status",
          "businessStatus",
          "recipient",
          "taskType",
          "documentId",
          "senderParticipantId",
          "receiverParticipantId",
          "location"
        ]
      },
      "SendingPropertyDto": {
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "ADDRESS",
              "ADDRESS_FIRST_NAME",
              "ADDRESS_LAST_NAME",
              "ADDRESS_COMPANY_NAME",
              "ADDRESS_STREET",
              "ADDRESS_STREET_NUMBER",
              "ADDRESS_BOX",
              "ADDRESS_PO_BOX",
              "ADDRESS_POSTAL_CODE",
              "ADDRESS_CITY",
              "ADDRESS_COUNTRY_CODE",
              "EMAIL_ADDRESS",
              "PHONE_NUMBER",
              "LAST_NAME",
              "FIRST_NAME",
              "BIRTH_DATE",
              "INVOICE_AMOUNT",
              "INVOICE_DESCRIPTION",
              "INVOICE_DUE_DATE",
              "INVOICE_PAY_LINK",
              "INVOICE_PAY_LINK_SHORT",
              "INVOICE_COMMUNICATION",
              "INVOICE_PAYMENT_DATE",
              "POM_OPT_IN_EMAIL",
              "COMPANY_IDENTIFICATION_NUMBER",
              "NATIONAL_REGISTER_NUMBER",
              "EBOX_RECIPIENT_PARTITION",
              "INVOICE_REFERENCE",
              "DOCCLE_TOKEN_SET_VALUE1",
              "DOCCLE_TOKEN_SET_VALUE2",
              "DOCCLE_RECEIVER_ID",
              "DOCCLE_TOKEN_SET_START_DATE",
              "DOCCLE_TOKEN_SET_END_DATE",
              "PEPPOL_SENDER_PARTICIPANT_ID",
              "PEPPOL_RECEIVER_PARTICIPANT_ID",
              "PEPPOL_DOCUMENT_ID",
              "PEPPOL_ISSUE_DATE",
              "PEPPOL_DOCUMENT_TYPE"
            ],
            "type": "string",
            "description": "Type of property (channel)"
          },
          "value": {
            "type": "string",
            "description": "Value of the property"
          },
          "isEncrypted": {
            "type": "boolean",
            "description": "Whether the property is encrypted"
          }
        },
        "required": [
          "kind",
          "value"
        ]
      },
      "ExtraInfoDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the extra info"
          },
          "value": {
            "type": "string",
            "description": "Value of the extra info"
          },
          "isEncrypted": {
            "type": "boolean",
            "description": "Whether the extra info is encrypted"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "SendingEventApprovalDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Identifier of the approver"
          },
          "username": {
            "type": "string",
            "description": "Username of the approver"
          },
          "timestamp": {
            "type": "string",
            "description": "Datetime when the Job receives approval",
            "format": "date-time"
          }
        },
        "required": [
          "userId",
          "username",
          "timestamp"
        ]
      },
      "SendingEventDataRetentionDto": {
        "type": "object",
        "properties": {
          "periodInSeconds": {
            "type": "number",
            "description": "Retention period in seconds"
          }
        },
        "required": [
          "periodInSeconds"
        ]
      },
      "SendingEventDocumentDto": {
        "type": "object",
        "properties": {
          "fileReference": {
            "type": "string",
            "description": "Reference of the file. Use it with GET /sending-events/{id}/files/{fileReference}/download-url to download the document"
          },
          "documentType": {
            "enum": [
              "pdf",
              "json",
              "xml",
              "other"
            ],
            "type": "string",
            "description": "Type of the document"
          },
          "channels": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "EASY_PRINT",
                "EASY_PRINT_FR",
                "EMAIL",
                "ERDS",
                "QERDS",
                "EBOX",
                "DOCCLE",
                "PEPPOL"
              ]
            },
            "description": "Channels the document is sent through"
          }
        },
        "required": [
          "fileReference",
          "documentType",
          "channels"
        ]
      },
      "SendingEventResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "SendingEvent's identifier"
          },
          "jobId": {
            "type": "string",
            "description": "Identifier of the SendingEvent's Job"
          },
          "jobName": {
            "type": "string",
            "description": "Name of the SendingEvent's Job"
          },
          "sendingSourceFileReference": {
            "type": "string",
            "description": "Identifies the source file that produced this sending: its path within the uploaded ZIP, or its original submitted filename for a direct upload.",
            "example": "documents/document.pdf"
          },
          "jobAuthor": {
            "type": "string",
            "description": "Username of the author of the SendingEvent's Job"
          },
          "startDate": {
            "type": "string",
            "description": "The Datetime denoting the moment of Job creation",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The Datetime denoting the moment the sending event reached a final status",
            "format": "date-time"
          },
          "executionDateUtc": {
            "type": "string",
            "description": "Datetime of the scheduled SendingEvent execution in UTC",
            "format": "date-time"
          },
          "properties": {
            "description": "SendingEvent's properties",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendingPropertyDto"
            }
          },
          "extraInfo": {
            "description": "SendingEvent's extra information",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtraInfoDto"
            }
          },
          "workflowName": {
            "type": "string",
            "description": "Name of the Workflow used to create the SendingEvent's Job"
          },
          "status": {
            "enum": [
              "IN_PROGRESS",
              "SUCCESS",
              "WARNING",
              "FAILURE"
            ],
            "type": "string",
            "description": "TechnicalStatus of the SendingEvent"
          },
          "businessStatus": {
            "enum": [
              "NOT_STARTED",
              "SCHEDULED_FOR_EXECUTION",
              "IN_PROGRESS",
              "SUCCESS",
              "FAILURE",
              "REJECTED"
            ],
            "type": "string",
            "description": "BusinessStatus of the SendingEvent"
          },
          "approval": {
            "description": "Approval information for the SendingEvent",
            "allOf": [
              {
                "$ref": "#/components/schemas/SendingEventApprovalDto"
              }
            ]
          },
          "errorList": {
            "description": "SendingEvent's error list",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "warningList": {
            "description": "SendingEvent's warning list",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "invoiceId": {
            "type": "string",
            "description": "Identifier of the invoice if the SendingEvent has been built using a Workflow Collection"
          },
          "dataRetention": {
            "description": "Data retention policy for the SendingEvent",
            "allOf": [
              {
                "$ref": "#/components/schemas/SendingEventDataRetentionDto"
              }
            ]
          },
          "workflowId": {
            "type": "string",
            "description": "Identifier of the Workflow used to create the SendingEvent's Job"
          },
          "documents": {
            "description": "SendingEvent's documents",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendingEventDocumentDto"
            }
          },
          "taskDetails": {
            "type": "array",
            "description": "Details of tasks associated with the SendingEvent",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PrintTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/EmailTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/ERDSTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/QERDSTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/EBoxTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/DoccleTaskDetailsDto"
                },
                {
                  "$ref": "#/components/schemas/PeppolTaskDetailsDto"
                }
              ]
            }
          }
        },
        "required": [
          "id",
          "jobId",
          "jobName",
          "startDate",
          "properties",
          "extraInfo",
          "workflowName",
          "status",
          "businessStatus",
          "errorList",
          "warningList",
          "dataRetention",
          "workflowId",
          "documents",
          "taskDetails"
        ]
      },
      "ScrollableSendingEventResponseDtoDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of items for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendingEventResponseDto"
            }
          },
          "totalItems": {
            "type": "number",
            "description": "Total number of items available (without pagination)"
          }
        },
        "required": [
          "items",
          "totalItems"
        ]
      },
      "ResendSendingEventResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Public identifier of the newly created Sending Event"
          }
        },
        "required": [
          "id"
        ]
      },
      "WorkflowFileDropTriggerDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "FILE_DROP"
            ],
            "default": "FILE_DROP"
          },
          "secondsToWait": {
            "type": "number"
          }
        },
        "required": [
          "type",
          "secondsToWait"
        ]
      },
      "ScheduleTimeDto": {
        "type": "object",
        "properties": {
          "hours": {
            "type": "number"
          },
          "minutes": {
            "type": "number"
          }
        },
        "required": [
          "hours",
          "minutes"
        ]
      },
      "WorkflowScheduledTriggerDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SCHEDULED"
            ],
            "default": "SCHEDULED"
          },
          "scheduleTime": {
            "$ref": "#/components/schemas/ScheduleTimeDto"
          },
          "timezone": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "scheduleTime",
          "timezone"
        ]
      },
      "RegionOfInterestDto": {
        "type": "object",
        "properties": {
          "x1": {
            "type": "number"
          },
          "y1": {
            "type": "number"
          },
          "x2": {
            "type": "number"
          },
          "y2": {
            "type": "number"
          }
        },
        "required": [
          "x1",
          "y1",
          "x2",
          "y2"
        ]
      },
      "PDFChannelIdentifierDto": {
        "type": "object",
        "properties": {
          "regionOfInterest": {
            "$ref": "#/components/schemas/RegionOfInterestDto"
          },
          "kind": {
            "type": "string",
            "enum": [
              "ADDRESS",
              "ADDRESS_FIRST_NAME",
              "ADDRESS_LAST_NAME",
              "ADDRESS_COMPANY_NAME",
              "ADDRESS_STREET",
              "ADDRESS_STREET_NUMBER",
              "ADDRESS_BOX",
              "ADDRESS_PO_BOX",
              "ADDRESS_POSTAL_CODE",
              "ADDRESS_CITY",
              "ADDRESS_COUNTRY_CODE",
              "EMAIL_ADDRESS",
              "PHONE_NUMBER",
              "LAST_NAME",
              "FIRST_NAME",
              "BIRTH_DATE",
              "INVOICE_AMOUNT",
              "INVOICE_DESCRIPTION",
              "INVOICE_DUE_DATE",
              "INVOICE_PAY_LINK",
              "INVOICE_PAY_LINK_SHORT",
              "INVOICE_COMMUNICATION",
              "INVOICE_PAYMENT_DATE",
              "POM_OPT_IN_EMAIL",
              "COMPANY_IDENTIFICATION_NUMBER",
              "NATIONAL_REGISTER_NUMBER",
              "EBOX_RECIPIENT_PARTITION",
              "INVOICE_REFERENCE",
              "DOCCLE_TOKEN_SET_VALUE1",
              "DOCCLE_TOKEN_SET_VALUE2",
              "DOCCLE_RECEIVER_ID",
              "DOCCLE_TOKEN_SET_START_DATE",
              "DOCCLE_TOKEN_SET_END_DATE",
              "PEPPOL_SENDER_PARTICIPANT_ID",
              "PEPPOL_RECEIVER_PARTICIPANT_ID",
              "PEPPOL_DOCUMENT_ID",
              "PEPPOL_ISSUE_DATE",
              "PEPPOL_DOCUMENT_TYPE"
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "PDF",
              "DATA_FILE",
              "PAYLOAD"
            ]
          },
          "mustBeEncrypted": {
            "type": "boolean"
          }
        },
        "required": [
          "regionOfInterest",
          "kind",
          "source"
        ]
      },
      "PDFSplitIdentifierDto": {
        "type": "object",
        "properties": {
          "channelProperty": {
            "type": "string",
            "enum": [
              "ADDRESS",
              "EMAIL_ADDRESS"
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "RECIPIENT_ID",
              "REGEX",
              "TEXT",
              "EMPTY_TEXT",
              "CHANGE_OF_TEXT"
            ]
          },
          "regionOfInterest": {
            "$ref": "#/components/schemas/RegionOfInterestDto"
          },
          "splitOnChange": {
            "type": "boolean"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "kind",
          "regionOfInterest",
          "splitOnChange"
        ]
      },
      "PDFIgnoreIdentifierDto": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "REGEX",
              "TEXT",
              "EMPTY_TEXT"
            ]
          },
          "value": {
            "type": "string"
          },
          "regionOfInterest": {
            "$ref": "#/components/schemas/RegionOfInterestDto"
          }
        },
        "required": [
          "kind",
          "regionOfInterest"
        ]
      },
      "PDFExtraInfoIdentifierDto": {
        "type": "object",
        "properties": {
          "regionOfInterest": {
            "$ref": "#/components/schemas/RegionOfInterestDto"
          },
          "name": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "PDF",
              "DATA_FILE",
              "PAYLOAD"
            ]
          },
          "mustBeEncrypted": {
            "type": "boolean"
          }
        },
        "required": [
          "regionOfInterest",
          "name",
          "source"
        ]
      },
      "ApplicationFileDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "originalFilename": {
            "type": "string"
          }
        },
        "required": [
          "filename"
        ]
      },
      "WorkflowPDFInputSourceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "PDF"
            ],
            "default": "PDF"
          },
          "channelIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PDFChannelIdentifierDto"
            }
          },
          "splitIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PDFSplitIdentifierDto"
            }
          },
          "ignoreIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PDFIgnoreIdentifierDto"
            }
          },
          "extraInfoIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PDFExtraInfoIdentifierDto"
            }
          },
          "textExtractionMethod": {
            "type": "string",
            "enum": [
              "OCR",
              "TEXT_LAYER"
            ]
          },
          "sampleFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          }
        },
        "required": [
          "type",
          "channelIdentifiers",
          "splitIdentifiers",
          "ignoreIdentifiers",
          "extraInfoIdentifiers",
          "textExtractionMethod"
        ]
      },
      "WorkflowPayloadPdfInputSourceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "PAYLOAD_PDF"
            ],
            "default": "PAYLOAD_PDF"
          },
          "sampleFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          }
        },
        "required": [
          "type"
        ]
      },
      "WorkflowPayloadWordInputSourceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "PAYLOAD_WORD"
            ],
            "default": "PAYLOAD_WORD"
          },
          "sampleFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "templateFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          }
        },
        "required": [
          "type",
          "templateFile"
        ]
      },
      "DataFileChannelIdentifierDto": {
        "type": "object",
        "properties": {
          "jsonPathExpressions": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "kind": {
            "type": "string",
            "enum": [
              "ADDRESS",
              "ADDRESS_FIRST_NAME",
              "ADDRESS_LAST_NAME",
              "ADDRESS_COMPANY_NAME",
              "ADDRESS_STREET",
              "ADDRESS_STREET_NUMBER",
              "ADDRESS_BOX",
              "ADDRESS_PO_BOX",
              "ADDRESS_POSTAL_CODE",
              "ADDRESS_CITY",
              "ADDRESS_COUNTRY_CODE",
              "EMAIL_ADDRESS",
              "PHONE_NUMBER",
              "LAST_NAME",
              "FIRST_NAME",
              "BIRTH_DATE",
              "INVOICE_AMOUNT",
              "INVOICE_DESCRIPTION",
              "INVOICE_DUE_DATE",
              "INVOICE_PAY_LINK",
              "INVOICE_PAY_LINK_SHORT",
              "INVOICE_COMMUNICATION",
              "INVOICE_PAYMENT_DATE",
              "POM_OPT_IN_EMAIL",
              "COMPANY_IDENTIFICATION_NUMBER",
              "NATIONAL_REGISTER_NUMBER",
              "EBOX_RECIPIENT_PARTITION",
              "INVOICE_REFERENCE",
              "DOCCLE_TOKEN_SET_VALUE1",
              "DOCCLE_TOKEN_SET_VALUE2",
              "DOCCLE_RECEIVER_ID",
              "DOCCLE_TOKEN_SET_START_DATE",
              "DOCCLE_TOKEN_SET_END_DATE",
              "PEPPOL_SENDER_PARTICIPANT_ID",
              "PEPPOL_RECEIVER_PARTICIPANT_ID",
              "PEPPOL_DOCUMENT_ID",
              "PEPPOL_ISSUE_DATE",
              "PEPPOL_DOCUMENT_TYPE"
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "PDF",
              "DATA_FILE",
              "PAYLOAD"
            ]
          },
          "mustBeEncrypted": {
            "type": "boolean"
          }
        },
        "required": [
          "jsonPathExpressions",
          "kind",
          "source"
        ]
      },
      "DataFileExtraInfoIdentifierDto": {
        "type": "object",
        "properties": {
          "jsonPathExpressions": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "name": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "PDF",
              "DATA_FILE",
              "PAYLOAD"
            ]
          },
          "mustBeEncrypted": {
            "type": "boolean"
          }
        },
        "required": [
          "jsonPathExpressions",
          "name",
          "source"
        ]
      },
      "WorkflowDataFileInputSourceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "CSV",
              "XML"
            ]
          },
          "templateFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "sampleFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "channelIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataFileChannelIdentifierDto"
            }
          },
          "extraInfoIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataFileExtraInfoIdentifierDto"
            }
          },
          "fieldDescriptions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "type",
          "templateFile",
          "channelIdentifiers",
          "extraInfoIdentifiers",
          "fieldDescriptions"
        ]
      },
      "WorkflowUblInputSourceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "UBL"
            ],
            "default": "UBL"
          },
          "templateFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "sampleFile": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "channelIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataFileChannelIdentifierDto"
            }
          },
          "extraInfoIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataFileExtraInfoIdentifierDto"
            }
          },
          "fieldDescriptions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "type",
          "channelIdentifiers",
          "extraInfoIdentifiers",
          "fieldDescriptions"
        ]
      },
      "ConfigurationFileDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          }
        },
        "required": [
          "filename"
        ]
      },
      "PaperDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "A4_5GR"
            ]
          },
          "logo": {
            "$ref": "#/components/schemas/ConfigurationFileDto"
          },
          "supplierExample": {
            "$ref": "#/components/schemas/ConfigurationFileDto"
          }
        },
        "required": [
          "type"
        ]
      },
      "ResourcesDto": {
        "type": "object",
        "properties": {
          "paper": {
            "$ref": "#/components/schemas/PaperDto"
          }
        },
        "required": [
          "paper"
        ]
      },
      "PrintDto": {
        "type": "object",
        "properties": {
          "addFrontPageFromStructuredAddress": {
            "type": "boolean",
            "description": "Indicates whether a front page is added using the structured address fields. If set to false, the address block must fit entirely within the envelope address window.",
            "default": false
          },
          "addFrontPage": {
            "type": "boolean"
          },
          "printColor": {
            "type": "string",
            "enum": [
              "BW",
              "COLORS"
            ]
          },
          "printSide": {
            "type": "string",
            "enum": [
              "RECTO",
              "RECTO_VERSO"
            ]
          }
        },
        "required": [
          "addFrontPage",
          "printColor",
          "printSide"
        ]
      },
      "PrintAttachmentDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "originalFilename": {
            "type": "string"
          },
          "position": {
            "type": "string",
            "enum": [
              "VERSO_ALL_PAGES",
              "END_OF_DOCUMENT"
            ]
          }
        },
        "required": [
          "filename",
          "position"
        ]
      },
      "EnvelopeLayoutDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "windowSide": {
            "type": "string",
            "enum": [
              "RIGHT",
              "LEFT"
            ]
          },
          "format": {
            "type": "string",
            "enum": [
              "US",
              "C5",
              "C4"
            ]
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "required": [
          "windowSide"
        ]
      },
      "FallbackC4EnvelopeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "required": [
          "isDefault"
        ]
      },
      "TaskEasyPrintDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "EASY_PRINT",
              "EASY_PRINT_FR"
            ],
            "type": "string",
            "default": "EASY_PRINT"
          },
          "mergeDocuments": {
            "type": "boolean"
          },
          "resources": {
            "$ref": "#/components/schemas/ResourcesDto"
          },
          "print": {
            "$ref": "#/components/schemas/PrintDto"
          },
          "deliveryType": {
            "type": "string",
            "enum": [
              "PRIOR",
              "NON_PRIOR",
              "REGISTERED"
            ]
          },
          "attachment": {
            "$ref": "#/components/schemas/PrintAttachmentDto"
          },
          "externalId": {
            "type": "string"
          },
          "envelopeLayout": {
            "$ref": "#/components/schemas/EnvelopeLayoutDto"
          },
          "fallbackC4Envelope": {
            "$ref": "#/components/schemas/FallbackC4EnvelopeDto"
          },
          "extraInfoReferenceName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "mergeDocuments",
          "resources",
          "print",
          "deliveryType",
          "envelopeLayout",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "ERDSSenderDto": {
        "type": "object",
        "properties": {
          "emailAddress": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        },
        "required": [
          "emailAddress",
          "displayName"
        ]
      },
      "ERDSTaskConfigurationDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "ERDS"
            ],
            "type": "string",
            "default": "ERDS"
          },
          "identificationMethods": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BELGIAN_EID",
                "BELGIAN_EID_NOAUTH",
                "ITSME",
                "SMS_OTP"
              ]
            }
          },
          "sender": {
            "$ref": "#/components/schemas/ERDSSenderDto"
          },
          "portalLanguage": {
            "type": "string",
            "enum": [
              "EN",
              "NL",
              "FR"
            ]
          },
          "subject": {
            "type": "string"
          },
          "bodyTemplate": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "bodyJsonTemplate": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationFileDto"
            }
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "sender",
          "portalLanguage",
          "subject",
          "bodyTemplate",
          "bodyJsonTemplate",
          "attachments",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "EmailSenderDto": {
        "type": "object",
        "properties": {
          "emailAddress": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        },
        "required": [
          "emailAddress",
          "displayName"
        ]
      },
      "TaskEmailDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "EMAIL"
            ],
            "type": "string",
            "default": "EMAIL"
          },
          "sender": {
            "$ref": "#/components/schemas/EmailSenderDto"
          },
          "subject": {
            "type": "string"
          },
          "bodyTemplate": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "bodyJsonTemplate": {
            "$ref": "#/components/schemas/ApplicationFileDto"
          },
          "attachment": {
            "$ref": "#/components/schemas/ConfigurationFileDto"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "sender",
          "subject",
          "bodyTemplate",
          "bodyJsonTemplate",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "TaskQERDSDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "QERDS"
            ],
            "type": "string",
            "default": "QERDS"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "EBoxTranslatedStringDto": {
        "type": "object",
        "properties": {
          "nl": {
            "type": "string"
          },
          "fr": {
            "type": "string"
          },
          "de": {
            "type": "string"
          }
        },
        "required": [
          "nl",
          "fr",
          "de"
        ]
      },
      "EBoxAttachmentDto": {
        "type": "object",
        "properties": {
          "attachmentId": {
            "type": "string"
          },
          "attachmentTitle": {
            "$ref": "#/components/schemas/EBoxTranslatedStringDto"
          },
          "fileName": {
            "type": "string"
          },
          "isMainContent": {
            "type": "boolean"
          },
          "mediaType": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "attachmentSigned": {
            "type": "boolean"
          },
          "contentHref": {
            "type": "string"
          },
          "documentHash": {
            "type": "string"
          }
        },
        "required": [
          "attachmentId",
          "attachmentTitle",
          "fileName",
          "isMainContent",
          "mediaType",
          "size",
          "attachmentSigned",
          "contentHref",
          "documentHash"
        ]
      },
      "TaskEBoxDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "EBOX"
            ],
            "type": "string",
            "default": "EBOX"
          },
          "senderApplicationId": {
            "type": "string"
          },
          "messageTypeId": {
            "type": "string"
          },
          "partition": {
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/EBoxTranslatedStringDto"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EBoxAttachmentDto"
            }
          },
          "isRegisteredMail": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "senderApplicationId",
          "messageTypeId",
          "partition",
          "subject",
          "attachments",
          "isRegisteredMail",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "TranslatedFieldDto": {
        "type": "object",
        "properties": {
          "EN": {
            "type": "string"
          },
          "NL": {
            "type": "string"
          },
          "FR": {
            "type": "string"
          }
        },
        "required": [
          "EN",
          "NL",
          "FR"
        ]
      },
      "DoccleDocumentDisplayDto": {
        "type": "object",
        "properties": {
          "defaultLanguage": {
            "type": "string",
            "enum": [
              "EN",
              "NL",
              "FR"
            ]
          },
          "name": {
            "$ref": "#/components/schemas/TranslatedFieldDto"
          }
        },
        "required": [
          "defaultLanguage",
          "name"
        ]
      },
      "TaskDoccleDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "DOCCLE"
            ],
            "type": "string",
            "default": "DOCCLE"
          },
          "classificationLevel": {
            "type": "string",
            "enum": [
              "Public",
              "Confidential",
              "HighlyConfidential"
            ]
          },
          "documentType": {
            "type": "string"
          },
          "documentDisplay": {
            "$ref": "#/components/schemas/DoccleDocumentDisplayDto"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          },
          "supplierId": {
            "type": "string"
          }
        },
        "required": [
          "taskType",
          "classificationLevel",
          "documentType",
          "documentDisplay",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds",
          "supplierId"
        ]
      },
      "TaskPeppolDto": {
        "type": "object",
        "properties": {
          "taskType": {
            "enum": [
              "PEPPOL"
            ],
            "type": "string",
            "default": "PEPPOL"
          },
          "supplierId": {
            "type": "string",
            "enum": [
              "NYMUS",
              "BILLIT"
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "VALIDATED",
              "ERROR",
              "VALIDATION_NOT_STARTED"
            ]
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomErrorDto"
            }
          },
          "modelVersion": {
            "type": "string"
          },
          "maxDurationInSeconds": {
            "type": "number"
          }
        },
        "required": [
          "taskType",
          "supplierId",
          "id",
          "name",
          "validationStatus",
          "validationErrors",
          "maxDurationInSeconds"
        ]
      },
      "CoordinatesDto": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ]
      },
      "PomConfigurationDto": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "enum": [
              "EN",
              "NL",
              "FR",
              "DE"
            ]
          },
          "requestOptIn": {
            "type": "boolean"
          },
          "qrCodePosition": {
            "$ref": "#/components/schemas/CoordinatesDto"
          },
          "width": {
            "type": "number"
          }
        },
        "required": [
          "language",
          "requestOptIn"
        ]
      },
      "InvoiceConfigurationDto": {
        "type": "object",
        "properties": {
          "enableInvoiceTracking": {
            "type": "boolean"
          },
          "dueDateFormat": {
            "type": "string",
            "enum": [
              "yyyy/MM/dd",
              "dd/MM/yyyy",
              "yyyy-MM-dd",
              "dd-MM-yyyy"
            ]
          }
        },
        "required": [
          "enableInvoiceTracking",
          "dueDateFormat"
        ]
      },
      "DataRetentionDto": {
        "type": "object",
        "properties": {
          "periodInSeconds": {
            "type": "number"
          }
        },
        "required": [
          "periodInSeconds"
        ]
      },
      "WorkflowDataRetentionDto": {
        "type": "object",
        "properties": {
          "job": {
            "$ref": "#/components/schemas/DataRetentionDto"
          },
          "sendingEvent": {
            "$ref": "#/components/schemas/DataRetentionDto"
          }
        }
      },
      "WatermarkDto": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "location": {
            "type": "string",
            "enum": [
              "FIRST_PAGE",
              "ALL_PAGES",
              "SPECIFIC_PAGES"
            ]
          },
          "height": {
            "type": "number"
          },
          "image": {
            "$ref": "#/components/schemas/ConfigurationFileDto"
          }
        },
        "required": [
          "width",
          "location",
          "height",
          "image"
        ]
      },
      "WorkflowResponseDto": {
        "type": "object",
        "properties": {
          "trigger": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/WorkflowFileDropTriggerDto"
              },
              {
                "$ref": "#/components/schemas/WorkflowScheduledTriggerDto"
              }
            ]
          },
          "tasks": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/TaskEasyPrintDto"
                },
                {
                  "$ref": "#/components/schemas/TaskEmailDto"
                },
                {
                  "$ref": "#/components/schemas/ERDSTaskConfigurationDto"
                },
                {
                  "$ref": "#/components/schemas/TaskQERDSDto"
                },
                {
                  "$ref": "#/components/schemas/TaskEBoxDto"
                },
                {
                  "$ref": "#/components/schemas/TaskDoccleDto"
                },
                {
                  "$ref": "#/components/schemas/TaskPeppolDto"
                }
              ]
            }
          },
          "inputSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/WorkflowPDFInputSourceDto"
              },
              {
                "$ref": "#/components/schemas/WorkflowPayloadPdfInputSourceDto"
              },
              {
                "$ref": "#/components/schemas/WorkflowPayloadWordInputSourceDto"
              },
              {
                "$ref": "#/components/schemas/WorkflowDataFileInputSourceDto"
              },
              {
                "$ref": "#/components/schemas/WorkflowUblInputSourceDto"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "sFTPFolderName": {
            "type": "string"
          },
          "validated": {
            "type": "boolean"
          },
          "pom": {
            "$ref": "#/components/schemas/PomConfigurationDto"
          },
          "isDeleted": {
            "type": "boolean"
          },
          "requiresApproval": {
            "type": "boolean"
          },
          "invoiceConfiguration": {
            "$ref": "#/components/schemas/InvoiceConfigurationDto"
          },
          "dateFormat": {
            "type": "string",
            "enum": [
              "yyyy/MM/dd",
              "dd/MM/yyyy",
              "yyyy-MM-dd",
              "dd-MM-yyyy"
            ]
          },
          "ttl": {
            "type": "number"
          },
          "dataRetention": {
            "$ref": "#/components/schemas/WorkflowDataRetentionDto"
          },
          "companyId": {
            "type": "string"
          },
          "departmentId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "modelVersion": {
            "type": "string"
          },
          "lastModifiedAt": {
            "type": "string"
          },
          "lastModifiedBy": {
            "type": "string"
          },
          "version": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "watermark": {
            "$ref": "#/components/schemas/WatermarkDto"
          }
        },
        "required": [
          "trigger",
          "tasks",
          "inputSource",
          "name",
          "enabled",
          "validated",
          "requiresApproval",
          "companyId",
          "departmentId",
          "id",
          "lastModifiedAt",
          "lastModifiedBy",
          "version",
          "createdAt"
        ]
      },
      "ScrollableWorkflowResponseDtoDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of items for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowResponseDto"
            }
          },
          "totalItems": {
            "type": "number",
            "description": "Total number of items available (without pagination)"
          }
        },
        "required": [
          "items",
          "totalItems"
        ]
      },
      "IncomingResponseDocumentEnum": {
        "type": "string",
        "enum": [
          "INVOICE_RESPONSE_3_0"
        ]
      },
      "IncomingResponsePeppolDocumentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Peppol Document"
          },
          "companyId": {
            "type": "string",
            "description": "Company identifier"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue Date of the Peppol Document",
            "format": "date-time"
          },
          "senderParticipantId": {
            "type": "string",
            "description": "Sender Participant identification"
          },
          "receiverParticipantId": {
            "type": "string",
            "description": "Receiver Participant identification"
          },
          "createdAt": {
            "type": "string",
            "description": "Datetime of the Peppol Document creation",
            "format": "date-time"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Datetime of the last modification",
            "format": "date-time"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "User who last modified the document"
          },
          "direction": {
            "type": "string",
            "enum": [
              "INCOMING"
            ],
            "description": "Direction of the Peppol Document"
          },
          "senderLegalPartyRegistrationName": {
            "type": "string",
            "description": "Sender name"
          },
          "documentType": {
            "default": "INVOICE_RESPONSE_3_0",
            "allOf": [
              {
                "$ref": "#/components/schemas/IncomingResponseDocumentEnum"
              }
            ]
          },
          "documentReference": {
            "type": "string"
          },
          "responseStatus": {
            "enum": [
              "SENT",
              "NOT_SENT",
              "ACKNOWLEDGED",
              "IN_PROCESS",
              "UNDER_QUERY",
              "COND_ACCEPTED",
              "REJECTED",
              "ACCEPTED",
              "PAID"
            ],
            "type": "string"
          },
          "ttl": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "companyId",
          "issueDate",
          "senderParticipantId",
          "receiverParticipantId",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy",
          "direction",
          "documentType",
          "documentReference",
          "responseStatus",
          "ttl"
        ]
      },
      "PostalAddressDto": {
        "type": "object",
        "properties": {
          "streetName": {
            "type": "string"
          },
          "additionalStreetName": {
            "type": "string"
          },
          "cityName": {
            "type": "string"
          },
          "postalZone": {
            "type": "string"
          },
          "country": {
            "enum": [
              "FR",
              "BE",
              "DE"
            ],
            "type": "string"
          }
        },
        "required": [
          "streetName",
          "additionalStreetName",
          "cityName",
          "postalZone",
          "country"
        ]
      },
      "PeppolPartyDto": {
        "type": "object",
        "properties": {
          "endpointId": {
            "type": "string"
          },
          "legalRegistrationName": {
            "type": "string"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddressDto"
          }
        },
        "required": [
          "endpointId",
          "legalRegistrationName",
          "postalAddress"
        ]
      },
      "IncomingInvoicePeppolDocumentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Peppol Document"
          },
          "companyId": {
            "type": "string",
            "description": "Company identifier"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue Date of the Peppol Document",
            "format": "date-time"
          },
          "senderParticipantId": {
            "type": "string",
            "description": "Sender Participant identification"
          },
          "receiverParticipantId": {
            "type": "string",
            "description": "Receiver Participant identification"
          },
          "createdAt": {
            "type": "string",
            "description": "Datetime of the Peppol Document creation",
            "format": "date-time"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Datetime of the last modification",
            "format": "date-time"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "User who last modified the document"
          },
          "direction": {
            "type": "string",
            "enum": [
              "INCOMING"
            ],
            "description": "Direction of the Peppol Document"
          },
          "senderLegalPartyRegistrationName": {
            "type": "string",
            "description": "Sender name"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "documentType": {
            "type": "string",
            "enum": [
              "BIS_BILLING_CREDIT_NOTE_V3",
              "BIS_BILLING_INVOICE_V3",
              "BIS_SELF_BILLING_INVOICE_V3",
              "BIS_SELF_BILLING_CREDIT_NOTE_V3"
            ]
          },
          "totalAmount": {
            "type": "number"
          },
          "currency": {
            "enum": [
              "EUR",
              "GBP",
              "CHF",
              "USD"
            ],
            "type": "string"
          },
          "supplierParty": {
            "$ref": "#/components/schemas/PeppolPartyDto"
          },
          "customerParty": {
            "$ref": "#/components/schemas/PeppolPartyDto"
          },
          "ttl": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "companyId",
          "issueDate",
          "senderParticipantId",
          "receiverParticipantId",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy",
          "direction",
          "documentType",
          "totalAmount",
          "currency",
          "supplierParty",
          "customerParty",
          "ttl"
        ]
      },
      "GenericPeppolDocumentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Peppol Document"
          },
          "companyId": {
            "type": "string",
            "description": "Company identifier"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue Date of the Peppol Document",
            "format": "date-time"
          },
          "senderParticipantId": {
            "type": "string",
            "description": "Sender Participant identification"
          },
          "receiverParticipantId": {
            "type": "string",
            "description": "Receiver Participant identification"
          },
          "createdAt": {
            "type": "string",
            "description": "Datetime of the Peppol Document creation",
            "format": "date-time"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Datetime of the last modification",
            "format": "date-time"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "User who last modified the document"
          },
          "direction": {
            "type": "string",
            "enum": [
              "INCOMING"
            ],
            "description": "Direction of the Peppol Document"
          },
          "senderLegalPartyRegistrationName": {
            "type": "string",
            "description": "Sender name"
          },
          "documentType": {
            "type": "string",
            "enum": [
              "ORDER_3_0",
              "ORDER_AGREEMENT_3_0",
              "ORDER_RESPONSE_3_0",
              "CATALOGUE_3_0",
              "CATALOGUE_RESPONSE_3_0",
              "PUNCH_OUT_3_0",
              "DESPATCH_ADVICE_3_0",
              "MESSAGE_LEVEL_RESPONSE_3_0",
              "ORDER_CHANGE",
              "ORDER_CANCELLATION",
              "ORDER_RESPONSE_ADVANCED",
              "UNKNOWN"
            ]
          },
          "ttl": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "companyId",
          "issueDate",
          "senderParticipantId",
          "receiverParticipantId",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy",
          "direction",
          "documentType",
          "ttl"
        ]
      },
      "PeppolIncomingDocumentsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/IncomingResponsePeppolDocumentDto"
                },
                {
                  "$ref": "#/components/schemas/IncomingInvoicePeppolDocumentDto"
                },
                {
                  "$ref": "#/components/schemas/GenericPeppolDocumentDto"
                }
              ]
            },
            "description": "List of items for the current page"
          },
          "totalItems": {
            "type": "number",
            "description": "Total number of items available (without pagination)"
          },
          "after": {
            "type": "string",
            "description": "Pagination cursor of the current page. This identifier represents the last item returned in the response. Use its value as the 'after' parameter in the next request to retrieve the following page of results."
          }
        },
        "required": [
          "items",
          "totalItems"
        ]
      },
      "BaseIncomingPeppolDocumentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Peppol Document"
          },
          "companyId": {
            "type": "string",
            "description": "Company identifier"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue Date of the Peppol Document",
            "format": "date-time"
          },
          "senderParticipantId": {
            "type": "string",
            "description": "Sender Participant identification"
          },
          "receiverParticipantId": {
            "type": "string",
            "description": "Receiver Participant identification"
          },
          "createdAt": {
            "type": "string",
            "description": "Datetime of the Peppol Document creation",
            "format": "date-time"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Datetime of the last modification",
            "format": "date-time"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "User who last modified the document"
          },
          "direction": {
            "type": "string",
            "enum": [
              "INCOMING"
            ],
            "description": "Direction of the Peppol Document"
          },
          "senderLegalPartyRegistrationName": {
            "type": "string",
            "description": "Sender name"
          },
          "ttl": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "companyId",
          "issueDate",
          "senderParticipantId",
          "receiverParticipantId",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy",
          "direction",
          "ttl"
        ]
      },
      "CompanyIdentifierDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ENTERPRISE_NUMBER",
              "VAT_NUMBER",
              "DUNS",
              "GLN",
              "LEITWEG_ID",
              "CODE_ROUTAGE",
              "SIRET_NUMBER",
              "NIP",
              "BANK_NAME",
              "BIC",
              "IBAN",
              "KVK_NUMBER",
              "OIN_NUMBER",
              "CFI",
              "PEC",
              "CODDEST",
              "CUU"
            ]
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "CreateCompanyDto": {
        "type": "object",
        "properties": {
          "identificationNumber": {
            "type": "string",
            "description": "Identification number of the company, if provided must be valid"
          },
          "name": {
            "type": "string",
            "description": "Name of the company"
          },
          "headAddress": {
            "description": "Head office address of the company",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhysicalAddressDto"
              }
            ]
          },
          "emailAddress": {
            "type": "string",
            "format": "email",
            "description": "Email address of the company"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the company"
          },
          "isActive": {
            "type": "boolean",
            "description": "Indicates if the company is active"
          },
          "identifiers": {
            "description": "List of identifiers associated with the company",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyIdentifierDto"
            }
          }
        },
        "required": [
          "name",
          "headAddress",
          "isActive",
          "identifiers"
        ]
      },
      "CompanyResponseDto": {
        "type": "object",
        "properties": {
          "erpId": {
            "type": "string",
            "description": "ERP identifier of the company"
          },
          "identificationNumber": {
            "type": "string",
            "description": "Identification number of the company"
          },
          "name": {
            "type": "string",
            "description": "Name of the company"
          },
          "headAddress": {
            "description": "Head office address of the company",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhysicalAddressDto"
              }
            ]
          },
          "emailAddress": {
            "type": "string",
            "description": "Email address of the company",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the company"
          },
          "isActive": {
            "type": "boolean",
            "description": "Indicates if the company is active"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the company"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation date of the company"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Last modification date of the company"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "Last modified by information"
          },
          "identifiers": {
            "description": "List of identifiers associated with the company",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyIdentifierDto"
            }
          },
          "isTechnologyPartner": {
            "type": "boolean",
            "description": "Indicates if the company is a technology partner"
          }
        },
        "required": [
          "erpId",
          "name",
          "headAddress",
          "isActive",
          "id",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy",
          "identifiers"
        ]
      },
      "CompaniesResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of Companies for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyResponseDto"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "UpdateCompanyDto": {
        "type": "object",
        "properties": {
          "identificationNumber": {
            "type": "string",
            "description": "Identification number of the company, if provided must be valid"
          },
          "name": {
            "type": "string",
            "description": "Name of the company"
          },
          "headAddress": {
            "description": "Head office address of the company",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhysicalAddressDto"
              }
            ]
          },
          "emailAddress": {
            "type": "string",
            "format": "email",
            "description": "Email address of the company"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the company"
          },
          "isActive": {
            "type": "boolean",
            "description": "Indicates if the company is active"
          },
          "identifiers": {
            "description": "List of identifiers associated with the company",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyIdentifierDto"
            }
          }
        }
      },
      "CreateDepartmentDto": {
        "type": "object",
        "properties": {
          "identificationNumber": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "headAddress": {
            "$ref": "#/components/schemas/PhysicalAddressDto"
          },
          "emailAddress": {
            "type": "string",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string"
          },
          "hasSeparateInvoicing": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "headAddress",
          "hasSeparateInvoicing",
          "isActive"
        ]
      },
      "DepartmentResponseDto": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the department parent company"
          },
          "erpId": {
            "type": "string",
            "description": "ERP identifier of the department"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the department"
          },
          "identificationNumber": {
            "type": "string",
            "description": "Identification number of the department"
          },
          "name": {
            "type": "string",
            "description": "Name of the department"
          },
          "headAddress": {
            "description": "Head office address of the department",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhysicalAddressDto"
              }
            ]
          },
          "emailAddress": {
            "type": "string",
            "description": "Email address of the department",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the department"
          },
          "hasSeparateInvoicing": {
            "type": "boolean",
            "description": "Indicates if the department has separate invoicing"
          },
          "isActive": {
            "type": "boolean",
            "description": "Indicates if the department is active"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation date of the department"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Last modification date of the department"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "Last modified by information"
          }
        },
        "required": [
          "companyId",
          "erpId",
          "id",
          "name",
          "headAddress",
          "hasSeparateInvoicing",
          "isActive",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy"
        ]
      },
      "UpdateDepartmentDto": {
        "type": "object",
        "properties": {
          "identificationNumber": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "headAddress": {
            "$ref": "#/components/schemas/PhysicalAddressDto"
          },
          "emailAddress": {
            "type": "string",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string"
          },
          "hasSeparateInvoicing": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "DepartmentsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of Departments for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepartmentResponseDto"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "CreateUserDto": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Username of the user"
          },
          "role": {
            "enum": [
              "CLIENT_VIEWER",
              "CLIENT_OPERATOR",
              "CLIENT_DEPARTMENT_ADMIN",
              "CLIENT_ADMIN"
            ],
            "type": "string",
            "description": "Role of the user"
          },
          "departments": {
            "description": "Departments associated with the user",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "preferredLanguage": {
            "enum": [
              "EN",
              "NL",
              "FR"
            ],
            "type": "string",
            "description": "Preferred language of the user"
          },
          "emailAddress": {
            "type": "string",
            "format": "email",
            "description": "Email address of the user"
          },
          "enabled": {
            "type": "boolean",
            "description": "Indicates if the user in enabled"
          },
          "hasQERDSMandate": {
            "type": "boolean"
          }
        },
        "required": [
          "username",
          "role",
          "departments",
          "firstName",
          "lastName",
          "preferredLanguage",
          "emailAddress",
          "enabled",
          "hasQERDSMandate"
        ]
      },
      "UserResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the user"
          },
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the company"
          },
          "username": {
            "type": "string",
            "description": "Username of the user"
          },
          "role": {
            "enum": [
              "CLIENT_VIEWER",
              "CLIENT_OPERATOR",
              "CLIENT_DEPARTMENT_ADMIN",
              "CLIENT_ADMIN"
            ],
            "type": "string",
            "description": "Role of the user"
          },
          "departments": {
            "description": "Departments associated with the user",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "preferredLanguage": {
            "enum": [
              "EN",
              "NL",
              "FR"
            ],
            "type": "string",
            "description": "Preferred language of the user"
          },
          "emailAddress": {
            "type": "string",
            "description": "Email address of the user",
            "format": "email"
          },
          "hasMFALoginEnabled": {
            "type": "boolean",
            "description": "Indicates if MFA login is enabled for the user"
          },
          "hasQERDSMandate": {
            "type": "boolean",
            "description": "Indicates if QERDS mandate is enabled for the user"
          },
          "enabled": {
            "type": "boolean",
            "description": "Indicates if the user is enabled"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation date of the user"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Last modification date of the user"
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "Last modified by information"
          }
        },
        "required": [
          "id",
          "companyId",
          "username",
          "role",
          "departments",
          "firstName",
          "lastName",
          "preferredLanguage",
          "emailAddress",
          "hasMFALoginEnabled",
          "hasQERDSMandate",
          "enabled",
          "createdAt",
          "lastModifiedAt",
          "lastModifiedBy"
        ]
      },
      "UpdateUserDto": {
        "type": "object",
        "properties": {
          "role": {
            "enum": [
              "CLIENT_VIEWER",
              "CLIENT_OPERATOR",
              "CLIENT_DEPARTMENT_ADMIN",
              "CLIENT_ADMIN"
            ],
            "type": "string",
            "description": "Role of the user"
          },
          "departments": {
            "description": "Departments associated with the user",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "preferredLanguage": {
            "enum": [
              "EN",
              "NL",
              "FR"
            ],
            "type": "string",
            "description": "Preferred language of the user"
          },
          "enabled": {
            "type": "boolean",
            "description": "Indicates if the user in enabled"
          },
          "hasQERDSMandate": {
            "type": "boolean"
          }
        }
      },
      "UsersResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of Users for the current page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponseDto"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "WebhookCreationDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the webhook. Used for internal identification",
            "example": "Production Webhook"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "HTTPS URL of the webhook endpoint",
            "example": "https://example.com/webhook"
          },
          "events": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "job.status.changed",
                "sending.event.file.ready",
                "sending.event.status.changed",
                "peppol.document.received"
              ]
            },
            "description": "Event types that trigger the webhook",
            "example": [
              "job.status.changed",
              "sending.event.status.changed"
            ]
          }
        },
        "required": [
          "name",
          "url",
          "events"
        ]
      },
      "WebhookCreatedDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the webhook. Used for internal identification",
            "example": "Production Webhook"
          },
          "secret": {
            "type": "string",
            "description": "Secret key for the webhook. You should store this securely and not expose it publicly."
          }
        },
        "required": [
          "name",
          "secret"
        ]
      },
      "WebhookResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the webhook",
            "example": "01HQXYZ123ABC456DEF789GHI"
          },
          "name": {
            "type": "string",
            "description": "Name of the webhook. Used for internal identification",
            "example": "Production Webhook"
          },
          "url": {
            "type": "string",
            "description": "URL of the webhook endpoint",
            "example": "https://example.com/webhook"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "job.status.changed",
                "sending.event.file.ready",
                "sending.event.status.changed",
                "peppol.document.received"
              ]
            },
            "description": "Event types that trigger the webhook",
            "example": [
              "job.status.changed",
              "sending.event.status.changed"
            ]
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the webhook",
            "example": "2026-06-01T10:30:00.000Z"
          },
          "status": {
            "enum": [
              "ACTIVE",
              "DISABLED"
            ],
            "type": "string",
            "description": "Status of the webhook",
            "example": "ACTIVE"
          },
          "lastModifiedAt": {
            "type": "string",
            "description": "Last modification timestamp of the webhook",
            "example": "2026-06-04T14:20:00.000Z"
          }
        },
        "required": [
          "id",
          "name",
          "url",
          "events",
          "createdAt",
          "status",
          "lastModifiedAt"
        ]
      },
      "WebhooksResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of Webhooks of the company",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookResponseDto"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "WebhookUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the webhook. Used for internal identification",
            "example": "Production Webhook"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "HTTPS URL of the webhook endpoint",
            "example": "https://example.com/webhook"
          },
          "events": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "job.status.changed",
                "sending.event.file.ready",
                "sending.event.status.changed",
                "peppol.document.received"
              ]
            },
            "description": "Event types that trigger the webhook",
            "example": [
              "job.status.changed",
              "sending.event.status.changed",
              "peppol.document.received"
            ]
          },
          "status": {
            "enum": [
              "ACTIVE",
              "DISABLED"
            ],
            "type": "string",
            "description": "Webhook status (active/disabled)",
            "example": "DISABLED"
          }
        }
      },
      "WebhookResetSecretDto": {
        "type": "object",
        "properties": {
          "secret": {
            "type": "string",
            "description": "New secret key for the webhook. You should store this securely and not expose it publicly."
          }
        },
        "required": [
          "secret"
        ]
      },
      "WebhookTestRequestDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "enum": [
              "job.status.changed",
              "sending.event.file.ready",
              "sending.event.status.changed",
              "peppol.document.received"
            ],
            "type": "string",
            "description": "Event type to test. Required when the webhook subscription has more than one configured event type.",
            "example": "job.status.changed"
          }
        }
      },
      "WebhookTestResponseDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "number",
            "description": "HTTP status code received from the webhook endpoint",
            "example": 200
          },
          "success": {
            "type": "boolean",
            "description": "Whether the webhook delivery was successful",
            "example": true
          }
        },
        "required": [
          "statusCode",
          "success"
        ]
      },
      "UsagePeriod": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Start date of the period"
          },
          "until": {
            "type": "string",
            "description": "End date of the period"
          }
        },
        "required": [
          "from",
          "until"
        ]
      },
      "UsageCountSupplier": {
        "type": "object",
        "properties": {
          "supplierId": {
            "enum": [
              "NYMUS",
              "BILLIT"
            ],
            "type": "string",
            "description": "Peppol supplier identifier"
          },
          "usageCount": {
            "type": "number",
            "description": "Usage count for this supplier"
          }
        },
        "required": [
          "supplierId",
          "usageCount"
        ]
      },
      "ChannelUsageCountDto": {
        "type": "object",
        "properties": {
          "name": {
            "enum": [
              "USAGE_EMAIL_SENDING",
              "USAGE_ERDS_SENDING",
              "USAGE_QERDS_SENDING",
              "USAGE_PEPPOL_INCOMING_DOCUMENT",
              "USAGE_PEPPOL_OUTGOING_EVENT",
              "USAGE_POM_LINK",
              "USAGE_PONTO_ACCOUNT",
              "USAGE_EBOX_ENTERPRISE_MESSAGE",
              "USAGE_EBOX_CITIZEN_MESSAGE",
              "USAGE_PAGES_OCR",
              "USAGE_DOCCLE_DOCUMENT",
              "USAGE_NOTIFICATION_EMAIL",
              "USAGE_PRINT_SENDING",
              "USAGE_PDF_TO_UBL_CONVERSION",
              "USAGE_ESIGNING_DOCUMENT"
            ],
            "type": "string",
            "description": "Name of the channel or addon"
          },
          "usageCount": {
            "type": "number",
            "description": "Usage count for the channel or addon"
          },
          "suppliers": {
            "description": "Supplier breakdown for Peppol usage types",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageCountSupplier"
            }
          }
        },
        "required": [
          "name",
          "usageCount"
        ]
      },
      "AdditionalFeatureUsageCountDto": {
        "type": "object",
        "properties": {
          "name": {
            "enum": [
              "USAGE_EMAIL_SENDING",
              "USAGE_ERDS_SENDING",
              "USAGE_QERDS_SENDING",
              "USAGE_PEPPOL_INCOMING_DOCUMENT",
              "USAGE_PEPPOL_OUTGOING_EVENT",
              "USAGE_POM_LINK",
              "USAGE_PONTO_ACCOUNT",
              "USAGE_EBOX_ENTERPRISE_MESSAGE",
              "USAGE_EBOX_CITIZEN_MESSAGE",
              "USAGE_PAGES_OCR",
              "USAGE_DOCCLE_DOCUMENT",
              "USAGE_NOTIFICATION_EMAIL",
              "USAGE_PRINT_SENDING",
              "USAGE_PDF_TO_UBL_CONVERSION",
              "USAGE_ESIGNING_DOCUMENT"
            ],
            "type": "string",
            "description": "Name of the channel or addon"
          },
          "usageCount": {
            "type": "number",
            "description": "Usage count for the channel or addon"
          },
          "suppliers": {
            "description": "Supplier breakdown for Peppol usage types",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageCountSupplier"
            }
          }
        },
        "required": [
          "name",
          "usageCount"
        ]
      },
      "Usage": {
        "type": "object",
        "properties": {
          "channels": {
            "description": "Channel usage counts",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelUsageCountDto"
            }
          },
          "additionalFeatures": {
            "description": "Additional feature usage counts",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalFeatureUsageCountDto"
            }
          }
        },
        "required": [
          "channels",
          "additionalFeatures"
        ]
      },
      "UsageDto": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Company identifier"
          },
          "period": {
            "description": "Period of usage data",
            "allOf": [
              {
                "$ref": "#/components/schemas/UsagePeriod"
              }
            ]
          },
          "usage": {
            "description": "Channel and Addon usage count",
            "allOf": [
              {
                "$ref": "#/components/schemas/Usage"
              }
            ]
          }
        },
        "required": [
          "companyId",
          "period",
          "usage"
        ]
      },
      "UsageEventBaseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Usage Event"
          },
          "usageType": {
            "enum": [
              "USAGE_EMAIL_SENDING",
              "USAGE_ERDS_SENDING",
              "USAGE_QERDS_SENDING",
              "USAGE_PEPPOL_INCOMING_DOCUMENT",
              "USAGE_PEPPOL_OUTGOING_EVENT",
              "USAGE_POM_LINK",
              "USAGE_PONTO_ACCOUNT",
              "USAGE_EBOX_ENTERPRISE_MESSAGE",
              "USAGE_EBOX_CITIZEN_MESSAGE",
              "USAGE_PAGES_OCR",
              "USAGE_DOCCLE_DOCUMENT",
              "USAGE_NOTIFICATION_EMAIL",
              "USAGE_PRINT_SENDING",
              "USAGE_PDF_TO_UBL_CONVERSION",
              "USAGE_ESIGNING_DOCUMENT"
            ],
            "type": "string",
            "description": "Type of the Usage Event"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of the Usage Event",
            "format": "date-time"
          },
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the company associated with the usage event"
          },
          "departmentId": {
            "type": "string",
            "description": "Identifier of the department associated with the usage event, if applicable"
          },
          "ttl": {
            "type": "number",
            "description": "Time to live for the usage event record"
          }
        },
        "required": [
          "id",
          "usageType",
          "timestamp",
          "companyId",
          "ttl"
        ]
      },
      "UsageEventPOMLinkExtraDto": {
        "type": "object",
        "properties": {
          "paidDate": {
            "type": "string",
            "description": "Date when the POM link was paid",
            "format": "date-time"
          },
          "hasOptin": {
            "type": "boolean",
            "description": "Whether the user has opted in"
          }
        },
        "required": [
          "paidDate",
          "hasOptin"
        ]
      },
      "UsageEventPOMLinkDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Usage Event"
          },
          "usageType": {
            "enum": [
              "USAGE_POM_LINK"
            ],
            "type": "string",
            "description": "Type of the Usage Event"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of the Usage Event",
            "format": "date-time"
          },
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the company associated with the usage event"
          },
          "departmentId": {
            "type": "string",
            "description": "Identifier of the department associated with the usage event, if applicable"
          },
          "ttl": {
            "type": "number",
            "description": "Time to live for the usage event record"
          },
          "extra": {
            "$ref": "#/components/schemas/UsageEventPOMLinkExtraDto"
          }
        },
        "required": [
          "id",
          "usageType",
          "timestamp",
          "companyId",
          "ttl",
          "extra"
        ]
      },
      "UsageEventPagesOCRExtraDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Identifier of the job that processed the pages"
          },
          "amountOfPages": {
            "type": "number",
            "description": "Number of pages processed by OCR"
          }
        },
        "required": [
          "jobId",
          "amountOfPages"
        ]
      },
      "UsageEventPagesOCRDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Usage Event"
          },
          "usageType": {
            "enum": [
              "USAGE_PAGES_OCR"
            ],
            "type": "string",
            "description": "Type of the Usage Event"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of the Usage Event",
            "format": "date-time"
          },
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the company associated with the usage event"
          },
          "departmentId": {
            "type": "string",
            "description": "Identifier of the department associated with the usage event, if applicable"
          },
          "ttl": {
            "type": "number",
            "description": "Time to live for the usage event record"
          },
          "extra": {
            "$ref": "#/components/schemas/UsageEventPagesOCRExtraDto"
          }
        },
        "required": [
          "id",
          "usageType",
          "timestamp",
          "companyId",
          "ttl",
          "extra"
        ]
      },
      "UsageEventPdfToUblConversionExtraDto": {
        "type": "object",
        "properties": {
          "inputTokens": {
            "type": "number",
            "description": "Number of input tokens used in the conversion"
          },
          "outputTokens": {
            "type": "number",
            "description": "Number of output tokens generated in the conversion"
          },
          "documentType": {
            "type": "string",
            "description": "Type of document being converted"
          },
          "bedrockModel": {
            "type": "string",
            "description": "Bedrock model used for the conversion"
          }
        },
        "required": [
          "inputTokens",
          "outputTokens",
          "documentType",
          "bedrockModel"
        ]
      },
      "UsageEventPdfToUblConversionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Usage Event"
          },
          "usageType": {
            "enum": [
              "USAGE_PDF_TO_UBL_CONVERSION"
            ],
            "type": "string",
            "description": "Type of the Usage Event"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of the Usage Event",
            "format": "date-time"
          },
          "companyId": {
            "type": "string",
            "description": "Unique identifier of the company associated with the usage event"
          },
          "departmentId": {
            "type": "string",
            "description": "Identifier of the department associated with the usage event, if applicable"
          },
          "ttl": {
            "type": "number",
            "description": "Time to live for the usage event record"
          },
          "extra": {
            "$ref": "#/components/schemas/UsageEventPdfToUblConversionExtraDto"
          }
        },
        "required": [
          "id",
          "usageType",
          "timestamp",
          "companyId",
          "ttl",
          "extra"
        ]
      },
      "UsageDetailsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "description": "Array of usage events for the current page",
            "items": {
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/UsageEventBaseDto"
                    },
                    {
                      "not": {
                        "anyOf": [
                          {
                            "required": [
                              "paidDate"
                            ]
                          },
                          {
                            "required": [
                              "jobId"
                            ]
                          },
                          {
                            "required": [
                              "extra"
                            ]
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "$ref": "#/components/schemas/UsageEventPOMLinkDto"
                },
                {
                  "$ref": "#/components/schemas/UsageEventPagesOCRDto"
                },
                {
                  "$ref": "#/components/schemas/UsageEventPdfToUblConversionDto"
                }
              ],
              "discriminator": {
                "propertyName": "usageType",
                "mapping": {
                  "USAGE_POM_LINK": "#/components/schemas/UsageEventPOMLinkDto",
                  "USAGE_PAGES_OCR": "#/components/schemas/UsageEventPagesOCRDto",
                  "USAGE_PDF_TO_UBL_CONVERSION": "#/components/schemas/UsageEventPdfToUblConversionDto"
                }
              }
            }
          },
          "totalItems": {
            "type": "number",
            "description": "Total number of items available (without pagination)"
          }
        },
        "required": [
          "items",
          "totalItems"
        ]
      },
      "JobStatusChangedWebhookEventDataDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "companyId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "departmentId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "jobId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "workflowId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "status": {
            "enum": [
              "OK",
              "CANCELLED",
              "ERROR",
              "ACTION_REQUIRED"
            ],
            "type": "string",
            "example": "OK"
          },
          "fileCount": {
            "type": "number",
            "example": 1
          },
          "sendingEventCount": {
            "type": "number",
            "example": 1
          }
        },
        "required": [
          "eventId",
          "companyId",
          "departmentId",
          "jobId",
          "workflowId",
          "status",
          "fileCount",
          "sendingEventCount"
        ]
      },
      "JobStatusChangedWebhookEventDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "job.status.changed"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2025-04-01T10:11:34.518Z"
          },
          "version": {
            "type": "string",
            "example": "1"
          },
          "data": {
            "$ref": "#/components/schemas/JobStatusChangedWebhookEventDataDto"
          }
        },
        "required": [
          "eventType",
          "timestamp",
          "version",
          "data"
        ]
      },
      "SendingEventStatusChangedWebhookEventDataDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "companyId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "departmentId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "jobId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "sendingEventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX-01KN4017Y7T44D4V0EY21RHFZX"
          },
          "businessStatus": {
            "enum": [
              "SUCCESS",
              "FAILURE",
              "REJECTED",
              "SCHEDULED_FOR_EXECUTION"
            ],
            "type": "string",
            "example": "SUCCESS"
          }
        },
        "required": [
          "eventId",
          "companyId",
          "departmentId",
          "jobId",
          "sendingEventId",
          "businessStatus"
        ]
      },
      "SendingEventStatusChangedWebhookEventDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "sending.event.status.changed"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2025-04-01T10:11:34.518Z"
          },
          "version": {
            "type": "string",
            "example": "1"
          },
          "data": {
            "$ref": "#/components/schemas/SendingEventStatusChangedWebhookEventDataDto"
          }
        },
        "required": [
          "eventType",
          "timestamp",
          "version",
          "data"
        ]
      },
      "SendingEventFileReadyWebhookEventDataDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "companyId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "jobId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "sendingEventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX-01KN4017Y7T44D4V0EY21RHFZX"
          },
          "departmentId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "fileType": {
            "type": "string",
            "enum": [
              "POSTAL_REGISTERED_MAIL",
              "ERDS_DELIVERY",
              "QERDS_DELIVERY",
              "SUBMISSION_REPORT",
              "NOTIFICATION_REPORT"
            ],
            "example": "SUBMISSION_REPORT"
          },
          "fileReference": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX-SUBMISSION_REPORT"
          }
        },
        "required": [
          "eventId",
          "companyId",
          "jobId",
          "sendingEventId",
          "departmentId",
          "fileType",
          "fileReference"
        ]
      },
      "SendingEventFileReadyWebhookEventDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "sending.event.file.ready"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2025-04-01T10:11:34.518Z"
          },
          "version": {
            "type": "string",
            "example": "1"
          },
          "data": {
            "$ref": "#/components/schemas/SendingEventFileReadyWebhookEventDataDto"
          }
        },
        "required": [
          "eventType",
          "timestamp",
          "version",
          "data"
        ]
      },
      "PeppolDocumentReceivedWebhookEventDataDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "companyId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "documentType": {
            "enum": [
              "BIS_BILLING_INVOICE_V3",
              "BIS_SELF_BILLING_INVOICE_V3",
              "BIS_BILLING_CREDIT_NOTE_V3",
              "BIS_SELF_BILLING_CREDIT_NOTE_V3",
              "INVOICE_RESPONSE_3_0",
              "ORDER_3_0",
              "ORDER_AGREEMENT_3_0",
              "ORDER_RESPONSE_3_0",
              "CATALOGUE_3_0",
              "CATALOGUE_RESPONSE_3_0",
              "PUNCH_OUT_3_0",
              "DESPATCH_ADVICE_3_0",
              "MESSAGE_LEVEL_RESPONSE_3_0",
              "ORDER_CHANGE",
              "ORDER_CANCELLATION",
              "ORDER_RESPONSE_ADVANCED",
              "UNKNOWN"
            ],
            "type": "string",
            "example": "BIS_BILLING_INVOICE_V3"
          },
          "senderId": {
            "type": "string",
            "example": "01KN4017Y7T44D4V0EY21RHFZX"
          },
          "id": {
            "type": "string",
            "description": "Peppol document reference",
            "example": "2006-01/invoice-012345"
          },
          "eventType": {
            "enum": [
              "INCOMING_PEPPOL_DOCUMENT",
              "MODIFIED_PEPPOL_DOCUMENT"
            ],
            "type": "string",
            "example": "INCOMING_PEPPOL_DOCUMENT"
          }
        },
        "required": [
          "eventId",
          "companyId",
          "documentType",
          "senderId",
          "id",
          "eventType"
        ]
      },
      "PeppolDocumentReceivedWebhookEventDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "peppol.document.received"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "example": "2025-04-01T10:11:34.518Z"
          },
          "version": {
            "type": "string",
            "example": "1"
          },
          "data": {
            "$ref": "#/components/schemas/PeppolDocumentReceivedWebhookEventDataDto"
          }
        },
        "required": [
          "eventType",
          "timestamp",
          "version",
          "data"
        ]
      }
    }
  },
  "externalDocs": {
    "description": "Full Public API documentation",
    "url": "https://doc.acc.connect.easypost.eu/"
  },
  "x-webhooks": {
    "job.status.changed": {
      "post": {
        "tags": [
          "Webhook Events"
        ],
        "summary": "Job Status Changed",
        "description": "Sent when a job status changes.",
        "operationId": "jobStatusChangedWebhook",
        "parameters": [
          {
            "name": "X-Connect-Signature",
            "in": "header",
            "required": true,
            "description": "HMAC SHA-256 signature of the webhook request. It is calculated with the webhook secret over the value `${X-Connect-Timestamp}.${rawRequestBody}`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Connect-Timestamp",
            "in": "header",
            "required": true,
            "description": "Unix timestamp, in seconds, used when calculating the webhook signature.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "X-Connect-Event-Id",
            "in": "header",
            "required": true,
            "description": "Unique identifier of the webhook event. This is the same value as `data.eventId` in the payload.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobStatusChangedWebhookEventDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx response to acknowledge successful receipt."
          }
        }
      }
    },
    "sending.event.status.changed": {
      "post": {
        "tags": [
          "Webhook Events"
        ],
        "summary": "Sending Event Status Changed",
        "description": "Sent when a sending event business status changes.",
        "operationId": "sendingEventStatusChangedWebhook",
        "parameters": [
          {
            "name": "X-Connect-Signature",
            "in": "header",
            "required": true,
            "description": "HMAC SHA-256 signature of the webhook request. It is calculated with the webhook secret over the value `${X-Connect-Timestamp}.${rawRequestBody}`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Connect-Timestamp",
            "in": "header",
            "required": true,
            "description": "Unix timestamp, in seconds, used when calculating the webhook signature.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "X-Connect-Event-Id",
            "in": "header",
            "required": true,
            "description": "Unique identifier of the webhook event. This is the same value as `data.eventId` in the payload.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendingEventStatusChangedWebhookEventDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx response to acknowledge successful receipt."
          }
        }
      }
    },
    "sending.event.file.ready": {
      "post": {
        "tags": [
          "Webhook Events"
        ],
        "summary": "Sending Event File Ready",
        "description": "Sent when a generated sending event file is ready for download.",
        "operationId": "sendingEventFileReadyWebhook",
        "parameters": [
          {
            "name": "X-Connect-Signature",
            "in": "header",
            "required": true,
            "description": "HMAC SHA-256 signature of the webhook request. It is calculated with the webhook secret over the value `${X-Connect-Timestamp}.${rawRequestBody}`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Connect-Timestamp",
            "in": "header",
            "required": true,
            "description": "Unix timestamp, in seconds, used when calculating the webhook signature.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "X-Connect-Event-Id",
            "in": "header",
            "required": true,
            "description": "Unique identifier of the webhook event. This is the same value as `data.eventId` in the payload.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendingEventFileReadyWebhookEventDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx response to acknowledge successful receipt."
          }
        }
      }
    },
    "peppol.document.received": {
      "post": {
        "tags": [
          "Webhook Events"
        ],
        "summary": "Peppol Document Received",
        "description": "Sent when an incoming Peppol document is received.",
        "operationId": "peppolDocumentReceivedWebhook",
        "parameters": [
          {
            "name": "X-Connect-Signature",
            "in": "header",
            "required": true,
            "description": "HMAC SHA-256 signature of the webhook request. It is calculated with the webhook secret over the value `${X-Connect-Timestamp}.${rawRequestBody}`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Connect-Timestamp",
            "in": "header",
            "required": true,
            "description": "Unix timestamp, in seconds, used when calculating the webhook signature.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "X-Connect-Event-Id",
            "in": "header",
            "required": true,
            "description": "Unique identifier of the webhook event. This is the same value as `data.eventId` in the payload.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PeppolDocumentReceivedWebhookEventDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx response to acknowledge successful receipt."
          }
        }
      }
    }
  }
}