Xceptor Workflow API

API for creating, managing, and executing data processing workflows within the Xceptor platform. Enables programmatic orchestration of automated data processing pipelines including event-driven triggers and business rules execution.

OpenAPI Specification

xceptor-workflow-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Xceptor Workflow API
  description: >-
    API for creating, managing, and executing data processing workflows
    within the Xceptor platform. Enables programmatic orchestration of
    automated data processing pipelines including event-driven triggers,
    business rules execution, step configuration, and workflow run monitoring.
    Workflows define multi-step processing sequences for enrichment,
    validation, reconciliation, and exception handling of financial data.
  version: '1.0'
  contact:
    name: Xceptor API Support
    url: https://www.xceptor.com/support
    email: api-support@xceptor.com
  termsOfService: https://www.xceptor.com/legal-tcs
externalDocs:
  description: Xceptor Workflow API Documentation
  url: https://docs.xceptor.com/api/workflows
servers:
  - url: https://api.xceptor.com/v1
    description: Production Server
tags:
  - name: Workflow Runs
    description: >-
      Operations for executing workflows, monitoring run status, and
      retrieving run history and output.
  - name: Workflow Steps
    description: >-
      Operations for managing the individual processing steps that compose
      a workflow, including step ordering and configuration.
  - name: Workflows
    description: >-
      Operations for creating, updating, listing, and deleting workflow
      definitions.
security:
  - bearerAuth: []
