Submit work order records
/api/v2/work-ordersWork Orders in FuseSend work orders for kitting, assembly and other value-added work in the warehouse. Accepts an array of records. The whole batch is accepted with a 202, or rejected with a 400 that lists every failing record and field.
Examples
Complete, valid payloads for the scenarios we see most. Pick one to load it into the panel.
Values shown like YOUR_SITE are your own configuration, not literals — substitute the values from your onboarding pack. The sandbox checks shape only, so a payload can pass there and still be rejected by the warehouse.
- Order reference
workOrder.customerRef - Owner
location.ownerId - Line ID
lines[].line - SKU code
lines[].skuId
Request schema
The body is an array of records in this shape. Pick a scenario above to see a complete, valid payload.
▶identifiersobjectHow this work order is identified.
- idstringYour unique reference for this work order.
- businessIdstringYour Fuse business ID. Must match the businessId you authenticate with.
- businessWorkOrderIdstring
- customerIdstringThe customer account the work is for.
- businessCustomerIdstring
- shipmentIdstring
- salesOrderstring
- consignmentIdstring
- pickGroupIdstring
- primestring
▶workOrderobjectWhat kind of work this is and how it is referenced.
- typeenumone of "kitting", "rework", "quality_check", "special_handling", "disposition"The work type — kitting (build a bundle from components), rework, quality_check, special_handling, or disposition.
- classstringWork-order class code from your onboarding configuration.
- statusstring
- stagestring
- priorityPrimestring
- priorityAllocationstring
- priorityDespatchstring
- customerRefstringmandatoryThe customer-facing work-order reference.
- instructionsstringFree-text build instructions for the warehouse team.
- notesstring
- supervisorstring
- generalReasonstring
- returnReasonstring
- maintenanceIndicatorstring
▶customerobject
- groupstring
- namestring
- referencestring
▶locationobjectWhere the work happens.
- sitestringSite code, from your onboarding configuration.
- warehousestringWarehouse code within the site.
- ownerIdstringmandatoryStock owner the work books against.
- stockStatusstring
- regionstring
- distributionCenterstring
- storestring
▶qualityControlobject
- qualityControlstring
- shortageCodestring
- quantityVariancestring
- cutOffIndstring
▶quantitiesobject
- totalLinesnumber
- totalComponentsnumber
- totalFinishedGoodsnumber
- totalQuantitynumber
- stockTransferUnitQuantitynumber
- volumenumber
- weightnumber
- actualWeightnumber
▶tasksobject
- countNewnumber
- countCurrentnumber
- countActionednumber
▶timingobject
- timeToPicknumber
- timeToPacknumber
- timeToChecknumber
- timeToLoadnumber
- timeOthernumber
- timeToDelivernumber
▶financialobject
- currencystring
▶shippingobject
- shippingLanestring
▶datesobjectWork-order dates.
- createdstringISO 8601 date or date-time
- dueBystringWhen the work must be complete.
- dueOutstringISO 8601 date or date-time
- startedstringISO 8601 date or date-time
- completedstringISO 8601 date or date-time
- shipmentstringISO 8601 date or date-time
- deliverystringISO 8601 date or date-time
- closedstringISO 8601 date or date-time
- suspendedstringISO 8601 date or date-time
▶indicatorsobject
- overduestring
- paperworkstring
▶metadataobject
- notesstring
▶miscobject
- valuesstring
▶customisationsarray of object
- namestring
- valuestring
▶linesarray of objectThe work-order lines — the finished good being built and the components consumed. Component quantities are totals for the whole build, not per kit.
- workOrderIdstringThe work order this line belongs to — repeat the header id.
- linestringmandatoryLine number within the work order, as a string.
- levelstring
- skuIdstringmandatoryThe SKU on this line — the master/kit SKU on the finished-good line, a component SKU otherwise.
- businessSKUstring
- customerSKUstring
- customerOrderstring
- soLineIdnumber
- roleenumone of "component", "finished_good"finished_good marks the master SKU being produced; component marks a stock item consumed to build it.
▶productobject
- upcstring
- upcDescriptionstring
- categorystring
- unitOfMeasurestring
- catchWeightnumber
▶ownershipobject
- lineOwnerstring
- lineStockStatusstring
- ownerIdstring
- stockStatusstring
▶quantitiesobjectLine quantities — ordered on the finished-good line, required on component lines.
- orderednumberQuantity of the finished good to build.
- requirednumberTotal component quantity consumed across the whole build (10 kits needing two each = 20).
- allocatednumber
- taskednumber
- pickednumber
- consumednumber
- producednumber
- shippednumber
- deliverednumber
- dueOutnumber
▶qualityobject
- returnReasonstring
- qualityControlstring
- shortagestring
- quantityVariancestring
▶indicatorsobject
- backOrderIndicatorstring
- attachmentIndstring
- specialConditionIndstring
▶locationobject
- consignmentIdstring
- pickGroupIdstring
- siteIdstring
- warehousestring
▶businessobject
- businessIdstring
▶timingobject
- datePickedstringISO 8601 date or date-time
- dateConsumedstringISO 8601 date or date-time
- dateProducedstringISO 8601 date or date-time
- dateShipmentstringISO 8601 date or date-time
- stagestring
▶miscobject
- lineValuesstring
▶customisationsarray of object
- namestring
- valuestring
Headers
AuthorizationBasic base64(businessId:apiKey)requiredHTTP Basic. Username is your businessId, password is your API key.
Content-Typeapplication/jsonrequiredx-correlation-idoptionalYour own trace id for this request. Adopted for every log line Fuse writes while processing it, and returned as `correlationId` in the response body. Omitted: Fuse generates one.
Content-Typeapplication/jsonrequiredOn 202.
Content-Typeapplication/problem+jsonrequiredOn 400, 401.
Responses
application/jsonEvery record passed validation and is queued for the warehouse.
{
"success": true,
"recordCount": 1,
"messageIds": [
"11384719623456789"
],
"correlationId": "550e8400-e29b-41d4-a716-446655440000"
}Body fields
- successbooleanIndicates if the request was successfully accepted
- recordCountnumberNumber of records accepted for processing
- messageIdsarray of stringPub/Sub message IDs for tracking
- correlationIdstringCorrelation ID for request tracing
application/problem+jsonNo record was accepted. Every failing record is listed, by its index in the array you sent.
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "Validation failed for one or more records",
"instance": "/api/v2/work-orders",
"errors": [
{
"index": 0,
"errors": [
"identifiers.businessId: Required",
"shipmentLines.0.quantities.ordered: Expected number, received string"
]
}
]
}Body fields
- typestringA URI reference that identifies the problem type
- titlestringA short, human-readable summary of the problem type
- statusnumberThe HTTP status code generated by the origin server for this occurrence of the problem
- detailstringA human-readable explanation specific to this occurrence of the problem
- instancestringA URI reference that identifies the specific occurrence of the problem
- errorsarray of objectValidation errors (extension field for 400 Bad Request responses). For field-level validation errors (from Zod), this is an array of FieldValidationErrorDto. For batch validation errors, this is an array of RecordValidationErrorDto.
application/problem+jsonCredentials missing, malformed, or not recognised for this business.
{
"type": "https://tools.ietf.org/html/rfc7235#section-3.1",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "/api/v2/work-orders"
}Body fields
- typestringA URI reference that identifies the problem type
- titlestringA short, human-readable summary of the problem type
- statusnumberThe HTTP status code generated by the origin server for this occurrence of the problem
- detailstringA human-readable explanation specific to this occurrence of the problem
- instancestringA URI reference that identifies the specific occurrence of the problem
- errorsarray of objectValidation errors (extension field for 400 Bad Request responses). For field-level validation errors (from Zod), this is an array of FieldValidationErrorDto. For batch validation errors, this is an array of RecordValidationErrorDto.