Processing callbacks
During picking and placing, oneGRID Cloud confirms every completed step to the adapter. The adapter can acknowledge the step — and, when the external system wants to change the running order, respond with a work order update that oneGRID Cloud applies immediately. All responses use the response envelope; see the integration lifecycle for where these callbacks sit in the flow.
POST /WorkOrderProcessing/ConfirmWorkOrderStep
One step of single-order processing (a pick or place confirmation) completed.
{
"storageName": "Main warehouse",
"userEmail": "operator@example.com",
"workOrderNumber": "WO-2026-0417",
"workOrderExternalIdentifier": "ERP-000815",
"workOrderTypeName": "Picking",
"requestId": 3021,
"requestType": 1,
"requestExternalIdentifier": "ERP-000815-1",
"requestRemainingAmountInBaseUnitOfMeasure": 0,
"requestAmountInBaseUnitOfMeasure": 12,
"itemNumber": "100-4711",
"itemNames": [
{ "languageIsoCode": "en", "name": "Hex bolt M8", "isDefault": true }
],
"itemUnitOfMeasure": 0,
"amountToConfirmPickingSummary": {
"locationName": "A-03-12",
"containersBreakdown": [
{
"containerCode": "CONT-0042",
"amountToConfirmInBaseUnitOfMeasure": 12,
"itemUnitOfMeasure": 0
}
]
},
"updateWorkOrderRequest": null
}
{
"isResultSuccess": true,
"result": 1,
"validationStatus": null,
"externalMessage": null,
"data": { "updateWorkOrderRequest": null }
}
| Body property | Type | Meaning |
|---|---|---|
storageName | string | Storage where the step happened. |
userEmail | string | Operator who confirmed the step. |
workOrderNumber | string | Work order number. |
workOrderExternalIdentifier | string | External system's work order ID. |
workOrderExternalData | string | Customer-specific data (JSON string). |
workOrderDescription | string | Description of the work order. |
alternativeStartNumber | string | Alternative code the order can be started with. |
workOrderTypeName | string | Work order type. |
requestId | number (integer) | oneGRID-internal ID of the request line. |
requestType | number (enum) | 0 Ignored, 1 PickItem, 2 PlaceItem. |
requestExternalIdentifier | string | External ID of the request line. |
requestRemainingAmountInBaseUnitOfMeasure | number (integer) | Remaining amount, in base unit. |
requestAmountInBaseUnitOfMeasure | number (integer) | Requested amount, in base unit. |
updateWorkOrderRequest | object | The current update model — see Work order updates. |
itemNumber | string | Item number. |
itemNames | array | Localized item names: { languageIsoCode, name, isDefault }. |
itemUnitOfMeasure | number (enum) | Unit of measure of the item — values as in the WorkOrder object. |
amountToConfirmPickingSummary | object | Pick confirmation breakdown — set for pick steps. Carries locationName and containersBreakdown: one entry per container the pick was distributed into (a null container code stands for a virtual container). |
amountToConfirmPlacingInBaseUnitOfMeasure | number (integer) | Amount confirmed for a placing step, in base unit. |
Response data: { updateWorkOrderRequest } — null when no update is needed.
Result values: 0 InvalidInput, 1 Success, 2 OperationFailed, 3 AdapterApiClientFailed, 4 AdapterNotDefined.
POST /CartWorkOrderProcessing/ConfirmWorkOrderStep
The same handshake for multi-order picking with a PickCart. The body is identical to single-order processing except:
- the summary property is named
amountToConfirmSummary, and - there is no placing amount — cart processes only pick.
Response data: { updateWorkOrderRequest } — null when no update is needed.
Result values: 0 InvalidInput, 1 Success, 2 OperationFailed, 3 AdapterApiClientFailed, 4 AdapterNotDefined.
Work order updates
When the adapter returns a non-null updateWorkOrderRequest, oneGRID Cloud applies it to the running work order — this is how the external system reshapes an order mid-process (for example after a stock correction).
{
"isResultSuccess": true,
"result": 1,
"validationStatus": null,
"externalMessage": null,
"data": {
"updateWorkOrderRequest": {
"id": 5817,
"description": "Assembly kit, line 3 (adjusted)",
"dueDate": "2026-07-15T12:00:00Z",
"itemRequests": [
{
"requestId": 3022,
"itemNumber": "100-4712",
"requestedAmount": 6,
"isCancelled": false,
"type": 1,
"order": 2
},
{
"requestId": 3023,
"itemNumber": "100-4713",
"requestedAmount": 0,
"isCancelled": true,
"type": 1,
"order": 3
}
]
}
}
}
| Property | Type | Meaning |
|---|---|---|
id | number (integer) | oneGRID-internal work order ID (from the request). |
description | string | Updated description. |
dueDate | string (date-time) | Updated due date. |
customerRequiredDeliveryDate | string (date-time) | Updated customer delivery date. |
itemRequests | array | Updated request lines: requestId, itemNumber, itemName, itemUnitOfMeasure, requestedAmount (base unit), isCancelled, designatedLocationId, lotNumber, type, order, externalIdentifier, externalData. |