paths:
  /workflows:
    get:
      operationId: listWorkflows
      summary: Xceptor List Workflows
      description: >-
        Retrieves a paginated list of workflow definitions configured in the
        Xceptor platform. Workflows can be filtered by status, category, and
        name. Each workflow defines a multi-step data processing pipeline.
      tags:
        - Workflows
      parameters:
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/PageSizeParam'
        - name: status
          in: query
          description: Filter workflows by their activation status
          schema:
            type: string
            enum:
              - active
              - inactive
              - draft
        - name: category
          in: query
          description: Filter workflows by category
          schema:
            type: string
        - name: search
          in: query
          description: Search workflows by name or description
          schema:
            type: string
      responses:
        '200':
          description: A paginated list of workflows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createWorkflow
      summary: Xceptor Create Workflow
      description: >-
        Creates a new workflow definition in the Xceptor platform. A workflow
        defines a sequence of processing steps that are executed in order to
        transform, validate, enrich, and route data through the automation
        pipeline.
      tags:
        - Workflows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreate'
      responses:
        '201':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          description: Invalid request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /workflows/{workflowId}:
    get:
      operationId: getWorkflow
      summary: Xceptor Get Workflow Details
      description: >-
        Retrieves the full definition of a specific workflow, including its
        steps, trigger configuration, and associated metadata.
      tags:
        - Workflows
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      operationId: updateWorkflow
      summary: Xceptor Update Workflow
      description: >-
        Updates an existing workflow definition. Changes to active workflows
        take effect on subsequent runs. Running instances continue to use
        the previous version until completion.
      tags:
        - Workflows
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowUpdate'
      responses:
        '200':
          description: Workflow updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          description: Invalid request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteWorkflow
      summary: Xceptor Delete Workflow
      description: >-
        Deletes a workflow definition. Active workflows must be deactivated
        before deletion. Any running instances will complete before the
        workflow is removed.
      tags:
        - Workflows
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      responses:
        '204':
          description: Workflow deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /workflows/{workflowId}/runs:
    get:
      operationId: listWorkflowRuns
      summary: Xceptor List Workflow Runs
      description: >-
        Retrieves a paginated list of execution runs for a specific workflow.
        Each run represents a single execution of the workflow and includes
        status, timing, and output information.
      tags:
        - Workflow Runs
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/PageSizeParam'
        - name: status
          in: query
          description: Filter runs by execution status
          schema:
            type: string
            enum:
              - pending
              - running
              - completed
              - failed
              - cancelled
      responses:
        '200':
          description: A paginated list of workflow runs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRunList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: executeWorkflow
      summary: Xceptor Execute Workflow
      description: >-
        Triggers an execution run of the specified workflow. The workflow
        is executed asynchronously and the run status can be monitored
        using the run details endpoint. Input parameters can be provided
        to configure the execution context.
      tags:
        - Workflow Runs
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunCreate'
      responses:
        '201':
          description: Workflow run initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '400':
          description: Invalid request body or workflow is not active
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /workflows/{workflowId}/runs/{runId}:
    get:
      operationId: getWorkflowRun
      summary: Xceptor Get Workflow Run Details
      description: >-
        Retrieves the details and current status of a specific workflow run,
        including step-level progress, timing information, any errors
        encountered, and output references.
      tags:
        - Workflow Runs
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
        - $ref: '#/components/parameters/RunIdParam'
      responses:
        '200':
          description: Workflow run details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow or run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: cancelWorkflowRun
      summary: Xceptor Cancel Workflow Run
      description: >-
        Cancels a pending or running workflow execution. The cancellation is
        asynchronous and the run status will transition to cancelled once
        all active steps have stopped processing.
      tags:
        - Workflow Runs
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
        - $ref: '#/components/parameters/RunIdParam'
      responses:
        '200':
          description: Workflow run cancellation initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow or run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /workflows/{workflowId}/steps:
    get:
      operationId: listWorkflowSteps
      summary: Xceptor List Workflow Steps
      description: >-
        Retrieves the ordered list of processing steps that compose a
        workflow. Each step represents a distinct processing operation such
        as extraction, transformation, validation, enrichment, or routing.
      tags:
        - Workflow Steps
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      responses:
        '200':
          description: A list of workflow steps
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkflowStep'
                    description: The ordered list of workflow steps
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: addWorkflowStep
      summary: Xceptor Add Workflow Step
      description: >-
        Adds a new processing step to a workflow. The step is inserted at the
        specified position in the workflow sequence. Steps can be configured
        with type-specific parameters for extraction, transformation,
        validation, and other operations.
      tags:
        - Workflow Steps
      parameters:
        - $ref: '#/components/parameters/WorkflowIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowStepCreate'
      responses:
        '201':
          description: Step added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowStep'
        '400':
          description: Invalid request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Workflow not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        OAuth2 access token obtained via the client credentials flow.
        Include as a Bearer token in the Authorization header.
  parameters:
    WorkflowIdParam:
      name: workflowId
      in: path
      required: true
      description: The unique identifier of the workflow
      schema:
        type: string
        format: uuid
    RunIdParam:
      name: runId
      in: path
      required: true
      description: The unique identifier of the workflow run
      schema:
        type: string
        format: uuid
    PageParam:
      name: page
      in: query
      description: The page number for pagination (1-based)
      schema:
        type: integer
        minimum: 1
        default: 1
    PageSizeParam:
      name: page_size
      in: query
      description: The number of items per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
  schemas:
    Workflow:
      type: object
      description: >-
        A workflow definition that describes a multi-step data processing
        pipeline in the Xceptor platform.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the workflow
        name:
          type: string
          description: The display name of the workflow
        description:
          type: string
          description: A detailed description of what the workflow does
        status:
          type: string
          description: The activation status of the workflow
          enum:
            - active
            - inactive
            - draft
        category:
          type: string
          description: The category or group the workflow belongs to
        trigger_type:
          type: string
          description: How the workflow is triggered for execution
          enum:
            - manual
            - scheduled
            - event
            - api
        schedule:
          type: string
          description: >-
            The cron expression for scheduled workflows, applicable when
            trigger_type is scheduled
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
          description: The ordered list of processing steps in the workflow
        created_at:
          type: string
          format: date-time
          description: The date and time the workflow was created
        updated_at:
          type: string
          format: date-time
          description: The date and time the workflow was last updated
        created_by:
          type: string
          description: The identifier of the user who created the workflow
    WorkflowCreate:
      type: object
      description: Request body for creating a new workflow
      required:
        - name
        - trigger_type
      properties:
        name:
          type: string
          description: The display name of the workflow
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: A detailed description of what the workflow does
          maxLength: 2000
        category:
          type: string
          description: The category or group for the workflow
        trigger_type:
          type: string
          description: How the workflow is triggered for execution
          enum:
            - manual
            - scheduled
            - event
            - api
        schedule:
          type: string
          description: >-
            Cron expression for scheduled workflows. Required when
            trigger_type is scheduled.
    WorkflowUpdate:
      type: object
      description: Request body for updating an existing workflow
      properties:
        name:
          type: string
          description: The display name of the workflow
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: A detailed description of what the workflow does
          maxLength: 2000
        status:
          type: string
          description: The activation status of the workflow
          enum:
            - active
            - inactive
            - draft
        category:
          type: string
          description: The category or group for the workflow
        trigger_type:
          type: string
          description: How the workflow is triggered for execution
          enum:
            - manual
            - scheduled
            - event
            - api
        schedule:
          type: string
          description: >-
            Cron expression for scheduled workflows. Required when
            trigger_type is scheduled.
    WorkflowList:
      type: object
      description: A paginated list of workflows
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Workflow'
          description: The list of workflows for the current page
        pagination:
          $ref: '#/components/schemas/Pagination'
    WorkflowStep:
      type: object
      description: >-
        A single processing step within a workflow. Steps are executed in
        sequence and each performs a specific data processing operation.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the step
        name:
          type: string
          description: The display name of the step
        type:
          type: string
          description: The type of processing operation the step performs
          enum:
            - extraction
            - transformation
            - validation
            - enrichment
            - routing
            - notification
            - export
            - custom
        position:
          type: integer
          description: The position of the step in the workflow sequence (0-based)
          minimum: 0
        configuration:
          type: object
          description: Type-specific configuration parameters for the step
          additionalProperties: true
        enabled:
          type: boolean
          description: Whether the step is enabled for execution
          default: true
    WorkflowStepCreate:
      type: object
      description: Request body for adding a new step to a workflow
      required:
        - name
        - type
      properties:
        name:
          type: string
          description: The display name of the step
          minLength: 1
          maxLength: 255
        type:
          type: string
          description: The type of processing operation
          enum:
            - extraction
            - transformation
            - validation
            - enrichment
            - routing
            - notification
            - export
            - custom
        position:
          type: integer
          description: >-
            The desired position in the workflow sequence. If omitted, the
            step is appended to the end.
          minimum: 0
        configuration:
          type: object
          description: Type-specific configuration parameters for the step
          additionalProperties: true
        enabled:
          type: boolean
          description: Whether the step is enabled for execution
          default: true
    WorkflowRun:
      type: object
      description: >-
        A single execution instance of a workflow. Tracks the progress and
        outcome of running a workflow's processing pipeline.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the run
        workflow_id:
          type: string
          format: uuid
          description: The identifier of the workflow that was executed
        status:
          type: string
          description: The current execution status of the run
          enum:
            - pending
            - running
            - completed
            - failed
            - cancelled
        triggered_by:
          type: string
          description: How this run was triggered
          enum:
            - manual
            - schedule
            - event
            - api
        started_at:
          type: string
          format: date-time
          description: The date and time the run started executing
        completed_at:
          type: string
          format: date-time
          description: The date and time the run completed
        duration_ms:
          type: integer
          description: The total run duration in milliseconds
          minimum: 0
        step_results:
          type: array
          items:
            $ref: '#/components/schemas/StepResult'
          description: The results of each step in the workflow run
        input_parameters:
          type: object
          description: The input parameters provided for this run
          additionalProperties: true
        error:
          $ref: '#/components/schemas/Error'
    WorkflowRunCreate:
      type: object
      description: Request body for triggering a workflow execution
      properties:
        parameters:
          type: object
          description: Input parameters for the workflow execution
          additionalProperties: true
    WorkflowRunList:
      type: object
      description: A paginated list of workflow runs
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowRun'
          description: The list of workflow runs for the current page
        pagination:
          $ref: '#/components/schemas/Pagination'
    StepResult:
      type: object
      description: The result of executing a single workflow step
      properties:
        step_id:
          type: string
          format: uuid
          description: The identifier of the workflow step
        step_name:
          type: string
          description: The name of the workflow step
        status:
          type: string
          description: The execution status of the step
          enum:
            - pending
            - running
            - completed
            - failed
            - skipped
        started_at:
          type: string
          format: date-time
          description: The date and time the step started
        completed_at:
          type: string
          format: date-time
          description: The date and time the step completed
        records_processed:
          type: integer
          description: The number of data records processed by the step
          minimum: 0
        records_failed:
          type: integer
          description: The number of records that failed processing
          minimum: 0
        error:
          $ref: '#/components/schemas/Error'
    Pagination:
      type: object
      description: Pagination information for list responses
      properties:
        page:
          type: integer
          description: The current page number
        page_size:
          type: integer
          description: The number of items per page
        total_items:
          type: integer
          description: The total number of items across all pages
        total_pages:
          type: integer
          description: The total number of pages
    Error:
      type: object
      description: An error response from the Xceptor API
      properties:
        code:
          type: string
          description: A machine-readable error code
        message:
          type: string
          description: A human-readable description of the error
        details:
          type: object
          description: Additional error details when available
          additionalProperties: true