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:

FieldTypeNullableDescription
orderIdnumberNoUnique identifier for the order.
threadIdnumberYesConversation thread ID associated with the order, if any.
quoteNumberstringNoThe quote number (e.g., "Q-001").
orderNumberstringYesThe order number, assigned when the order is committed (e.g., "ORD-001"). null for uncommitted orders.
customerOrganisationIdnumberNoID of the customer organisation that placed the order.
customerOrganisationNamestringNoName of the customer organisation.
createdDatestringNoISO 8601 date-time when the order was created (e.g., "2025-06-15T10:30:00").
kanbanColumnNamestringYesName of the Kanban column the order is in, if Kanban is configured.
kanbanColumnSequencenumberYesSequence number of the Kanban column.
paymentStatusstringYesCurrent payment status (e.g., "PAID", "UNPAID", "PARTIALLY_PAID").
actorTypestringYesThe type of actor that triggered this event (e.g., "MANUFACTURER", "CUSTOMER").
customReferencestringYesCustom reference string set by the manufacturer or customer.
partsarrayNoList of parts in the order. See Part object.
expensesarrayNoList of additional expenses. See Expense object.
pricingobjectNoPricing breakdown. See Pricing object.
shippingobjectYesShipping details. See Shipping object. null if no shipping is configured.

Part object

Each item in the parts array has the following fields:

FieldTypeNullableDescription
idnumberNoUnique identifier for the order part.
specificationIdstringNoUUID of the part specification.
namestringNoName of the part (e.g., "Bracket Assembly").
technologystringNoManufacturing technology (e.g., "CNC Machining", "SLS", "FDM").
materialstringNoMaterial used (e.g., "Aluminum 6061", "PA12 Nylon").
quantitynumberNoNumber of units ordered.
pricePerPartnumberNoPrice per unit in the order's currency.
colorstringYesColor specification, if applicable.
infillstringYesInfill percentage, if applicable (typically for 3D printing).
precisionstringYesPrecision/tolerance level (e.g., "Standard", "High").
volumenumberYesPart volume in cubic units.
areanumberYesPart surface area in square units.
widthnumberYesBounding box width (X dimension).
heightnumberYesBounding box height (Y dimension).
depthnumberYesBounding box depth (Z dimension).
minBoundingBoxVolumenumberYesMinimum bounding box volume.
minimumWallThicknessnumberYesMinimum wall thickness of the part geometry.
convexHullVolumenumberYesConvex hull volume of the part.
shrinkWrapVolumenumberYesShrink wrap volume of the part.
postProcessingsarrayNoList of post-processing operations. See Post-processing object.
productionStepsarrayNoList of production workflow steps. See Production step object.

Post-processing object

Each item in the postProcessings array:

FieldTypeNullableDescription
namestringNoName of the post-processing operation (e.g., "Anodizing", "Bead Blasting").
pricenumberNoPrice of the post-processing operation.

Production step object

Each item in the productionSteps array:

FieldTypeNullableDescription
namestringNoName of the production step (e.g., "Printing", "Quality Check").
sequencenumberNoOrder of the step in the production workflow (1-based).

Expense object

Each item in the expenses array:

FieldTypeNullableDescription
idnumberNoUnique identifier for the expense.
namestringNoName of the expense (e.g., "Setup Fee", "Tooling").
pricenumberNoExpense amount in the order's currency.

Pricing object

FieldTypeNullableDescription
currencystringNoISO 4217 currency code (e.g., "USD", "EUR").
totalPricenumberYesTotal order price in the order's currency (including parts, expenses, shipping, tax, and discounts).
totalLocalPricenumberYesTotal order price converted to the manufacturer's local currency.
shippingFeenumberNoShipping fee amount.
taxPercentagenumberNoTax rate as a percentage (e.g., 10.00 for 10%).
taxAmountnumberNoCalculated tax amount.
applyTaxToShippingbooleanNoWhether tax is applied to the shipping fee.
discountPercentagenumberYesDiscount percentage applied to the order, if any.
paymentDueDatestringNoISO 8601 date when payment is due (e.g., "2025-07-15").
topUpAmountnumberYesAdditional top-up amount, if any.

Shipping object

FieldTypeNullableDescription
shippingMethodstringNoShipping carrier and method (e.g., "FedEx Ground").
addressobjectYesDelivery address. See Address object.

Address object

FieldTypeNullableDescription
idstringYesAddress identifier.
street1stringYesPrimary street address.
street2stringYesSecondary street address (suite, unit, etc.).
citystringYesCity name.
statestringYesState or province.
countrystringYesISO 3166-1 country code (e.g., "US", "DE").
zipstringYesPostal/ZIP code.
namestringYesRecipient or location name.
phonestringYesContact phone number.
emailstringYesContact email address.
residentialbooleanNoWhether 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