Phasio Customer Order Controller API

Endpoints for managing customer manufacturing orders

Operations 15

PUT /api/customer/v1/order/{orderId}/purchase-order-pdf Upload purchase order PDF #
GET /api/customer/v1/order Get all orders #
POST /api/customer/v1/order Create order #
POST /api/customer/v1/order/{orderId}/payment Create payment for order #
PATCH /api/customer/v1/order/{orderId}/shipment Update order shipment #
PATCH /api/customer/v1/order/{orderId}/payment/purchase-order Pay by purchase order #
PATCH /api/customer/v1/order/{orderId}/payment/invoice Confirm invoice payment #
PATCH /api/customer/v1/order/{orderId}/discount/{discountId}/apply Apply discount to order #
PATCH /api/customer/v1/order/{orderId}/discount/remove Remove discount from order #
PATCH /api/customer/v1/order/{orderId}/awaiting-status Update order awaiting status #
GET /api/customer/v1/order/{orderId} Get order by ID #
GET /api/customer/v1/order/{orderId}/quote Get order quote #
GET /api/customer/v1/order/{orderId}/purchasability Validate order purchasability #
GET /api/customer/v1/order/project/{projectId} Get orders by project #
GET /api/customer/v1/order/count Get order count #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/phasio-customer-order-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

phasio-customer-order-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phasio Activity Internal Customer Order 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: Customer Order Controller
  description: Endpoints for managing customer manufacturing orders
