Phasio Manufacturer Requisition Controller API

API for managing part requisitions and production batches

OpenAPI Specification

phasio-manufacturer-requisition-controller-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Phasio Activity Internal Manufacturer Requisition Controller API
  description: This is the API documentation for the Phasio application.
  version: '1.0'
servers:
- url: https://m-api.eu.phas.io
  description: Generated server url
security:
- Phasio API Bearer Token: []
tags:
- name: Manufacturer Requisition Controller
  description: API for managing part requisitions and production batches
paths:
  /api/manufacturer/v1/requisition/{requisitionId}/work-order:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Create an additional work order
      description: Creates a new work order on the requisition and schedules the requested quantity into its first operation, distinct from the idempotent bulk schedule path. Uses the ad-hoc routing given by optional ordered operationIds, else the template given by optional routingTemplateId, else the spec's designated default template, else a system-derived routing. routingTemplateId alongside operationIds records which template the ad-hoc steps were customized from. Its routing can be diverged afterward via the routing editor.
      operationId: addWorkOrder
      parameters:
      - name: requisitionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkOrderRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/WorkOrderDto'
  /api/manufacturer/v1/requisition/work-orders:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Create work orders
      description: Creates a new work order for every part and quantity in the request
      operationId: createWorkOrder
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ScheduleBatchesDto'
        required: true
      responses:
        '200':
          description: Successfully created work orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchBalanceDto'
        '400':
          description: Failed to create work orders
  /api/manufacturer/v1/requisition/batch-status:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Create production batches
      description: 'Creates production batches for the specified parts and quantities. Idempotent: parts whose work order is already in production are skipped'
      operationId: createBatchesLegacy
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ScheduleBatchesDto'
        required: true
      responses:
        '200':
          description: Successfully created production batches
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchBalanceDto'
        '400':
          description: Failed to create production batches
  /api/manufacturer/v1/requisition/create-batches:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Create production batches
      description: 'Creates production batches for the specified parts and quantities. Idempotent: parts whose work order is already in production are skipped'
      operationId: createBatchesLegacy_1
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ScheduleBatchesDto'
        required: true
      responses:
        '200':
          description: Successfully created production batches
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchBalanceDto'
        '400':
          description: Failed to create production batches
  /api/manufacturer/v1/requisition/bulk:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisitions by ids
      description: Retrieves requisitions for the given ids, regardless of current step. Used to hydrate paginated completed-order rows whose requisitions fall outside the operation-scoped set.
      operationId: getByIds
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
              uniqueItems: true
        required: true
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
  /api/manufacturer/v1/requisition/auto-create-batches/{orderId}:
    post:
      tags:
      - Manufacturer Requisition Controller
      summary: Automatically create batches for an order
      description: Creates production batches for all parts in the specified order
      operationId: autoCreateBatches
      parameters:
      - name: orderId
        in: path
        description: ID of the order to create batches for
        required: true
        schema:
          type: integer
          format: int64
        example: 1
      responses:
        '200':
          description: Successfully created production batches
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchBalanceDto'
        '400':
          description: Failed to create production batches
  /api/manufacturer/v1/requisition:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get all requisitions for current operator
      description: Retrieves all requisitions for the current operator
      operationId: getByOperator_1
      parameters:
      - name: archived
        in: query
        description: Include archived requisitions
        required: true
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
        '401':
          description: Unauthorized - missing operator context
  /api/manufacturer/v1/requisition/{requisitionId}/thumbnail:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Download requisition part thumbnail
      description: Downloads the thumbnail image for a requisition's part
      operationId: downloadThumbnail
      parameters:
      - name: requisitionId
        in: path
        description: ID of the requisition
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Thumbnail successfully downloaded
          content:
            image/png: {}
        '400':
          description: Invalid requisition ID or thumbnail not available
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/manufacturer/v1/requisition/{id}:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisition by ID
      description: Retrieves a specific requisition by its ID
      operationId: get_16
      parameters:
      - name: id
        in: path
        description: ID of the requisition to retrieve
        required: true
        schema:
          type: integer
          format: int64
        example: 1
      responses:
        '200':
          description: Successfully retrieved requisition
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisitionDto'
        '404':
          description: Requisition not found
  /api/manufacturer/v1/requisition/production-step/{stepId}:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisitions by production step
      description: Retrieves all requisitions at the specified production step
      operationId: getByProductionStep
      parameters:
      - name: stepId
        in: path
        description: UUID of the production step to filter by
        required: true
        schema:
          type: string
          format: uuid
      - name: archived
        in: query
        description: Include archived requisitions
        required: true
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
  /api/manufacturer/v1/requisition/part-specification/{specificationId}:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisitions by part specification ID
      description: Retrieves all requisitions for the specified part specification
      operationId: getByPartSpecification
      parameters:
      - name: specificationId
        in: path
        description: UUID of the part specification to filter by
        required: true
        schema:
          type: string
          format: uuid
      - name: archived
        in: query
        description: Include archived requisitions
        required: false
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
  /api/manufacturer/v1/requisition/order:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisitions by order ID
      description: Retrieves all requisitions for the specified order
      operationId: getByOrder
      parameters:
      - name: orderId
        in: query
        description: ID of the order to filter by
        required: true
        schema:
          type: integer
          format: int64
        example: 1
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
  /api/manufacturer/v1/requisition/operation/{operationId}:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get requisitions by operation
      description: Retrieves all requisitions with the specified operation
      operationId: getByOperation
      parameters:
      - name: operationId
        in: path
        description: UUID of the operation to filter by
        required: true
        schema:
          type: string
          format: uuid
      - name: archived
        in: query
        description: Include archived requisitions
        required: false
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Successfully retrieved requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
  /api/manufacturer/v1/requisition/batch-transitions:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get batch transitions for parts
      description: Retrieves all batch transitions for the specified part IDs
      operationId: getBatchTransitions
      parameters:
      - name: requisitionIds
        in: query
        description: List of part IDs to get transitions for
        required: true
        schema:
          type: array
          items:
            type: integer
            format: int64
          uniqueItems: true
      responses:
        '200':
          description: Successfully retrieved batch transitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchTransitionDto'
  /api/manufacturer/v1/requisition/backlog:
    get:
      tags:
      - Manufacturer Requisition Controller
      summary: Get backlogged requisitions
      description: Retrieves all requisitions in the operator's backlog
      operationId: getBacklogByOperator
      responses:
        '200':
          description: Successfully retrieved backlogged requisitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequisitionDto'
        '401':
          description: Unauthorized - missing operator context
