Webhooks
Order Created
Webhook event fired when a new order is created or committed in Phasio
Overview
The Order Created event fires when a new manufacturing order is created in Phasio. The payload contains the full order details including parts, pricing, expenses, shipping information, and production steps.
When it triggers
This webhook fires when:
- A new order is created through the platform (via the UI or the API).
- An order is committed — transitioning from a draft/quote state into a confirmed order.
Both the Order Created and Order Updated events share the same payload structure. The only difference is the triggering condition.
Payload
The decrypted payload is a JSON object with the following fields:
| Field | Type | Nullable | Description |
|---|---|---|---|
orderId | number | No | Unique identifier for the order. |
threadId | number | Yes | Conversation thread ID associated with the order, if any. |
quoteNumber | string | No | The quote number (e.g., "Q-001"). |
orderNumber | string | Yes | The order number, assigned when the order is committed (e.g., "ORD-001"). null for uncommitted orders. |
customerOrganisationId | number | No | ID of the customer organisation that placed the order. |
customerOrganisationName | string | No | Name of the customer organisation. |
createdDate | string | No | ISO 8601 date-time when the order was created (e.g., "2025-06-15T10:30:00"). |
kanbanColumnName | string | Yes | Name of the Kanban column the order is in, if Kanban is configured. |
kanbanColumnSequence | number | Yes | Sequence number of the Kanban column. |
paymentStatus | string | Yes | Current payment status (e.g., "PAID", "UNPAID", "PARTIALLY_PAID"). |
actorType | string | Yes | The type of actor that triggered this event (e.g., "MANUFACTURER", "CUSTOMER"). |
customReference | string | Yes | Custom reference string set by the manufacturer or customer. |
parts | array | No | List of parts in the order. See Part object. |
expenses | array | No | List of additional expenses. See Expense object. |
pricing | object | No | Pricing breakdown. See Pricing object. |
shipping | object | Yes | Shipping details. See Shipping object. null if no shipping is configured. |
Part object
Each item in the parts array has the following fields:
| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | Unique identifier for the order part. |
specificationId | string | No | UUID of the part specification. |
name | string | No | Name of the part (e.g., "Bracket Assembly"). |
technology | string | No | Manufacturing technology (e.g., "CNC Machining", "SLS", "FDM"). |
material | string | No | Material used (e.g., "Aluminum 6061", "PA12 Nylon"). |
quantity | number | No | Number of units ordered. |
pricePerPart | number | No | Price per unit in the order's currency. |
color | string | Yes | Color specification, if applicable. |
infill | string | Yes | Infill percentage, if applicable (typically for 3D printing). |
precision | string | Yes | Precision/tolerance level (e.g., "Standard", "High"). |
volume | number | Yes | Part volume in cubic units. |
area | number | Yes | Part surface area in square units. |
width | number | Yes | Bounding box width (X dimension). |
height | number | Yes | Bounding box height (Y dimension). |
depth | number | Yes | Bounding box depth (Z dimension). |
minBoundingBoxVolume | number | Yes | Minimum bounding box volume. |
minimumWallThickness | number | Yes | Minimum wall thickness of the part geometry. |
convexHullVolume | number | Yes | Convex hull volume of the part. |
shrinkWrapVolume | number | Yes | Shrink wrap volume of the part. |
postProcessings | array | No | List of post-processing operations. See Post-processing object. |
productionSteps | array | No | List of production workflow steps. See Production step object. |
Post-processing object
Each item in the postProcessings array:
| Field | Type | Nullable | Description |
|---|---|---|---|
name | string | No | Name of the post-processing operation (e.g., "Anodizing", "Bead Blasting"). |
price | number | No | Price of the post-processing operation. |
Production step object
Each item in the productionSteps array:
| Field | Type | Nullable | Description |
|---|---|---|---|
name | string | No | Name of the production step (e.g., "Printing", "Quality Check"). |
sequence | number | No | Order of the step in the production workflow (1-based). |
Expense object
Each item in the expenses array:
| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | Unique identifier for the expense. |
name | string | No | Name of the expense (e.g., "Setup Fee", "Tooling"). |
price | number | No | Expense amount in the order's currency. |
Pricing object
| Field | Type | Nullable | Description |
|---|---|---|---|
currency | string | No | ISO 4217 currency code (e.g., "USD", "EUR"). |
totalPrice | number | Yes | Total order price in the order's currency (including parts, expenses, shipping, tax, and discounts). |
totalLocalPrice | number | Yes | Total order price converted to the manufacturer's local currency. |
shippingFee | number | No | Shipping fee amount. |
taxPercentage | number | No | Tax rate as a percentage (e.g., 10.00 for 10%). |
taxAmount | number | No | Calculated tax amount. |
applyTaxToShipping | boolean | No | Whether tax is applied to the shipping fee. |
discountPercentage | number | Yes | Discount percentage applied to the order, if any. |
paymentDueDate | string | No | ISO 8601 date when payment is due (e.g., "2025-07-15"). |
topUpAmount | number | Yes | Additional top-up amount, if any. |
Shipping object
| Field | Type | Nullable | Description |
|---|---|---|---|
shippingMethod | string | No | Shipping carrier and method (e.g., "FedEx Ground"). |
address | object | Yes | Delivery address. See Address object. |
Address object
| Field | Type | Nullable | Description |
|---|---|---|---|
id | string | Yes | Address identifier. |
street1 | string | Yes | Primary street address. |
street2 | string | Yes | Secondary street address (suite, unit, etc.). |
city | string | Yes | City name. |
state | string | Yes | State or province. |
country | string | Yes | ISO 3166-1 country code (e.g., "US", "DE"). |
zip | string | Yes | Postal/ZIP code. |
name | string | Yes | Recipient or location name. |
phone | string | Yes | Contact phone number. |
email | string | Yes | Contact email address. |
residential | boolean | No | Whether this is a residential address. |
Example payload
{
"orderId": 12345,
"threadId": 9876,
"quoteNumber": "Q-001",
"orderNumber": "ORD-001",
"customerOrganisationId": 678,
"customerOrganisationName": "Acme Manufacturing",
"createdDate": "2025-06-15T10:30:00",
"kanbanColumnName": "In Progress",
"kanbanColumnSequence": 2,
"paymentStatus": "PAID",
"actorType": "CUSTOMER",
"customReference": "PO-2025-0042",
"parts": [
{
"id": 1,
"specificationId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Bracket Assembly",
"technology": "CNC Machining",
"material": "Aluminum 6061",
"quantity": 100,
"pricePerPart": 12.50,
"color": null,
"infill": null,
"precision": "Standard",
"volume": 42.75,
"area": 128.30,
"width": 50.00,
"height": 30.00,
"depth": 10.00,
"minBoundingBoxVolume": 15000.00,
"minimumWallThickness": 1.20,
"convexHullVolume": 48.50,
"shrinkWrapVolume": 45.10,
"postProcessings": [
{
"name": "Anodizing",
"price": 2.00
}
],
"productionSteps": [
{
"name": "Machining",
"sequence": 1
},
{
"name": "Anodizing",
"sequence": 2
},
{
"name": "Quality Check",
"sequence": 3
}
]
}
],
"expenses": [
{
"id": 1,
"name": "Setup Fee",
"price": 50.00
}
],
"pricing": {
"currency": "USD",
"totalPrice": 1375.00,
"totalLocalPrice": 1375.00,
"shippingFee": 25.00,
"taxPercentage": 10.00,
"taxAmount": 125.00,
"applyTaxToShipping": true,
"discountPercentage": 5.00,
"paymentDueDate": "2025-07-15",
"topUpAmount": null
},
"shipping": {
"shippingMethod": "FedEx Ground",
"address": {
"id": "addr-001",
"street1": "123 Industrial Ave",
"street2": "Suite 400",
"city": "Austin",
"state": "TX",
"country": "US",
"zip": "73301",
"name": "Acme Manufacturing",
"phone": "+1-555-0100",
"email": "receiving@acme.com",
"residential": false
}
}
}Last updated on