---
title: "GeneratePickingWave"
method: POST
path: "/api/Picking/GeneratePickingWave"
tags: ["Picking"]
---

# GeneratePickingWave

`POST /api/Picking/GeneratePickingWave`

Generate a new pickwave
<b>Permissions Required: </b> GlobalPermissions.OrderBook.OpenOrders.PickingWaves.GeneratePickingWavesNode
<b>Rate limit: </b><span style="background-color:#0272d9;color:white;padding:4px 8px;text-align:center;border-radius:5px; font-size: small;"><b>150</b></span> / minute

## Request body

- PickingWaveGenerate
  - `LocationId` string, uuid — Location Id
  - `UserId` integer — Allocated user id
  - `SortingType` 'BinPriority' | 'OrderView'
  - `Orders` PickingWaveGenerateOrder[] — Pickwave items
    - `OrderId` integer — Order Id (Integer)
    - `SortOrder` integer
  - `Pickwaves` PickingWaveGenerateMulti[] — Collection of pickwaves and their orders to generate. All order singular or composite child row ids must be provided, if batches exist on the order item then batch id must be supplied);
    - `Orders` PickingWaveGenerateOrderMulti[] — Orders
      - `Items` PickingWaveGenerateItemMulti[] — Items to be added to the pickwave.
        - `OrderItemRowId` string, uuid — Order item row id
        - `BatchInventoryId` integer — Batch inventory id, if the item is batched or location is warehouse managed and id is not supplied then the whole order item will be added to the pickwave.
      - `OrderId` integer — Order Id (Integer)
      - `SortOrder` integer
    - `GroupType` 'Items' | 'Orders' — Pickwave group type (optional, if not set parent sort will be used)
  - `GroupType` 'Items' | 'Orders' — Pickwave group type

## Response `200`

OK