paths:
  /api/customer/v1/order/{orderId}/purchase-order-pdf:
    put:
      tags:
      - Customer Order Controller
      summary: Upload purchase order PDF
      description: 'Uploads a PDF document as a purchase order for an order. DEPRECATED: Use the confirmPurchaseOrderPayment endpoint instead, which confirms payment and uploads the PDF in a single call.'
      operationId: uploadPurchaseOrderPDF
      parameters:
      - name: orderId
        in: path
        description: ID of the order
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Purchase order PDF file
              required:
              - file
      responses:
        '204':
          description: PDF successfully uploaded
        '400':
          description: Invalid order ID or upload failed
        '401':
          description: Unauthorized - missing or invalid authentication
      deprecated: true
  /api/customer/v1/order:
    get:
      tags:
      - Customer Order Controller
      summary: Get all orders
      description: Retrieves all orders for the current customer organization
      operationId: get_11
      responses:
        '200':
          description: Successfully retrieved orders
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized - missing or invalid authentication
    post:
      tags:
      - Customer Order Controller
      summary: Create order
      description: Creates a new manufacturing order
      operationId: create_20
      parameters:
      - name: threadId
        in: query
        description: Thread ID the order belongs to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderDto'
        required: true
      responses:
        '200':
          description: Order successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrderResponseDto'
        '400':
          description: Invalid order data
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/payment:
    post:
      tags:
      - Customer Order Controller
      summary: Create payment for order
      description: Initiates a payment transaction for the specified order
      operationId: createPayment_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order to create payment for
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Payment successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatedPaymentDto'
        '400':
          description: Invalid order ID or payment setup failed
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/shipment:
    patch:
      tags:
      - Customer Order Controller
      summary: Update order shipment
      description: Updates the shipping information for an order
      operationId: updateShipment_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              description: Shipment information
              oneOf:
              - $ref: '#/components/schemas/CarrierAccountShipmentDto'
              - $ref: '#/components/schemas/FixedPriceShipmentDto'
              - $ref: '#/components/schemas/SelfCollectionShipmentDto'
        required: true
      responses:
        '200':
          description: Shipment successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentDto'
        '400':
          description: Invalid order ID or shipment data
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/payment/purchase-order:
    patch:
      tags:
      - Customer Order Controller
      summary: Pay by purchase order
      description: Confirms payment for an order when paying by purchase order, or updates an existing purchase order. Accepts PO number, message, and optional PDF file.
      operationId: confirmPurchaseOrderPayment
      parameters:
      - name: orderId
        in: path
        description: ID of the order to confirm payment for
        required: true
        schema:
          type: integer
          format: int64
      - name: purchaseOrderNumber
        in: query
        description: Purchase order number
        required: false
        schema:
          type: string
      - name: message
        in: query
        description: Optional message from customer
        required: false
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Purchase order PDF file
      responses:
        '200':
          description: Purchase order payment successfully confirmed or updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDto'
        '400':
          description: Invalid order ID or payment confirmation failed
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/payment/invoice:
    patch:
      tags:
      - Customer Order Controller
      summary: Confirm invoice payment
      description: Confirms payment for an order when paying by invoice (for German manufacturers)
      operationId: confirmInvoicePayment
      parameters:
      - name: orderId
        in: path
        description: ID of the order to confirm payment for
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Payment successfully confirmed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDto'
        '400':
          description: Invalid order ID, invoice payment not enabled, or payment confirmation failed
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/discount/{discountId}/apply:
    patch:
      tags:
      - Customer Order Controller
      summary: Apply discount to order
      description: Applies a specific discount to an order
      operationId: applyDiscount_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order
        required: true
        schema:
          type: integer
          format: int64
      - name: discountId
        in: path
        description: ID of the discount to apply
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: Discount successfully applied
        '400':
          description: Invalid order ID, discount ID, or discount cannot be applied
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/discount/remove:
    patch:
      tags:
      - Customer Order Controller
      summary: Remove discount from order
      description: Removes any applied discount from an order
      operationId: removeDiscount_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: Discount successfully removed
        '400':
          description: Invalid order ID or discount removal failed
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}/awaiting-status:
    patch:
      tags:
      - Customer Order Controller
      summary: Update order awaiting status
      description: Updates the awaiting status of an order, such as confirming or rejecting a quotation
      operationId: updateAwaitingStatus_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order to update
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAwaitingStatusDto'
        required: true
      responses:
        '200':
          description: Order status successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDto'
        '400':
          description: Invalid order ID or status update failed
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/{orderId}:
    get:
      tags:
      - Customer Order Controller
      summary: Get order by ID
      description: Retrieves a specific order by its unique identifier
      operationId: getById_12
      parameters:
      - name: orderId
        in: path
        description: ID of the order to retrieve
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successfully retrieved order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDto'
        '401':
          description: Unauthorized - missing or invalid authentication
        '404':
          description: Order not found
  /api/customer/v1/order/{orderId}/quote:
    get:
      tags:
      - Customer Order Controller
      summary: Get order quote
      description: Retrieves a detailed quote for an existing order
      operationId: getOrderQuote
      parameters:
      - name: orderId
        in: path
        description: ID of the order to get a quote for
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Order quote successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteDto'
        '400':
          description: Not found - Order does not exist
        '401':
          description: Unauthorized - Missing or invalid authentication
  /api/customer/v1/order/{orderId}/purchasability:
    get:
      tags:
      - Customer Order Controller
      summary: Validate order purchasability
      description: Checks if an order can be purchased (all parts manufacturable, etc.)
      operationId: validateOrderPurchasability_1
      parameters:
      - name: orderId
        in: path
        description: ID of the order to validate
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Purchasability validation completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderPurchasabilityDto'
        '400':
          description: Invalid order ID
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/project/{projectId}:
    get:
      tags:
      - Customer Order Controller
      summary: Get orders by project
      description: Retrieves all orders associated with a specific project or thread
      operationId: getByProject
      parameters:
      - name: projectId
        in: path
        description: ID of the project/thread
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successfully retrieved orders
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized - missing or invalid authentication
  /api/customer/v1/order/count:
    get:
      tags:
      - Customer Order Controller
      summary: Get order count
      description: Returns the count of orders matching the specified filters
      operationId: getCount_2
      parameters:
      - name: paymentStatus
        in: query
        description: Filter by payment status
        required: false
        schema:
          type: array
          items:
            type: string
      - name: awaitingStatus
        in: query
        description: Filter by awaiting status
        required: false
        schema:
          type: string
      - name: searchQuery
        in: query
        description: Search query for order details
        required: false
        schema:
          type: string
      - name: orderSource
        in: query
        description: Filter by order source
        required: false
        schema:
          type: string
      - name: showArchived
        in: query
        description: Include archived orders
        required: false
        schema:
          type: boolean
      - name: affiliate
        in: query
        description: Filter by affiliate
        required: false
        schema:
          type: string
      - name: threadId
        in: query
        description: Filter by thread ID
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successfully retrieved order count
          content:
            application/json:
              schema:
                type: integer
                format: int64
        '401':
          description: Unauthorized - missing or invalid authentication