components:
  schemas:
    RoutingStepDto:
      type: object
      properties:
        operationId:
          type: string
          format: uuid
        sequence:
          type: integer
          format: int32
        statusId:
          type: string
          format: uuid
      required:
      - operationId
      - sequence
      - statusId
    FixedOrientationConstraintDto:
      allOf:
      - $ref: '#/components/schemas/ConstraintDto'
      - type: object
        properties:
          rotationMatrix:
            type: array
            items:
              type: array
              items:
                type: number
      required:
      - constraintType
      - createdAt
      - id
      - partSpecificationId
      - rotationMatrix
      - updatedAt
    BatchBalanceDto:
      type: object
      properties:
        operationId:
          type: string
          format: uuid
        operationName:
          type: string
        sequence:
          type: integer
          format: int64
        requisitionId:
          type: integer
          format: int64
        workOrderId:
          type: string
          format: uuid
        processPricesId:
          type: string
          format: uuid
        materialId:
          type: integer
          format: int64
        colorId:
          type: integer
          format: int64
        dispatchDate:
          type: string
          format: date
        requisitionDuration:
          type: integer
        quantity:
          type: integer
        stepId:
          type: string
          format: uuid
        groupId:
          type: string
        prefix:
          type: string
        stepType:
          type: string
        orderId:
          type: integer
          format: int64
        orderNumber:
          type: integer
          format: int64
        threadId:
          type: integer
          format: int64
        purchaseOrderNumber:
          type: string
        commentCount:
          type: integer
          format: int64
        closedAt:
          type: string
          format: date-time
        outstandingAt:
          type: string
          format: date-time
        batchStatusId:
          type: string
          format: uuid
        batchStatusName:
          type: string
      required:
      - batchStatusId
      - batchStatusName
      - commentCount
      - groupId
      - materialId
      - operationId
      - operationName
      - outstandingAt
      - prefix
      - processPricesId
      - quantity
      - requisitionId
      - sequence
      - stepId
      - stepType
      - workOrderId
    RequisitionDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        orderId:
          type: integer
          format: int64
        partRevisionId:
          type: string
          format: uuid
        units:
          type: string
          enum:
          - CENTIMETERS
          - MILLIMETERS
          - METRES
          - INCHES
          - FEET
        name:
          type: string
        quantity:
          type: integer
        colorId:
          type: integer
          format: int64
        precisionId:
          type: integer
          format: int64
        materialId:
          type: integer
          format: int64
        processPricesId:
          type: string
          format: uuid
        infillId:
          type: integer
          format: int64
        pricePaid:
          type: number
        postProcessingIds:
          type: array
          items:
            type: integer
            format: int64
        watertight:
          type: boolean
        createdAt:
          type: string
          format: date-time
        lastUpdated:
          type: string
          format: date-time
        leadTimeId:
          type: string
          format: uuid
        constraints:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/ConstraintDto'
            - $ref: '#/components/schemas/FixedOrientationConstraintDto'
      required:
      - constraints
      - createdAt
      - id
      - lastUpdated
      - materialId
      - name
      - orderId
      - partRevisionId
      - postProcessingIds
      - processPricesId
      - quantity
      - units
      - watertight
    WorkOrderDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        workOrderNumber:
          type: integer
          format: int64
        routingTemplateId:
          type: string
          format: uuid
        name:
          type: string
        quantity:
          type: integer
        routing:
          type: array
          items:
            $ref: '#/components/schemas/RoutingStepDto'
        createdAt:
          type: string
          format: date-time
      required:
      - createdAt
      - id
      - quantity
      - routing
    CreateWorkOrderRequest:
      type: object
      properties:
        quantity:
          type: integer
        name:
          type: string
        routingTemplateId:
          type: string
          format: uuid
        operationIds:
          type: array
          items:
            type: string
            format: uuid
      required:
      - quantity
    BatchTransitionDto:
      type: object
      discriminator:
        propertyName: type
      properties:
        id:
          type: string
          format: uuid
        requisitionId:
          type: integer
          format: int64
        workOrderId:
          type: string
          format: uuid
        fromOperationId:
          type: string
          format: uuid
        fromOperationName:
          type: string
        fromStepId:
          type: string
          format: uuid
        fromStepBuildId:
          type: string
        fromStepPrefix:
          type: string
        batchSize:
          type: integer
        createdAt:
          type: string
          format: date-time
        updateDt:
          type: string
          format: date-time
        type:
          type: string
        fromStatusId:
          type: string
          format: uuid
        fromStatusName:
          type: string
      required:
      - type
    ConstraintDto:
      type: object
      discriminator:
        propertyName: constraintType
      properties:
        id:
          type: string
          format: uuid
        constraintType:
          type: string
        partSpecificationId:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - constraintType
      - createdAt
      - id
      - partSpecificationId
      - updatedAt
    ScheduleBatchesDto:
      type: object
      properties:
        requisitionId:
          type: integer
          format: int64
        quantity:
          type: integer
        name:
          type: string
        routingTemplateId:
          type: string
          format: uuid
        operationIds:
          type: array
          items:
            type: string
            format: uuid
      required:
      - quantity
      - requisitionId
  securitySchemes:
    Phasio API Bearer Token:
      type: http
      name: Authorization
      in: header
      scheme: bearer
      bearerFormat: JWT