Phasio Manufacturer Order Controller API
API for managing manufacturing orders and their lifecycle
API for managing manufacturing orders and their lifecycle
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/phasio-manufacturer-order-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Phasio Activity Internal Manufacturer 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: Manufacturer Order Controller
description: API for managing manufacturing orders and their lifecycle
paths:
/api/manufacturer/v1/order/{id}/edit:
put:
tags:
- Manufacturer Order Controller
summary: Edit a confirmed or paid order
description: Edits an order in-place (for CONFIRMED/PAID orders). Unlike the PATCH endpoint which voids and replaces quotes, this preserves the order ID and edits requisitions in-place.
operationId: editOrder
parameters:
- name: id
in: path
description: ID of the order to edit
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EditOrderDto'
required: true
responses:
'200':
description: Order successfully edited
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderResponseDto'
'400':
description: Invalid order data or edit failed
'401':
description: Unauthorized - missing operator context
'404':
description: Order not found
/api/manufacturer/v1/order:
get:
tags:
- Manufacturer Order Controller
summary: Get orders with filtering
description: Retrieves a paginated list of orders with optional filtering and search
operationId: get_7
parameters:
- name: filter
in: query
description: RSQL query string for filtering (e.g. paymentStatus=in=(PAID,UNPAID);price>10)
required: true
schema:
type: string
- name: page
in: query
description: Zero-based page index (0..N)
required: false
schema:
type: integer
default: 0
minimum: 0
- name: size
in: query
description: The size of the page to be returned
required: false
schema:
type: integer
default: 20
minimum: 1
- name: sort
in: query
description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
required: false
schema:
type: array
default:
- createdAt,DESC
items:
type: string
- name: search
in: query
description: Optional search term
required: false
schema:
type: string
responses:
'200':
description: Successfully retrieved orders
content:
application/json:
schema:
$ref: '#/components/schemas/Paginated'
'400':
description: Invalid filter specification
post:
tags:
- Manufacturer Order Controller
summary: Create a new order
description: Creates a new manufacturing order with the provided details
operationId: create_10
parameters:
- name: threadId
in: query
description: ID of the thread to associate with the order
required: false
schema:
type: integer
format: int64
- name: customerOrganisationId
in: query
description: ID of the customer organisation to associated with the order
required: true
schema:
type: integer
format: int64
- name: draft
in: query
description: Whether to save the quote as a draft. Draft quotes are internal and not visible to customers.
required: false
schema:
type: boolean
default: false
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 or creation failed
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/order/{id}/resend-estimate:
post:
tags:
- Manufacturer Order Controller
operationId: resendEstimate
parameters:
- name: id
in: path
description: ID of the order to resend estimate for
required: true
schema:
type: integer
format: int64
example: 1
- name: includePaymentLink
in: query
description: Whether to include payment link in the estimate
required: false
schema:
type: boolean
default: false
example: true
responses:
'200':
description: OK
content:
'*/*':
schema:
type: string
/api/manufacturer/v1/order/{id}/payment:
post:
tags:
- Manufacturer Order Controller
summary: Create payment for an order
description: Initiates payment processing for the specified order
operationId: createPayment
parameters:
- name: id
in: path
description: ID of the order to create payment for
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Payment successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedPaymentDto'
'400':
description: Failed to create payment
/api/manufacturer/v1/order/{id}/convert:
post:
tags:
- Manufacturer Order Controller
summary: Convert a draft quote into an open quote
description: 'Converts a draft quote into an open quote. This is a one-way transition: the order must currently be a draft. On conversion the customer can view the quote, the customer is notified, and any accounting estimate is moved into the open state.'
operationId: convertDraftToOpen
parameters:
- name: id
in: path
description: ID of the draft quote to convert
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Draft successfully converted to an open quote
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'400':
description: Order is not a draft or conversion failed
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/confirmation:
post:
tags:
- Manufacturer Order Controller
operationId: sendOrderConfirmation
parameters:
- name: id
in: path
description: ID of the order to resend order confirmation for
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: OK
content:
'*/*':
schema:
type: string
/api/manufacturer/v1/order/{id}/clone:
post:
tags:
- Manufacturer Order Controller
summary: Clone an order
description: Creates a new order as a copy of an existing one
operationId: clone
parameters:
- name: id
in: path
description: ID of the order to clone
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Order successfully cloned
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'404':
description: Original order not found
/api/manufacturer/v1/order/{id}:
get:
tags:
- Manufacturer Order Controller
summary: Get order by ID
description: Retrieves a specific order by its ID
operationId: getById_2
parameters:
- name: id
in: path
description: ID of the order to retrieve
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Successfully retrieved order
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'404':
description: Order not found
delete:
tags:
- Manufacturer Order Controller
summary: Delete an order
description: Deletes an order by its ID
operationId: delete_9
parameters:
- name: id
in: path
description: ID of the order to delete
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Order successfully deleted
content:
text/plain: {}
'400':
description: Failed to delete order
content:
text/plain: {}
patch:
tags:
- Manufacturer Order Controller
summary: Update an existing order
description: Updates an order with the provided details
operationId: update_13
parameters:
- name: id
in: path
description: ID of the order to update
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderDto'
required: true
responses:
'200':
description: Order successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderResponseDto'
'400':
description: Invalid order data or update failed
'401':
description: Unauthorized - missing operator context
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/unarchive:
patch:
tags:
- Manufacturer Order Controller
summary: Unarchive an order
description: Removes archived status from an order
operationId: unarchive
parameters:
- name: id
in: path
description: ID of the order to unarchive
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Order successfully unarchived
content:
text/plain: {}
'400':
description: Failed to unarchive order
content:
text/plain: {}
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/shipment:
patch:
tags:
- Manufacturer Order Controller
summary: Update order shipment
description: Updates shipment information for an order
operationId: updateShipment
parameters:
- name: id
in: path
description: ID of the order to update shipment for
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrderShipmentDto'
required: true
responses:
'200':
description: Shipment successfully updated
content:
text/plain: {}
'400':
description: Failed to update shipment
'401':
description: Unauthorized - missing operator context
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/purchase-order:
patch:
tags:
- Manufacturer Order Controller
summary: Update purchase order
description: Update an order's purchase order
operationId: updatePurchaseOrder
parameters:
- name: id
in: path
description: ID of the order to update purchase order for
required: true
schema:
type: integer
format: int64
example: 1
- name: purchaseOrderNumber
in: query
description: Purchase order details
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
file:
type: string
format: binary
description: Purchase order PDF file
responses:
'200':
description: Purchase order updated successfully
content:
text/plain: {}
'400':
description: Failed to update purchase order
content:
text/plain: {}
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/payment/confirm:
patch:
tags:
- Manufacturer Order Controller
summary: Confirm order payment
description: Marks an order's payment as confirmed
operationId: markPaymentConfirmed
parameters:
- name: id
in: path
description: ID of the order to confirm payment for
required: true
schema:
type: integer
format: int64
example: 1
- name: purchaseOrderNumber
in: query
description: Purchase order number
required: false
schema:
type: string
- name: message
in: query
description: Message
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
file:
type: string
format: binary
description: Purchase order PDF file
responses:
'200':
description: Payment successfully confirmed
content:
text/plain: {}
'400':
description: Failed to confirm payment
content:
text/plain: {}
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/owner:
patch:
tags:
- Manufacturer Order Controller
summary: Update order owner
description: Reassigns the order owner. The new owner must be a user belonging to the same operator team as the order. Pass a null/blank owner to clear the assignment.
operationId: updateOwner
parameters:
- name: id
in: path
description: ID of the order to update
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrderOwnerDto'
required: true
responses:
'200':
description: Owner successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'400':
description: Owner does not belong to this operator
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/kanban-column:
patch:
tags:
- Manufacturer Order Controller
summary: Update order kanban column
description: Moves an order to a different kanban column. Optional skipAutomationTypes field suppresses the named column automations for this request only.
operationId: updateKanbanColumn
parameters:
- name: id
in: path
description: ID of the order to update
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrderKanbanColumnDto'
required: true
responses:
'204':
description: Kanban column successfully updated
'400':
description: Failed to update kanban column
'404':
description: Order or kanban column not found
/api/manufacturer/v1/order/{id}/discount:
delete:
tags:
- Manufacturer Order Controller
summary: Remove discount from an order
description: Removes any applied discount from an order
operationId: removeDiscount
parameters:
- name: id
in: path
description: ID of the order to remove discount from
required: true
schema:
type: integer
format: int64
example: 1
responses:
'204':
description: Discount successfully removed
'400':
description: Failed to remove discount
'404':
description: Order not found
patch:
tags:
- Manufacturer Order Controller
summary: Apply discount to an order
description: Applies a specified discount to an order
operationId: applyDiscount
parameters:
- name: id
in: path
description: ID of the order to apply discount to
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrderDiscountDto'
required: true
responses:
'204':
description: Discount successfully applied
'400':
description: Failed to apply discount
'404':
description: Order or discount not found
/api/manufacturer/v1/order/{id}/custom-reference:
patch:
tags:
- Manufacturer Order Controller
summary: Update order custom reference
description: Updates the custom reference for an order. This can be done on any order status.
operationId: updateCustomReference
parameters:
- name: id
in: path
description: ID of the order to update
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCustomReferenceDto'
required: true
responses:
'200':
description: Custom reference successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/bypass-purchasability-check:
patch:
tags:
- Manufacturer Order Controller
summary: Bypass purchasability checks for an order
description: Marks an order as bypassing purchasability validation
operationId: bypassPurchasabilityChecks
parameters:
- name: id
in: path
description: ID of the order to bypass checks for
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Purchasability checks successfully bypassed
content:
application/json:
schema:
$ref: '#/components/schemas/OrderPurchasabilityDto'
'400':
description: Failed to bypass purchasability checks
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/awaiting-status:
patch:
tags:
- Manufacturer Order Controller
summary: Update order awaiting status
description: Updates the awaiting status of an order with additional details
operationId: updateAwaitingStatus
parameters:
- name: id
in: path
description: ID of the order to update
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAwaitingStatusDto'
required: true
responses:
'200':
description: Awaiting status successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/OrderDto'
'400':
description: Failed to update awaiting status
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/archive:
patch:
tags:
- Manufacturer Order Controller
summary: Archive an order
description: Marks an order as archived with an optional message
operationId: archive
parameters:
- name: id
in: path
description: ID of the order to archive
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ArchiveOrderDto'
required: true
responses:
'200':
description: Order successfully archived
content:
text/plain: {}
'400':
description: Failed to archive order
content:
text/plain: {}
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/purchasability:
get:
tags:
- Manufacturer Order Controller
summary: Validate order purchasability
description: Checks if an order can be purchased by validating its details
operationId: validateOrderPurchasability
parameters:
- name: id
in: path
description: ID of the order to validate
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Purchasability validation successful
content:
application/json:
schema:
$ref: '#/components/schemas/OrderPurchasabilityDto'
'400':
description: Failed to validate purchasability
'404':
description: Order not found
/api/manufacturer/v1/order/{id}/manufacturability:
get:
tags:
- Manufacturer Order Controller
summary: Validate part manufacturability for an order
description: Checks if all parts in an order can be manufactured with current setup
operationId: validatePartManufacturabilityForOrder
parameters:
- name: id
in: path
description: ID of the order to validate parts for
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Manufacturability validation completed
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PartManufacturabilityDto'
'404':
description: Order not found
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
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
Paginated:
type: object
properties:
content:
type: array
items: {}
totalElements:
type: integer
totalPages:
type: integer
pageNumber:
type: integer
pageSize:
type: integer
isEmpty:
type: boolean
isFirst:
type: boolean
isLast:
type: boolean
required:
- content
- isEmpty
- isFirst
- isLast
- pageNumber
- pageSize
- totalElements
- totalPages
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
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
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
GenerateShippingLabelDto:
allOf:
- $ref: '#/components/schemas/KanbanColumnAutomationRequestDto'
- type: object
properties:
parcelContentsType:
type: string
parcelContentsDescription:
type: string
required:
- parcelContentsDescription
- parcelContentsType
- type
CreateRequisitionCommentDto:
allOf:
- $ref: '#/components/schemas/CreateOrderCommentDto'
required:
- conversationType
- message
UpdateOrderShipmentDto:
type: object
description: Shipment details
properties:
shipment:
oneOf:
- $ref: '#/components/schemas/CarrierAccountShipmentDto'
- $ref: '#/component
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/phasio/refs/heads/main/openapi/phasio-manufacturer-order-controller-api-openapi.yml