components:
  schemas:
    CreateHourlyExpenseDto:
      allOf:
      - $ref: '#/components/schemas/CreateExpenseDto'
      - type: object
        properties:
          hours:
            type: number
          rate:
            type: number
      required:
      - hours
      - name
      - rate
      - type
    CreateRequisitionConstraintDto:
      type: object
      discriminator:
        propertyName: constraintType
      properties:
        constraintType:
          type: string
      required:
      - constraintType
    CreateGenericDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          code:
            type: string
          startTime:
            type: string
            format: date-time
          endTime:
            type: string
            format: date-time
          genericDiscountNoe:
            type: string
      required:
      - code
      - discountType
      - endTime
      - genericDiscountNoe
      - percentage
      - startTime
    CreateInstantDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          note:
            type: string
      required:
      - discountType
      - note
      - percentage
    KanbanColumnDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        sequence:
          type: integer
          format: int32
        orderStatus:
          type: string
        automations:
          type: array
          items:
            $ref: '#/components/schemas/KanbanColumnAutomationDto'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - automations
      - createdAt
      - id
      - name
      - orderStatus
      - sequence
      - updatedAt
    TrackingDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        shipmentId:
          type: integer
          format: int64
        trackingNumber:
          type: string
      required:
      - id
      - shipmentId
      - trackingNumber
    CarrierAccountShipmentDto:
      allOf:
      - $ref: '#/components/schemas/ShipmentDto'
      - type: object
        properties:
          toAddressDto:
            $ref: '#/components/schemas/CustomerAddressDto'
          carrierAccountProvider:
            type: string
          carrierAccountServiceType:
            type: string
          carrierAccountServiceName:
            type: string
          estimatedRate:
            type: number
          finalRatePaid:
            type: number
          trackingDto:
            $ref: '#/components/schemas/TrackingDto'
      required:
      - shippingMode
    TaxQuoteComponentDto:
      type: object
      properties:
        shortName:
          type: string
        longName:
          type: string
        percentage:
          type: number
        amount:
          type: number
      required:
      - amount
      - longName
      - percentage
      - shortName
    ExpenseDto:
      type: object
      properties:
        expenseId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        type:
          type: string
      required:
      - expenseId
      - name
      - type
    CreateDiscountDto:
      type: object
      properties:
        discountType:
          type: string
        percentage:
          type: number
      required:
      - discountType
      - percentage
    OrderTaxComponentDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        shortName:
          type: string
        longName:
          type: string
        percentage:
          type: number
        amount:
          type: number
        localAmount:
          type: number
      required:
      - amount
      - id
      - localAmount
      - longName
      - percentage
      - shortName
    ShipmentDto:
      type: object
      discriminator:
        propertyName: shippingMode
      properties:
        id:
          type: integer
          format: int64
        shippingMode:
          type: string
          enum:
          - SELF_COLLECTION
          - FIXED_PRICE
          - CARRIER_ACCOUNT
        shippingMethodId:
          type: integer
          format: int64
        rateId:
          type: string
        toAddressId:
          type: integer
          format: int64
        status:
          type: string
        dispatchDate:
          type: string
          format: date
      required:
      - shippingMode
    PartManufacturabilityWarningsDto:
      type: object
      properties:
        hasOptimalWallThickness:
          type: boolean
      required:
      - hasOptimalWallThickness
    CreateRequisitionDto:
      type: object
      properties:
        requisitionIntentId:
          type: string
          format: uuid
        partRevisionId:
          type: string
          format: uuid
        units:
          type: string
          enum:
          - CENTIMETERS
          - MILLIMETERS
          - METRES
          - INCHES
          - FEET
        quantity:
          type: integer
        materialId:
          type: integer
          format: int64
        processPricesId:
          type: string
          format: uuid
        infillId:
          type: integer
          format: int64
        precisionId:
          type: integer
          format: int64
        colorId:
          type: integer
          format: int64
        postProcessing:
          type: array
          items:
            $ref: '#/components/schemas/CreateRequisitionPostProcessingDto'
          uniqueItems: true
        variables:
          type: object
          additionalProperties:
            type: number
        manualPrice:
          type: number
        leadTimeId:
          type: string
          format: uuid
        comments:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateLocationCommentDto'
            - $ref: '#/components/schemas/CreateRequisitionCommentDto'
        name:
          type: string
        constraints:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateFixedOrientationRequisitionConstraintDto'
      required:
      - comments
      - constraints
      - materialId
      - partRevisionId
      - postProcessing
      - processPricesId
      - quantity
      - requisitionIntentId
      - units
      - variables
    QuoteDto:
      type: object
      properties:
        currency:
          type: string
        price:
          type: number
        subtotal:
          type: number
        tax:
          $ref: '#/components/schemas/TaxQuoteDto'
        discount:
          type: number
        shipment:
          type: number
        topUp:
          type: number
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/QuoteLineItemDto'
        requisitions:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RequisitionQuoteDto'
        dispatchDate:
          type: string
          format: date
      required:
      - currency
      - discount
      - lineItems
      - price
      - requisitions
      - shipment
      - subtotal
      - tax
    CreatedPaymentDto:
      type: object
      properties:
        id:
          type: string
        clientSecret:
          type: string
        paymentPrincipal:
          type: string
        merchantAccount:
          type: string
        provider:
          type: string
        finalPrice:
          type: number
        tax:
          type: number
        currency:
          type: string
        woocommerceOrderKey:
          type: string
        flywireGatewayUrl:
          type: string
        stripePaymentIntentStatus:
          type: string
      required:
      - currency
      - finalPrice
      - id
      - provider
      - tax
    RequisitionQuoteDto:
      type: object
      properties:
        partRevisionId:
          type: string
          format: uuid
        quantity:
          type: integer
        price:
          type: number
        manufacturingPrice:
          type: number
        postProcessingPrice:
          type: number
        unitPrice:
          type: number
        postProcessingOptions:
          type: array
          items:
            $ref: '#/components/schemas/PostProcessingOptionQuoteDto'
      required:
      - manufacturingPrice
      - partRevisionId
      - postProcessingOptions
      - postProcessingPrice
      - price
      - quantity
      - unitPrice
    OrderTaxDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        components:
          type: array
          items:
            $ref: '#/components/schemas/OrderTaxComponentDto'
        totalPrice:
          type: number
        localTotalPrice:
          type: number
        isTaxAppliedToShipping:
          type: boolean
        isTaxExempted:
          type: boolean
        taxNumber:
          type: string
      required:
      - components
      - id
      - isTaxAppliedToShipping
      - isTaxExempted
      - localTotalPrice
      - totalPrice
    QuoteLineItemDto:
      type: object
      properties:
        name:
          type: string
        price:
          type: number
      required:
      - name
      - price
    CreateRequisitionCommentDto:
      allOf:
      - $ref: '#/components/schemas/CreateOrderCommentDto'
      required:
      - conversationType
      - message
    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
    CreateCustomerDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          code:
            type: string
          startTime:
            type: string
            format: date-time
          endTime:
            type: string
            format: date-time
          customerId:
            type: integer
            format: int64
      required:
      - code
      - customerId
      - discountType
      - endTime
      - percentage
      - startTime
    OrderDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        quoteNumber:
          type: string
        orderNumber:
          type: string
        price:
          type: number
        currency:
          type: string
        paymentStatus:
          type: string
        isArchived:
          type: boolean
        isInProject:
          type: boolean
        operatorNote:
          type: string
        createdAt:
          type: string
          format: date-time
        lastUpdated:
          type: string
          format: date-time
        accountingSystemEstimateId:
          type: string
        accountingSystemEstimateNumber:
          type: string
        accountingSystemConfirmationId:
          type: string
        accountingSystemConfirmationNumber:
          type: string
        accountingSystemInvoiceId:
          type: string
        accountingSystemInvoiceNumber:
          type: string
        requisitionIds:
          type: array
          items:
            type: integer
            format: int64
        assemblyRequisitions:
          type: array
          items:
            $ref: '#/components/schemas/AssemblyRequisitionDto'
        source:
          type: string
        awaitingStatus:
          type: string
        shipment:
          oneOf:
          - $ref: '#/components/schemas/CarrierAccountShipmentDto'
          - $ref: '#/components/schemas/FixedPriceShipmentDto'
          - $ref: '#/components/schemas/SelfCollectionShipmentDto'
        discount:
          $ref: '#/components/schemas/DiscountDto'
        threadId:
          type: integer
          format: int64
        isVoided:
          type: boolean
        kanbanColumn:
          $ref: '#/components/schemas/KanbanColumnDto'
        expenses:
          type: array
          items:
            $ref: '#/components/schemas/ExpenseDto'
        tax:
          $ref: '#/components/schemas/OrderTaxDto'
        purchaseOrderNumber:
          type: string
        customReference:
          type: string
        bypassPurchasabilityChecks:
          type: boolean
        subscribedCustomerIds:
          type: array
          items:
            type: integer
            format: int64
          uniqueItems: true
        billingAddress:
          $ref: '#/components/schemas/CustomerAddressDto'
      required:
      - assemblyRequisitions
      - awaitingStatus
      - bypassPurchasabilityChecks
      - createdAt
      - currency
      - expenses
      - id
      - isArchived
      - isInProject
      - isVoided
      - lastUpdated
      - paymentStatus
      - requisitionIds
      - source
      - subscribedCustomerIds
      - threadId
    CreateFixedExpenseDto:
      allOf:
      - $ref: '#/components/schemas/CreateExpenseDto'
      - type: object
        properties:
          quantity:
            type: number
          unitPrice:
            type: number
          costForOperator:
            type: number
      required:
      - costForOperator
      - name
      - quantity
      - type
      - unitPrice
    CreateOrderResponseDto:
      type: object
      properties:
        order:
          $ref: '#/components/schemas/OrderDto'
        requisitions:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RequisitionDto'
      required:
      - requisitions
    KanbanColumnAutomationDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        kanbanColumnId:
          type: string
          format: uuid
        type:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - createdAt
      - id
      - kanbanColumnId
      - type
      - updatedAt
    CreateRequisitionPostProcessingDto:
      type: object
      properties:
        postProcessingId:
          type: integer
          format: int64
        variables:
          type: object
          additionalProperties:
            type: number
      required:
      - postProcessingId
      - variables
    OrderPurchasabilityDto:
      type: object
      properties:
        parts:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PartManufacturabilityDto'
        withinBoundingBoxLimit:
          type: boolean
        withinMaximumOrderValue:
          type: boolean
        isMaterialPurchasable:
          type: boolean
        isPostProcessingPurchasable:
          type: boolean
        isPriceReviewRequired:
          type: boolean
        canBePurchased:
          type: boolean
      required:
      - canBePurchased
      - isMaterialPurchasable
      - isPostProcessingPurchasable
      - isPriceReviewRequired
      - parts
      - withinBoundingBoxLimit
      - withinMaximumOrderValue
    CustomerAddressDto:
      type: object
      properties:
        addressId:
          type: integer
          format: int64
        isBillingAddress:
          type: boolean
        isShippingAddress:
          type: boolean
        street1:
          type: string
        street2:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
        countryAlpha2Code:
          type: string
        countryAlpha3Code:
          type: string
        jurisdictionIsoCode:
          type: string
        zip:
          type: string
        name:
          type: string
        company:
          type: string
        phone:
          type: string
        email:
          type: string
        residential:
          type: boolean
        taxId:
          type: string
    ConstraintDto:
      type: object
      discriminator:
        propertyName: const

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/phasio/refs/heads/main/openapi/phasio-customer-order-controller-api-openapi.yml