Work order endpoints
oneGRID Cloud calls these adapter endpoints to fetch work orders from the external system and to report what happens to them during processing. Route base: /WorkOrders. All responses use the response envelope; result enums serialize as numbers — the values are listed per endpoint. See the integration lifecycle for when each endpoint is called.
Fetching work orders
GET /WorkOrders
Returns all work orders currently available in the external system.
{
"isResultSuccess": true,
"result": 2,
"validationStatus": null,
"externalMessage": null,
"data": [
{
"number": "WO-2026-0417",
"externalIdentifier": "ERP-000815",
"description": "Assembly kit, line 3",
"dueDate": "2026-07-15T12:00:00Z",
"customerRequiredDeliveryDate": null,
"workOrderTypeName": "Picking",
"designatedStorageName": "Main warehouse",
"deliveryNumber": null,
"alternativeStartNumber": null,
"externalData": null,
"requests": [
{
"itemNumber": "100-4711",
"itemName": "Hex bolt M8",
"requestedAmount": 12,
"unitOfMeasure": 0,
"requestType": 1,
"order": 1,
"lotNumber": null,
"designatedLocationName": null
}
]
}
]
}
Response data: array of WorkOrder objects.
Result values: 0 OperationFailed, 1 WorkOrderInvalid, 2 Succeed, 3 AdapterApiClientFailed, 4 AdapterApiCallFailed, 5 AdapterNotDefined.
GET /WorkOrders/Code
Looks up a single work order by a scanned code, scoped to the storage the scan happened in. The envelope's externalMessage may carry a message from the external system, which oneGRID shows to the operator.
GET /WorkOrders/Code?Code=WO-2026-0417&StorageName=Main%20warehouse
| Query parameter | Type | Meaning |
|---|---|---|
Code | string | The scanned work order code. |
StorageName | string | Name of the storage the scan happened in. |
{
"isResultSuccess": false,
"result": 2,
"validationStatus": null,
"externalMessage": "Order WO-2026-0417 is blocked for invoicing.",
"data": null
}
Response data: one WorkOrder or null.
Result values: 0 OperationFailed, 1 Succeed, 2 WorkOrderDoesNotExist, 3 AdapterApiClientFailed, 4 AdapterApiCallFailed, 5 AdapterNotDefined.
GET /WorkOrders/ForPutWall/{code}
Returns the work orders belonging to a scanned code for Put Wall processing — typically one batch or tote code that maps to several orders.
GET /WorkOrders/ForPutWall/TOTE-88123
Response data: array of WorkOrder objects — same shape as GET /WorkOrders.
Result values: 0 OperationFailed, 1 WorkOrderInvalid, 2 Succeed, 3 AdapterApiClientFailed, 4 AdapterApiCallFailed, 5 AdapterNotDefined.
POST /WorkOrders/File
Parses an uploaded work order file (JSON or CSV) into work orders. Used by the manual work order import. File contents and column rules: File formats.
{
"fileContent": "TnVtYmVyLEl0ZW1OdW1iZXIsRHVlRGF0ZSxSZXF1ZXN0ZWRBbW91bnQ…",
"fileType": 1
}
| Body property | Type | Required | Meaning |
|---|---|---|---|
fileContent | string (Base64) | yes | The raw file bytes, Base64-encoded. |
fileType | number | yes | 0 = JSON, 1 = CSV. |
Response data: array of WorkOrder objects parsed from the file.
Result values: 0 OperationFailed, 1 Succeed, 2 InvalidInput, 3 FileNotSupported, 4 AdapterApiClientFailed, 5 AdapterApiCallFailed, 6 AdapterNotDefined.
Reporting
POST /WorkOrders/GetReport
Produces a completion report for a set of work orders in a storage — missing quantities and current placements.
{
"workOrdersNumbers": ["WO-2026-0417", "WO-2026-0418"],
"storageId": "42",
"remainingRequests": { "100-4711": 2 }
}
| Body property | Type | Required | Meaning |
|---|---|---|---|
workOrdersNumbers | string[] | yes | Work order numbers to report on. |
storageId | string | yes | Identifier of the storage. |
remainingRequests | object (string → number) | yes | Item number → remaining unfulfilled amount. |
{
"isResultSuccess": true,
"result": 5,
"validationStatus": null,
"externalMessage": null,
"data": {
"missingQuantities": { "100-4711": 2 },
"placements": [
{ "itemNumber": "100-4711", "locationName": "A-03-12", "amount": 10 }
]
}
}
Result values: 0 OperationFailed, 1 InvalidInput, 2 AdapterApiClientFailed, 3 AdapterNotDefined, 4 WorkOrderDoesNotExist, 5 Succeed.
Export columns
oneGRID Cloud calls these endpoints while building a work order export file. They let the external system add its own columns to the export and name the column that carries the value it sends with each work order. An adapter that does not override them keeps the export limited to oneGRID's own columns — the base implementation answers Success with an empty list, and an empty label.
GET /WorkOrders/WorkOrderExportColumns
Returns the extra columns the external system offers for the work order export. They are shown in the Columns selection of the Export Data page, below oneGRID's own columns, under the headers returned here.
{
"isResultSuccess": true,
"result": 2,
"validationStatus": null,
"externalMessage": null,
"data": [
{ "key": "tourCode", "header": "Tour" }
]
}
| Response property | Type | Meaning |
|---|---|---|
key | string | Stable identifier of the column. oneGRID Cloud sends it back in the values lookup below and stores it in the user's remembered column selection. |
header | string | Column heading, used verbatim in the selection list and in the exported file. |
Response data: array of column descriptors. An empty array means the adapter offers no extra columns.
Result values: 0 AdapterNotDefined, 1 AdapterApiClientFailed, 2 Success, 3 OperationFailed.
AdapterNotDefined and Success both leave the export working with oneGRID's own columns. Only AdapterApiClientFailed and OperationFailed fail an export that has adapter columns selected.
POST /WorkOrders/WorkOrderExportValues
Resolves the values of the selected adapter columns for a batch of work orders. Called once per export, after the rows are known and before the file is written, so nothing has to be stored in oneGRID Cloud beforehand. The request body is a JSON array — one element per exported work order.
[
{
"workOrderNumber": "WO-2026-0417",
"externalData": "{\"orderType\":\"rush\"}",
"deliveryNoteExternalData": "{\"noteId\":\"DN-77\"}",
"deliveryAddressExternalData": "{\"city\":\"Olching\"}"
}
]
| Body property | Type | Meaning |
|---|---|---|
workOrderNumber | string | Work order the values are requested for. |
externalData | string | The work order's externalData as it was received — see the WorkOrder object. |
deliveryNoteExternalData | string | Customer-specific data of the order's delivery note, when one is known. null otherwise. |
deliveryAddressExternalData | string | Customer-specific data of the delivery note's address, when one is known. null otherwise. |
{
"isResultSuccess": true,
"result": 2,
"validationStatus": null,
"externalMessage": null,
"data": [
{
"workOrderNumber": "WO-2026-0417",
"values": { "tourCode": "T-14" }
}
]
}
| Response property | Type | Meaning |
|---|---|---|
workOrderNumber | string | Work order the values belong to. |
values | object (string → string) | Column key → cell value. A key that is absent produces an empty cell. |
Result values: 0 AdapterNotDefined, 1 AdapterApiClientFailed, 2 Success, 3 OperationFailed.
The whole export range goes out in one request. A wide date range on a large installation can exceed the HTTP client timeout or the request body limit — keep the response prompt.
GET /WorkOrders/WorkOrderExternalIndexableValueLabel
Returns the name for the column that shows a work order's external indexable value — the value the external system indexes its orders by, which is set on the order through the integration interface rather than through these adapter endpoints. oneGRID Cloud uses the label returned here as the column heading on the work order pages, in the work order details, in the export column selection, and in the exported file.
{
"isResultSuccess": true,
"result": 2,
"validationStatus": null,
"externalMessage": null,
"data": { "label": "Customer Name" }
}
| Response property | Type | Meaning |
|---|---|---|
label | string | Column heading. A label matching a string oneGRID Cloud already translates — for example Customer Name — is shown in the user's language; any other label is shown verbatim. An empty label hides the column everywhere. |
Result values: 0 AdapterNotDefined, 1 AdapterApiClientFailed, 2 Success, 3 OperationFailed.
Event notifications
oneGRID Cloud posts these events so the external system stays in sync with what happens on the warehouse floor. They return no data — only the envelope with the result, for example:
{
"isResultSuccess": true,
"result": 1,
"validationStatus": null,
"externalMessage": null
}
POST /WorkOrders/ForPutWall
Confirms that an item amount was placed into a Put Wall location.
{
"workOrderNumber": "WO-2026-0417",
"itemNumber": "100-4711",
"itemNames": [
{ "languageIsoCode": "en", "name": "Hex bolt M8", "isDefault": true }
],
"completedAmount": 12,
"confirmedLocationName": "PW-B-04",
"userEmail": "operator@example.com",
"externalData": null
}
| Body property | Type | Meaning |
|---|---|---|
workOrderNumber | string | Work order the placement belongs to. |
itemNumber | string | Item that was placed. |
itemNames | array | Localized item names: { languageIsoCode, name, isDefault }. |
completedAmount | number | Amount placed, in the item's unit of measure. |
confirmedLocationName | string | Put Wall location where the placement was confirmed. |
userEmail | string | Operator who confirmed. |
externalData | string | Customer-specific supplementary data (JSON string). |
Result values: 0 OperationFailed, 1 Succeed, 2 AdapterApiClientFailed, 3 AdapterApiCallFailed, 4 AdapterNotDefined, 5 InvalidInput.
POST /WorkOrders/CancelPutWallItem
Cancels a single item of a work order during Put Wall processing.
{ "workOrderNumber": "WO-2026-0417", "itemNumber": "100-4711" }
Result values: 0 OperationFailed, 1 Succeed, 2 AdapterApiClientFailed, 3 AdapterApiCallFailed, 4 AdapterNotDefined, 5 InvalidInput.
POST /WorkOrders/CancelWorkOrderRequest
Cancels one request line of a work order in the external system.
{
"workOrderNumber": "WO-2026-0417",
"workOrderTypeName": "Picking",
"workOrderExternalIdentifier": "ERP-000815",
"requestExternalIdentifier": "ERP-000815-1",
"userEmail": "operator@example.com",
"request": {
"requestId": 3021,
"itemNumber": "100-4711",
"requestedAmountInBaseUnitOfMeasure": 12,
"completedAmountInBaseUnitOfMeasure": 4,
"isCancelled": true,
"type": 1
}
}
| Body property | Type | Meaning |
|---|---|---|
request | object | The full request line being cancelled (item number, amounts, lot number, identifiers). |
workOrderNumber | string | Work order number. |
workOrderTypeName | string | Work order type. |
workOrderExternalIdentifier | string | External system's ID of the work order. |
workOrderExternalData | string | Customer-specific data (JSON string). |
requestExternalIdentifier | string | External system's ID of the request line. |
userEmail | string | Operator who cancelled. |
Result values: 0 AdapterApiClientFailed, 1 AdapterNotDefined, 2 Success, 3 OperationFailed.
POST /WorkOrders/RelocateCartContainers
Reports that PickCart containers — and the work orders picked into them — were relocated to destination locations. The body is a JSON array.
[
{
"containerCode": "CONT-0042",
"destinationLocationName": "OUT-01",
"workOrder": {
"number": "WO-2026-0417",
"requests": [
{ "itemNumber": "100-4711", "requestedAmount": 12, "completedAmount": 12 }
]
}
}
]
Result values: 0 InvalidInput, 1 Success, 2 OperationFailed, 3 AdapterApiClientFailed, 4 AdapterNotDefined.
POST /WorkOrders/AttachWorkOrder
Notifies that a work order was attached to a physical container — or released from it when the order was abandoned or cancelled.
{
"workOrderNumber": "WO-2026-0417",
"containerCode": "CONT-0042",
"isAbandonedOrCancelled": false
}
Result values: 0 Success, 1 OperationFailed, 2 InvalidInput, 3 WorkOrderDoesNotExist, 4 ContainerDoesNotExist, 5 WorkOrderAlreadyAttached, 6 ContainerAlreadyAttached, 7 AdapterApiClientFailed, 8 AdapterNotDefined, 9 InvalidContainer.
POST /WorkOrders/Status
This endpoint is legacy and scheduled for rework — new adapter implementations should not rely on it. Work-order status changes are better tracked through the processing callbacks and the event notifications above.
Notifies the external system that a work order's status changed. Body: number (string) and status (0 New, 1 Paused, 2 Assigned, 3 Completed, 4 Empty, 5 Abandoned, 6 Canceled, 7 CompletedWithCancelations, 8 Unknown).
WorkOrder object
The central payload returned by the fetch endpoints and produced by file parsing.
| Property | Type | Required | Meaning |
|---|---|---|---|
number | string | yes | Work order number (business key). |
externalIdentifier | string | no | External system's ID. |
description | string | no | Human-readable description. |
dueDate | string (date-time) | yes | When the order is due. |
customerRequiredDeliveryDate | string (date-time) | no | Delivery date requested by the customer. |
requests | array | yes | The order's request lines — see below. |
workOrderTypeName | string | no | Work order type — see Process types. |
designatedStorageName | string | no | Storage the order is assigned to. |
deliveryNumber | string | no | Delivery or shipment number. |
alternativeStartNumber | string | no | Alternative scannable code the order can be started with. |
externalData | string | no | Customer-specific supplementary data as a JSON string. |
Each element of requests (one request line):
| Property | Type | Required | Meaning |
|---|---|---|---|
itemNumber | string | yes | Item to pick or place. |
itemName | string | no | Item display name. |
itemDescription | string | no | Item description. |
languageIsoCode | string | no | Language of name and description. |
requestedAmount | number (integer) | yes | Amount in the item's unit of measure. |
unitOfMeasure | number (enum) | no | 0 Piece, 1 Meter, 2 Centimeter, 3 Millimeter, 4 Kilogram, 5 Gram, 6 Milligram, 7 Liter, 8 Centiliter, 9 Milliliter, 10 Gallon, 11 Pound, 12 SquareMeter, 13 CubicMeter. Defaults to 0. |
lotNumber | string | no | Lot or batch number. |
itemExternalIdentifier | string | no | External item ID. |
requestExternalIdentifier | string | no | External request-line ID. |
requestExternalData | string | no | Customer-specific data (JSON string). |
requestType | number (enum) | no | 0 Ignored, 1 PickItem, 2 PlaceItem. |
order | number (integer) | no | Processing sequence of the line. |
designatedLocationName | string | no | Location the line is bound to. |