Represents maintenance work done on equipment, for example a repair after a breakdown or a planned inspection. In the Excel templates, work orders are registered on the Work orders sheet.
What the work used, such as spare parts and labour, is recorded separately as parts and labour.
Work orders are a shared entity. They work the same way in every manufacturing domain model.
The Work order object
{
"code": "WO-1001",
"equipment": "MC-01",
"fixingFailure": true,
"reason": "R-MECH",
"plannedStart": null,
"plannedEnd": null,
"start": "2026-09-10T09:15:00+02:00",
"end": "2026-09-10T11:40:00+02:00",
"equipmentState": "breakdown"
}
Fields
| Field | Type | Description | Example |
|---|---|---|---|
code |
string | Unique business code of the work order. | "WO-1001" |
equipment |
string | Business code of the equipment worked on. | "MC-01" |
fixingFailure |
boolean |
true if the work fixed a failure that happened or was about to happen; false for preventive work. |
true |
reason |
string or null | Business code of the reason for the work. | "R-MECH" |
plannedStart |
string or null | When the work was planned to start. | null |
plannedEnd |
string or null | When the work was planned to end. | null |
start |
string or null | When the work actually started. | "2026-09-10T09:15:00+02:00" |
end |
string or null | When the work actually ended. null while the work is still open. |
"2026-09-10T11:40:00+02:00" |
equipmentState |
string or null | Code of the state the equipment was in during the work, for example a breakdown. | "breakdown" |
Important
code must be unique. Two work orders cannot use the same code.
All times are ISO 8601 timestamps with a UTC offset.
Equipment
equipment must be the business code of existing equipment, for example a machine. Name the most specific part you know, such as a spindle or a turret rather than the whole machine, so that failures can be compared by part.
Equipment cannot be deleted while work orders refer to it.
Corrective and preventive work
-
Corrective work (
fixingFailureistrue) must name areason. -
Preventive work (
fixingFailureisfalse) must not name areason.
fixingFailure cannot be changed after the work order is created. A reason cannot be deleted while work orders refer to it.
Planned and unplanned work
Whether the work was planned is stated by the planned window:
-
Planned work: send
plannedStartandplannedEnd. - Unplanned work, such as a breakdown repair: leave them out.
A work order needs at least start or plannedStart.
Equipment state
equipmentState only records which state the equipment was in. It does not create a downtime record. Submit the equipment's state separately, through the domain model's own time records, when the work actually stopped the equipment. A preventive job on a spare machine, for example, does not stop production.
API resource
| Resource | Base path |
|---|---|
Work order |
/manufacturing/v1/work-orders |
For the operations shared by all shared entities, see Shared entities API.
API methods
Create a work order
POST /manufacturing/v1/work-orders/insert
Creates a new work order and returns its Pulse identifier.
Request
POST /manufacturing/v1/work-orders/insert
Content-Type: application/json
{
"code": "WO-1001",
"equipment": "MC-01",
"fixingFailure": true,
"reason": "R-MECH",
"start": "2026-09-10T09:15:00+02:00",
"end": "2026-09-10T11:40:00+02:00",
"equipmentState": "breakdown"
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
code |
string | yes | Unique business code of the work order. |
equipment |
string | yes | Business code of the equipment worked on. |
fixingFailure |
boolean | yes | Whether the work fixed a failure. |
reason |
string or null | for corrective work | Business code of the reason. Not allowed for preventive work. |
plannedStart |
string or null | no | Planned start. |
plannedEnd |
string or null | no | Planned end. |
start |
string or null | no | Actual start. |
end |
string or null | no | Actual end. |
equipmentState |
string or null | no | Code of the equipment's state during the work. |
start or plannedStart is required.
Update a work order
PUT /manufacturing/v1/work-orders/update
Updates an existing work order. The work order must already exist. fixingFailure cannot be changed.
Request
PUT /manufacturing/v1/work-orders/update
Content-Type: application/json
{
"code": "WO-1001",
"equipment": "MC-01",
"fixingFailure": true,
"reason": "R-MECH",
"start": "2026-09-10T09:15:00+02:00",
"end": "2026-09-10T12:05:00+02:00",
"equipmentState": "breakdown"
}
Parameters
The parameters are the same as for creating a work order. code identifies the work order to update.
Patch a work order
PATCH /manufacturing/v1/work-orders/patch
Partially updates an existing work order.
The fields to update are supplied in the properties object. The work order is identified by its business code. Fields you leave out keep their current values.
Request
PATCH /manufacturing/v1/work-orders/patch
Content-Type: application/json
{
"properties": {
"code": "WO-1001",
"end": "2026-09-10T12:05:00+02:00"
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
properties |
object | yes | Fields included in the partial update. |
properties.code |
string | yes | Business code of the work order to update. |
properties.{field} |
no | Any other field of the work order, except fixingFailure. |
Retrieve a work order
GET /manufacturing/v1/work-orders/select
Returns the work order identified by its business code. If no work order has this code, the response is empty.
Request
GET /manufacturing/v1/work-orders/select?id=WO-1001
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Business code of the work order to retrieve. |
List work orders
GET /manufacturing/v1/work-orders/query
Returns work orders matching the supplied filters.
Request
GET /manufacturing/v1/work-orders/query?equipment=MC-01&fixingFailure=true
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
codes |
string or array of strings | no | Limits results to work orders with the specified business codes. |
equipment |
string or array of strings | no | Limits results to work on the specified equipment. |
fixingFailure |
boolean | no | Limits results to corrective (true) or preventive (false) work. |
reasons |
string or array of strings | no | Limits results to work orders with the specified reasons. |
from |
string | no | Limits results to work orders from this time. |
to |
string | no | Limits results to work orders up to this time. |
Delete a work order
DELETE /manufacturing/v1/work-orders/delete
Deletes the work order identified by its business code. If no work order has this code, nothing happens.
Request
DELETE /manufacturing/v1/work-orders/delete?id=WO-1001
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Business code of the work order to delete. |