Skip to content

Product Picked

Notify WMS when a product has been picked from the WCS.

Direction WCS → WMS

HTTP Method POST

Path /pickTaskGroup/productPicked

Field notes:

Field NameData TypeDescriptionNotes
taskIdStringThe Autostore Task ID that this pick belonged to
externalReferenceJSON StringA JSON string that can be used to link the individual task within this pick list to the relevant data in the connected WMS, for legacy integrationsSource: task.externalReference from Pick Task Import
externalReferenceIdStringThe unique identifier that was passed on the pick list import’s task that this pick belonged toSource: task.externalReferenceId from Pick Task Import
taskGroupIdStringThe Autostore Task Group ID that this pick belonged to
externalGroupReferenceStringThe unique identifier that was passed on the pick list importSource: externalReference from Pick Task Import
shipmentTypeStringAn identifier for which type of flow the product picked stemmed fromValues: Batch-Pick, Pick-Pack
subBinIdStringThe location identifier for the physical bin within the Autostore where this stock was picked out from
productIdStringThe ID of the product that was picked
barcodeStringThe barcode (scanned field) on the product that was picked
batchStringThe batch code for the product that was picked if it had oneMay be null (not all products are batch managed)
expiryStringThe expiration date for the product that was picked if it had oneMay be null (not all products have an expiration date)
stockOwnerStringThe stock owner for the product that was picked
pickedQuantityDoubleThe total number of units that were picked out of the sub bin for this productCould be less than requested. Mutually exclusive with shortedQuantity and reallocatedQuantity
shortedQuantityDoubleThe total number of units that could not be picked out of the sub bin for this productMutually exclusive with pickedQuantity and reallocatedQuantity
reallocatedQuantityDoubleThe total number of units that had to be re-reserved due to a shortage in the initial sub binMutually exclusive with pickedQuantity and shortedQuantity
allocationReferenceStringThe unique identifier for the WCS’ reservation of the items that were picked out of this sub bin
locationToStringThe location that the stock was picked into, scanned by the operativeFor Pick-Pack: shippingBarcode. For Batch-Pick: follows containerRegex format
portStringThe identifier of the port that the stock was picked atPort numbers are numeric, so “1”, “2”, “3” etc
operatorStringThe username of the operative that completed the pick

** Example Request Body**

{
"externalReferenceId": "8b2795a9-0c6c-4991-a764-5b9eb03c9d82",
"externalCustomerBatchId": "BATCH12345",
"externalCustomerOrderId": "ORDER12345",
"externalGroupReference": "781b991b-b9f9-47e8-9292-9c172e436a1d",
"externalReference": {
"allocationReference": "ORDER12345_REF12345",
"externalCustomerOrderId": "ORDER12345",
"instructionGroupId": "781b991b-b9f9-47e8-9292-9c172e436a1d",
"instructionId": "8b2795a9-0c6c-4991-a764-5b9eb03c9d82",
"sku": "SKU12345"
},
"metadata": {"ALLOCATION_REFERENCE": "REF12345", "SKU": "SKU12345"},
"taskId": "TASK12345",
"taskGroupId": "TASKGROUP12345",
"shipmentType": "Pick-Pack",
"subBinId": "12345-11",
"productId": "PROD12345",
"barcode": "SKU12345",
"sku": "SKU12345",
"batch": "BATCH12345",
"batchId": "BATCH12345",
"expiry": "01-02-2027",
"stockOwner": "OWNER12345",
"pickedQuantity": 5,
"allocationReference": "REF12345",
"locationTo": "SHIP123456789",
"unitIdentifiers": ["UNIT-0001", "UNIT-0002"],
"operator": "User1",
"port": "1",
"pickedFromTime": "2026-06-19T10:05:42.490548421Z",
"pickedToTime": "2026-06-19T10:05:52.520268716Z"
}

Field notes:

  • metadata (object, optional): Key-value map of supplementary data. Not validated as required; WMS should expect it to be null or empty when nothing is set.
  • unitIdentifiers (array of strings, optional): Serial numbers for unitary (individually tracked) products. Not validated as required; WMS should expect it to be null or empty for non-unitary stock.

200: Product picked accepted

{
"message": "Success"
}

400: Invalid request data

{
"message": "Bad Request"
}

401: Authentication failed

{
"message": "Unauthorized"
}