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. Passing validation is not the same as a work order the warehouse accepts — the warehouse can still reject it after the 202, so start from one of the examples, which show the minimal complete shape.
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
- carrierIdstring
▶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
▶financialobjectFinancial details the warehouse requires.
- currencystringISO 4217 currency code. Required by the warehouse even though a work order carries no value.
▶shippingobjectWarehouse routing for the work order.
- shippingLanestringShipping lane, from your onboarding configuration.
▶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
- shipmentstringPlanned date for the work. Required by the warehouse.
- 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
- unitOfMeasurestringA real warehouse unit code — "EA" is the common each/unit code; "EACH" is rejected.
- catchWeightnumber
▶ownershipobject
- lineOwnerstring
- lineStockStatusstring
- ownerIdstring
- stockStatusstring
▶quantitiesobjectLine quantities — ordered on the finished-good line, with required set to 0; required on component lines, with ordered set to 0.
- orderednumberQuantity of the finished good to build. Send 0 on component lines — every line needs one.
- requirednumberTotal component quantity consumed across the whole build (10 kits needing two each = 20). Send 0 on the finished-good line — left out, the warehouse sets it to the ordered quantity.
- 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",
"lines.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.