Skip to main content

Work Order API

Create and manage work orders to build assembly items. Work orders track the manufacturing process from planning through completion, including component consumption and assembly production.

Endpoints

MethodEndpointDescription
GET/record/v1/workOrderRetrieve list of work orders
GET/record/v1/workOrder/{id}Retrieve specific work order
POST/record/v1/workOrderCreate new work order
PATCH/record/v1/workOrder/{id}Update existing work order
DELETE/record/v1/workOrder/{id}Delete work order

Key Fields

Header Fields

FieldTypeDescriptionRequired
assemblyItemObjectAssembly item to be built (reference to item record)Yes
quantityNumberQuantity to be assembledYes
subsidiaryObjectSubsidiary where work order is createdYes
locationObjectInventory location for the assemblyYes
startDateDatePlanned start date (format: YYYY-MM-DD)No
endDateDatePlanned end date (format: YYYY-MM-DD)No
tranIdStringWork order number (auto-generated if not provided)No
statusStringWork order status (Planned, Released, InProcess, Built, Closed)No
memoStringNotes or comments about the work orderNo
departmentObjectDepartment referenceNo
classObjectClass referenceNo
manufacturingRoutingObjectManufacturing routing to useNo
billOfMaterialsObjectBill of materials referenceNo
revisionMemoStringRevision notesNo
buildableNumberQuantity that can currently be builtRead-only
builtNumberQuantity already builtRead-only
customFormObjectCustom form referenceNo
createdDateDateTimeDate work order was createdRead-only
lastModifiedDateDateTimeDate work order was last modifiedRead-only

Sublist: Component (item)

FieldTypeDescriptionRequired
itemObjectComponent item referenceYes
quantityNumberQuantity required per assemblyYes
quantityCommittedNumberQuantity committed to this work orderNo
componentYieldNumberExpected yield percentageNo
unitsObjectUnit of measureNo
descriptionStringComponent descriptionNo
bomQuantityNumberQuantity from BOMRead-only

Example: Create Work Order

Request

POST /record/v1/workOrder
Content-Type: application/json
{
"assemblyItem": {
"id": "800"
},
"quantity": 100,
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"startDate": "2025-12-26",
"endDate": "2026-01-05",
"memo": "Q1 Production Run - Widget Assembly",
"department": {
"id": "5"
},
"class": {
"id": "3"
},
"item": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 200,
"componentYield": 98
},
{
"item": {
"id": "790"
},
"quantity": 100
}
]
}
}

Response

{
"id": "3001",
"assemblyItem": {
"id": "800",
"refName": "Assembly Widget A"
},
"quantity": 100,
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"startDate": "2025-12-26",
"endDate": "2026-01-05",
"tranId": "WO-2025-001",
"status": {
"id": "Planned",
"refName": "Planned"
},
"memo": "Q1 Production Run - Widget Assembly",
"department": {
"id": "5",
"refName": "Manufacturing"
},
"class": {
"id": "3",
"refName": "Production"
},
"buildable": 100,
"built": 0,
"createdDate": "2025-12-25T10:30:00Z",
"lastModifiedDate": "2025-12-25T10:30:00Z",
"item": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 200,
"quantityCommitted": 200,
"componentYield": 98
},
{
"item": {
"id": "790",
"refName": "Component Part B"
},
"quantity": 100,
"quantityCommitted": 100
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/workOrder/3001"
}
]
}

Example: Update Work Order

Request

PATCH /record/v1/workOrder/3001
Content-Type: application/json
{
"quantity": 120,
"endDate": "2026-01-08",
"memo": "Q1 Production Run - Widget Assembly (Increased Quantity)",
"item": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 240
},
{
"item": {
"id": "790"
},
"quantity": 120
}
]
}
}

Response

{
"id": "3001",
"assemblyItem": {
"id": "800",
"refName": "Assembly Widget A"
},
"quantity": 120,
"endDate": "2026-01-08",
"memo": "Q1 Production Run - Widget Assembly (Increased Quantity)",
"buildable": 120,
"lastModifiedDate": "2025-12-25T14:20:00Z",
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/workOrder/3001"
}
]
}

Sublists and Components

Component Items (item)

The item sublist defines the components required to build the assembly. Each line item represents a material or component that will be consumed during the manufacturing process.

Fields:

  • item: Reference to the component item
  • quantity: Quantity needed per assembly unit
  • componentYield: Expected yield percentage (accounts for waste/scrap)
  • quantityCommitted: Amount reserved for this work order

Example:

"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 2,
"componentYield": 95
}
]
}

Query Filters

Filter by Status

GET /record/v1/workOrder?q=status EQUAL 'Planned'

Filter by Assembly Item

GET /record/v1/workOrder?q=assemblyItem EQUAL 800

Filter by Date Range

GET /record/v1/workOrder?q=startDate BETWEEN '2025-12-01' AND '2025-12-31'

Filter by Subsidiary and Location

GET /record/v1/workOrder?q=subsidiary EQUAL 1 AND location EQUAL 1
GET /record/v1/workOrder/3001?expandSubResources=true

Work Order Status Flow

Work orders follow a defined lifecycle:

  1. Planned - Initial state when created
  2. Released - Approved and ready to start production
  3. In Process - Manufacturing has begun
  4. Built - Assembly quantity has been completed
  5. Closed - Work order is finalized and closed

Important Notes

  1. Assembly Item Requirement: The assemblyItem must be an item with type "Assembly/Bill of Materials"

  2. Component Availability: Components must have sufficient inventory or be set to allow negative inventory

  3. BOM Integration: If a BOM exists for the assembly item, components are automatically populated. Manual components can override BOM values

  4. Status Changes:

    • Status transitions typically follow the defined flow
    • Some status changes may require specific permissions
    • Built and Closed statuses are usually set via Work Order Completion and Work Order Close transactions
  5. Quantity Management:

    • quantity: Total quantity to build
    • buildable: Quantity that can currently be built (based on component availability)
    • built: Quantity already completed
  6. Inventory Commitment: Creating a work order commits component inventory but does not reduce available quantities until components are issued

  7. Modifications:

    • Work orders in "Built" or "Closed" status may have limited edit capabilities
    • Changes to quantity may require adjusting component quantities
  8. Deletion: Work orders with related transactions (completions, issues, closes) cannot be deleted

  9. Custom Forms: Custom work order forms may include additional required fields

  10. Manufacturing Routing: If a routing is specified, it defines the production steps and resources required

  11. Multi-subsidiary: Work orders are subsidiary-specific and components must be available in the specified subsidiary

  12. Permissions: Requires "Work Order" permission with appropriate access level (Create/Edit/View)