- GeneratePickingWaveResponse
  - `ValidationResults` PickWaveAllocateCheckResult[] — Validation errors if generate fails.
    - `SortOrder` integer
    - `OrderId` integer — Order Id interger
    - `OrderId_Guid` string, uuid — Order Id uniqueidentifier
    - `Errors` PickWaveAllocateCheckResultError[] — Errors
      - `Error` string — Error message
      - `ErrorType` 'Unknown' | 'NeedsStockAllocation' | 'IsLocked' | 'IsParked' | 'IsInFulfilmentCentre' | 'IsCancelled' | 'IsProcessed' | 'NoVaidItems' | 'UnlinkedItem' | 'AlreadyExistsInWave' | 'OrderDoesntExist' | 'AllCombinationOfItemsDontExist' | 'DuplicateCombinationsOfItemsExist' | 'DifferentLocation' — Error type enum.
      - `OrderItemRowId` string, uuid — Order item row id, if null or guid empty then top level order error.
    - `HasErrors` boolean — Has Errors
    - `OrderDetails` PickWaveAllocateCheckResultOrderDetails[]
      - `LocationId` string, uuid — Location the order resides in
      - `OrderItemRowId` string, uuid — Order item row id
      - `BatchInventoryId` integer — Batch inventory id, if the order item contains batches.
      - `StockItemId` string, uuid — Stock item id
      - `SKU` string — SKU
      - `ItemTitle` string — Item title
      - `Binrack` string — Binrack
      - `BatchNumber` string — Batch number
      - `Quantity` integer — Quantity on either order item row or allocated batch row.
      - `RoutingSequence` integer — (WMS only) Routing sequence of the binrack.
  - `PickingWaves` PickingWaveDetailed[] — Pickwaves
    - `LocationId` string, uuid — Location Id
    - `UserId` integer — Allocated user id
    - `EmailAddress` string — Allocated user EmailAddress
    - `CreatedDate` string, date-time — Creation date
    - `OrderCount` integer — Order Count - Number of orders in pickwave.
    - `ItemCount` integer — Item Count - Number of items in pickwave.
    - `ItemsPicked` integer — Items Picked - Number of items picked in pickwave.
    - `OrdersPicked` integer — Orders Picked - Number of orders picked in pickwave.
    - `AccumulatedInProgressSeconds` integer — Time taken in pickwave
    - `StartTime` string, date-time — Start date time of pickwave
    - `EndTime` string, date-time — End date time of pickwave
    - `GroupType` 'Items' | 'Orders' — Pickwave group type
    - `SortingType` 'BinPriority' | 'OrderView'
    - `Orders` PickingWaveOrderDetailed[] — Orders in pickwave.
      - `PickingWaveOrdersRowId` integer — Pickwave order id
      - `PickingWaveId` integer — Pickwave id
      - `OrderId` integer — Order Id
      - `PickState` 'Unpicked' | 'PartialPicked' | 'Picked' | 'Processed' | 'LockedOrParked' | 'Cancelled' | 'Deleted' — Pick state
      - `SortOrder` integer — Sort order
      - `ItemCount` integer — Items count
      - `PickedItemsCount` integer — Picked items count
      - `Items` PickingWaveItemDetailed[] — Pickwave order items.
        - `SortOrder` integer — Sort order
        - `ToPickQuantity` integer — Quantity to pick
        - `TOTId` integer — ToT Id
        - `TrayTag` string — Tray tag
        - `PickingTag` string — Picking tag
        - `PickingWaveItemsRowId` integer — Pickwave item row id
        - `PickingWaveId` integer — Pickwave id
        - `PickedQuantity` integer — Quatity picked
        - `ItemState` 'Normal' | 'OrderStateInvalid' | 'Abandonned' | 'DeletedFromOrder' — Pickwave item state
        - `Totes` PickingWaveItemTote[] — Collection of pickwave item totes.
          - `RowId` integer
          - `PickingWaveItemsRowId` integer
          - `ToteId` integer
          - `TrayTag` string
          - `PickedQuantity` integer
        - `BatchInventoryId` integer — Batch Inventory Id
        - `OrderId` integer — Linnworks Order Id
        - `OrderItemRowId` string, uuid — Unique order item row identifier
        - `StockItemId` string, uuid — StockItemId
        - `OrderSortOrder` integer — Sort order of Order
      - `Composition` PickingWaveItemComposition[] — Relationship between pickwave items and composite parent rows.
        - `StockItemId` string, uuid — Stock item id
        - `OrderItemRowId` string, uuid — Composite parent order item row id
        - `Quantity` integer — Quantity of composite.
        - `Children` PickingWaveItemComposition[] — Child row relationships to parent
      - `OrderId_Guid` string, uuid — Internal guid orderid
      - `IsProcessed` boolean — Is order processed
      - `IsCancelled` boolean — Is order hold or cancelled
      - `IsOnHold` boolean — Is order on hold status
      - `IsLocked` boolean — Is order locked.
      - `IsPaid` boolean — Is order paid
    - `Options` PickingWaveOptions
      - `ItemScanType` 'Any' | 'IndividualItem' | 'AggregateItem' — Item scan type, dictates if the user must scan all items or can provide aggregate count
      - `TrayScanRequired` boolean — If the user must scan the tray the item went into.
      - `TotScanRequired` boolean — If the user must scan the tot before scanning items.
      - `BinRackScanRequired` boolean — If the user must scan the binrack before picking an item.
    - `PickingWaveId` integer — Pickwave id
    - `State` 'Unallocated' | 'Allocated' | 'InProgress' | 'Paused' | 'Complete' | 'Abandoned' | 'Packing' | 'Shipped' — Current state of pickwave
  - `Skus` StockItemInfo[] — List of SKUs.
    - `SKU` string — Item SKU
    - `StockItemId` string, uuid — Item unique id
    - `ItemTitle` string — Item Title
    - `Barcode` string — Barcode number on the item header
    - `PrimaryImageURL` string — Image URL
    - `Identifiers` StockItemIdentifier[] — Product identifiers
      - `StockItemId` string, uuid — Stock item id
      - `Type` 'EAN' | 'MPN' | 'GTIN' | 'UPC' | 'ASIN' | 'ISBN' | 'Google' | 'CustomID' | 'PZN' | 'GCID' | 'ePID' | 'AMZNTRANS' | 'SERIAL' | 'IMEI' — Product identifier type
      - `Value` string — Product identifier
  - `Bins` BinRackStockItem[] — List of bins and batches of items in the bins.
    - `BinRackId` integer — Unique id for the binrack
    - `StandardType` integer — Bin Rack type name
    - `BatchId` integer — Batch id
    - `BatchInventoryId` integer — Batch inventory id
    - `PrioritySequence` integer — Consume priority sequence
    - `BatchStatus` string — Batch status, "Available", "Restricted", "Damaged", "Expired"
    - `BinRack` string — BinRack name
    - `CurrentFullPercentage` number, double — Maximum volumetric capacity of the location WxDxH = volumetric
    - `Quantity` integer — Quantity available in the location
    - `InTransit` integer — Quantity of items currently in transit
    - `PickedQuantity` integer — Indicate how many units are now allocated in open orders
    - `InventoryTrackingType` integer — 0 - None, 1 - Order by sell by date, 2 - Ordered by priority sequence
    - `StockItemId` string, uuid — Product ID
    - `BatchNumber` string — Batch number
    - `ExpiresOn` string, date-time — Batch expiry date
    - `SellBy` string, date-time — Batch sell by date
    - `BinrackTypeName` string
    - `LocationId` string, uuid

---

[API](https://skmtc.net/linnworks/apis/authenticate-api.md) · [All operations](https://skmtc.net/linnworks/apis/authenticate-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/linnworks/authenticate-api/revisions/0123569a22fb/schema)
