Skip to content

Inventory events

These are the inventory events. Each one reaches a webhook subscription as the data of a webhook delivery, whose type is the event type shown under its heading. Every required property is always present; a nullable one may be null.

Type: jtWMS.Inventory.Events.V1.InventoryReceived

Published when stock is received into a facility. Carries the whole ledger transaction: its lines and the state of every position it touched after it, so a consumer can keep its own stock picture without a follow-up call.

Payload: A receipt’s ledger transaction (Type Receipt, no reason code).

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.InventoryAdjusted

Published when stock is adjusted in or out with a reason code (Shrinkage, Damage, Discovered, Found, Correction). Carries the whole ledger transaction with the position’s state after it.

Payload: An adjustment’s ledger transaction (Type Adjustment, with its reason code), one line.

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.InventoryMoved

Published when stock or a license plate moves within a facility. Carries the whole ledger transaction with the state of every position it touched after it, and, for an LPN move, every license plate it moved.

Payload: A move’s ledger transaction (Type Move, no reason code), plus the license plates it moved. A stock move has a line per position moved from, each with a From and a To side; an LPN move has a line per position inside the LPN and the LPNs on it whose location changed.

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.
Lpns array of objects Yes The license plates an LPN move moved, after it: the LPN first, then the LPNs on it. Empty for a stock move.
Lpns[].LpnId string (uuid) Yes
Lpns[].FacilityId string (uuid) Yes
Lpns[].Code string Yes The printed label’s code, unique in the facility among LPNs not deleted, ignoring case. Min length 1. Max length 64. Pattern ^[A-Za-z0-9._-]+$.
Lpns[].Type string, one of Pallet, Case, Tote Yes
Lpns[].ParentLpnId string (uuid), nullable Yes The pallet it sits on.
Lpns[].LocationId string (uuid) Yes Its location (its pallet’s, when it has one).
Lpns[].Status string, one of Active, PendingDelete Yes
Lpns[].CreatedAt string (date-time) Yes
Lpns[].UpdatedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.InventoryHeld

Published when Available stock is put on hold as Quarantine or Damaged. The stock stays where it is, still on hand but no longer available. Carries the whole ledger transaction, with its note, and the state of every position it touched after it.

Payload: A hold’s ledger transaction (Type Hold, no reason code, with its note): a line per position held from, each leaving the Available position (From) and entering the Quarantine or Damaged position of the same stock at the same location and license plate (To).

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.InventoryReleased

Published when held (Quarantine or Damaged) stock is released back to Available, where it is. Carries the whole ledger transaction, with its note, and the state of every position it touched after it.

Payload: A release’s ledger transaction (Type Release, no reason code, with its note): a line per position released from, each leaving the held position (From) and entering the Available position of the same stock at the same location and license plate (To).

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.InventoryAllocated

Published when stock of a product is allocated to an order line. Carries the whole allocation, its lines in rotation order, and the state of every position allocated from after it.

Payload: The new allocation (Status Open, nothing picked), plus the after-state of every position it allocated from.

Property Type Required Description
AllocationId string (uuid) Yes
FacilityId string (uuid) Yes
ProductId string (uuid) Yes
Sku string Yes
Reference string Yes The caller’s order line. Min length 1. Max length 100.
LotNumber string, nullable Yes The lot the allocation was restricted to; null for any lot. Max length 64.
RequestedQuantity integer Yes Minimum 1.
AllocatedQuantity integer Yes The quantity allocated; less than requested only for a partial allocation. Minimum 1.
PickedQuantity integer Yes Minimum 0.
Status string, one of Open, Picked, Released, Issued Yes Open (some left to pick), Picked (every line fully picked), Released (holds nothing) or Issued (shipped: its picked stock issued and the rest released; holds nothing).
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes When it last changed; the updatedAt stamped on every position the write changed.
Lines array of objects Yes The lines, one per position allocated from, in rotation order.
Lines[].LineId string (uuid) Yes The line’s ID; a pick names it.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].PositionId string (uuid) Yes The source position.
Lines[].Quantity integer Yes The quantity allocated from the source position. Minimum 1.
Lines[].PickedQuantity integer Yes Minimum 0.
Lines[].Picks array of objects Yes The picks of the line, in the order made.
Lines[].Picks[].PickId string (uuid) Yes
Lines[].Picks[].PositionId string (uuid) Yes The destination position, holding the picked quantity as allocated.
Lines[].Picks[].Quantity integer Yes Minimum 1.
Lines[].Picks[].TransactionId string (uuid) Yes The ledger transaction that put the stock here, the pick’s (Type Pick) or, after a transfer moved picked stock on (replacing its picks), the transfer’s (Type Move).
Lines[].Picks[].PickedAt string (date-time) Yes
Positions array of objects Yes The positions allocated from, after the allocation (their allocated quantities raised).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.InventoryPicked

Published when allocated stock is picked to a location or license plate, staying allocated. Carries the whole ledger transaction, the state of every position it touched after it, and the allocation after the pick.

Payload: A pick’s ledger transaction (Type Pick, no reason code, the allocation’s reference and the pick’s note): a line per allocation line picked, each leaving its source position (From) and entering the position of the same stock at the destination location and license plate (To), the quantity still allocated on both sides; plus the allocation after the pick.

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.
Allocation object Yes An allocation: stock of one product set aside for an order line, by the product’s rotation strategy. While Open or Picked it holds its lines’ unpicked quantity at their positions and its picks’ quantity at theirs; once Released or Issued, nothing. Quantities are whole base units.
Allocation.AllocationId string (uuid) Yes
Allocation.FacilityId string (uuid) Yes
Allocation.ProductId string (uuid) Yes
Allocation.Sku string Yes
Allocation.Reference string Yes The caller’s order line. Min length 1. Max length 100.
Allocation.LotNumber string, nullable Yes The lot the allocation was restricted to; null for any lot. Max length 64.
Allocation.RequestedQuantity integer Yes Minimum 1.
Allocation.AllocatedQuantity integer Yes The quantity allocated; less than requested only for a partial allocation. Minimum 1.
Allocation.PickedQuantity integer Yes Minimum 0.
Allocation.Status string, one of Open, Picked, Released, Issued Yes Open (some left to pick), Picked (every line fully picked), Released (holds nothing) or Issued (shipped: its picked stock issued and the rest released; holds nothing).
Allocation.CreatedAt string (date-time) Yes
Allocation.UpdatedAt string (date-time) Yes When it last changed; the updatedAt stamped on every position the write changed.
Allocation.Lines array of objects Yes The lines, one per position allocated from, in rotation order.
Allocation.Lines[].LineId string (uuid) Yes The line’s ID; a pick names it.
Allocation.Lines[].LineNumber integer Yes Minimum 1.
Allocation.Lines[].PositionId string (uuid) Yes The source position.
Allocation.Lines[].Quantity integer Yes The quantity allocated from the source position. Minimum 1.
Allocation.Lines[].PickedQuantity integer Yes Minimum 0.
Allocation.Lines[].Picks array of objects Yes The picks of the line, in the order made.
Allocation.Lines[].Picks[].PickId string (uuid) Yes
Allocation.Lines[].Picks[].PositionId string (uuid) Yes The destination position, holding the picked quantity as allocated.
Allocation.Lines[].Picks[].Quantity integer Yes Minimum 1.
Allocation.Lines[].Picks[].TransactionId string (uuid) Yes The ledger transaction that put the stock here, the pick’s (Type Pick) or, after a transfer moved picked stock on (replacing its picks), the transfer’s (Type Move).
Allocation.Lines[].Picks[].PickedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.InventoryAllocationReleased

Published when an allocation is released: what it held, unpicked or picked, is available again where it is. Carries the whole allocation and the state of every position it freed after it.

Payload: The released allocation (Status Released, its lines and picks as they were), plus the after-state of every position it freed: the lines’ sources for what was unpicked, the picks’ destinations for what was picked.

Property Type Required Description
AllocationId string (uuid) Yes
FacilityId string (uuid) Yes
ProductId string (uuid) Yes
Sku string Yes
Reference string Yes The caller’s order line. Min length 1. Max length 100.
LotNumber string, nullable Yes The lot the allocation was restricted to; null for any lot. Max length 64.
RequestedQuantity integer Yes Minimum 1.
AllocatedQuantity integer Yes The quantity allocated; less than requested only for a partial allocation. Minimum 1.
PickedQuantity integer Yes Minimum 0.
Status string, one of Open, Picked, Released, Issued Yes Open (some left to pick), Picked (every line fully picked), Released (holds nothing) or Issued (shipped: its picked stock issued and the rest released; holds nothing).
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes When it last changed; the updatedAt stamped on every position the write changed.
Lines array of objects Yes The lines, one per position allocated from, in rotation order.
Lines[].LineId string (uuid) Yes The line’s ID; a pick names it.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].PositionId string (uuid) Yes The source position.
Lines[].Quantity integer Yes The quantity allocated from the source position. Minimum 1.
Lines[].PickedQuantity integer Yes Minimum 0.
Lines[].Picks array of objects Yes The picks of the line, in the order made.
Lines[].Picks[].PickId string (uuid) Yes
Lines[].Picks[].PositionId string (uuid) Yes The destination position, holding the picked quantity as allocated.
Lines[].Picks[].Quantity integer Yes Minimum 1.
Lines[].Picks[].TransactionId string (uuid) Yes The ledger transaction that put the stock here, the pick’s (Type Pick) or, after a transfer moved picked stock on (replacing its picks), the transfer’s (Type Move).
Lines[].Picks[].PickedAt string (date-time) Yes
Positions array of objects Yes The positions freed, after the release (their allocated quantities lowered).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.

Type: jtWMS.Inventory.Events.V1.LpnCreated

Published when a license plate is created. Carries the full LPN.

Payload: The license plate just created (empty, Status Active).

Property Type Required Description
LpnId string (uuid) Yes
FacilityId string (uuid) Yes
Code string Yes The printed label’s code, unique in the facility among LPNs not deleted, ignoring case. Min length 1. Max length 64. Pattern ^[A-Za-z0-9._-]+$.
Type string, one of Pallet, Case, Tote Yes
ParentLpnId string (uuid), nullable Yes The pallet it sits on.
LocationId string (uuid) Yes Its location (its pallet’s, when it has one).
Status string, one of Active, PendingDelete Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.LpnStatusChanged

Published when a license plate is deleted (one event per LPN, its empty children included). Carries the full LPN with the previous and new status.

Payload: The full license plate after its status changed (Status equals NewStatus), plus the previous and new status.

Property Type Required Description
LpnId string (uuid) Yes
FacilityId string (uuid) Yes
Code string Yes The printed label’s code, unique in the facility among LPNs not deleted, ignoring case. Min length 1. Max length 64. Pattern ^[A-Za-z0-9._-]+$.
Type string, one of Pallet, Case, Tote Yes
ParentLpnId string (uuid), nullable Yes The pallet it sits on.
LocationId string (uuid) Yes Its location (its pallet’s, when it has one).
Status string, one of Active, PendingDelete Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes
PreviousStatus string, one of Active Yes
NewStatus string, one of PendingDelete Yes
ChangedAt string (date-time) Yes When the status changed; the same as UpdatedAt.

Type: jtWMS.Inventory.Events.V1.CycleCountOpened

Published when a cycle count of a location is opened. Carries the full count.

Payload: The count just opened (CountStatus Open, no lines).

Property Type Required Description
CycleCountId string (uuid) Yes
FacilityId string (uuid) Yes
Number string Yes The count’s number in its facility, as shown; the reference of the adjustment an approved count posts. Pattern ^CC-[0-9]{6,}$.
LocationId string (uuid) Yes
LocationCode string Yes The location’s code when the count was opened.
Origin string, one of Planned, Anomaly, Manual Yes
PlanId string (uuid), nullable Yes The count plan whose schedule opened the count.
TriggerTransactionId string (uuid), nullable Yes The ledger transaction whose anomaly opened the count.
TriggerNote string, nullable Yes What opened the count, in words.
Note string, nullable Yes
RecountOfId string (uuid), nullable Yes The count this one recounts.
CountStatus string, one of Open, PendingReview, Closed, Cancelled Yes
Outcome string, one of Matched, Adjusted, Recounted, Cancelled, nullable Yes How the count ended; null until it is closed or cancelled.
CountedBy string, nullable Yes Who submitted the count (a user or API key id).
CountedAt string (date-time), nullable Yes When the count was submitted; the time its expected quantities were taken.
ReviewedBy string, nullable Yes Who closed or cancelled the count after submission.
ReviewedAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes
Lines array of objects Yes What was found against what was held; empty until the count is submitted.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].LpnId string (uuid), nullable Yes
Lines[].LpnCode string, nullable Yes
Lines[].LotNumber string, nullable Yes
Lines[].Serial string, nullable Yes
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ExpectedQuantity integer Yes The base quantity the system held when the count was submitted. Minimum 0.
Lines[].CountedQuantity integer Yes The base quantity found. Minimum 0.
Lines[].Variance integer Yes CountedQuantity minus ExpectedQuantity.

Type: jtWMS.Inventory.Events.V1.CycleCountSubmitted

Published when a cycle count is submitted. Carries the full count with its lines: what was found and what the system held, per stock key.

Payload: The count just submitted (CountStatus PendingReview, or Closed when it matched), with its lines.

Property Type Required Description
CycleCountId string (uuid) Yes
FacilityId string (uuid) Yes
Number string Yes The count’s number in its facility, as shown; the reference of the adjustment an approved count posts. Pattern ^CC-[0-9]{6,}$.
LocationId string (uuid) Yes
LocationCode string Yes The location’s code when the count was opened.
Origin string, one of Planned, Anomaly, Manual Yes
PlanId string (uuid), nullable Yes The count plan whose schedule opened the count.
TriggerTransactionId string (uuid), nullable Yes The ledger transaction whose anomaly opened the count.
TriggerNote string, nullable Yes What opened the count, in words.
Note string, nullable Yes
RecountOfId string (uuid), nullable Yes The count this one recounts.
CountStatus string, one of Open, PendingReview, Closed, Cancelled Yes
Outcome string, one of Matched, Adjusted, Recounted, Cancelled, nullable Yes How the count ended; null until it is closed or cancelled.
CountedBy string, nullable Yes Who submitted the count (a user or API key id).
CountedAt string (date-time), nullable Yes When the count was submitted; the time its expected quantities were taken.
ReviewedBy string, nullable Yes Who closed or cancelled the count after submission.
ReviewedAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes
Lines array of objects Yes What was found against what was held; empty until the count is submitted.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].LpnId string (uuid), nullable Yes
Lines[].LpnCode string, nullable Yes
Lines[].LotNumber string, nullable Yes
Lines[].Serial string, nullable Yes
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ExpectedQuantity integer Yes The base quantity the system held when the count was submitted. Minimum 0.
Lines[].CountedQuantity integer Yes The base quantity found. Minimum 0.
Lines[].Variance integer Yes CountedQuantity minus ExpectedQuantity.

Type: jtWMS.Inventory.Events.V1.CycleCountClosed

Published when a cycle count is closed or cancelled. Carries the full count with its outcome.

Payload: The count as it ended (CountStatus Closed or Cancelled, with its Outcome).

Property Type Required Description
CycleCountId string (uuid) Yes
FacilityId string (uuid) Yes
Number string Yes The count’s number in its facility, as shown; the reference of the adjustment an approved count posts. Pattern ^CC-[0-9]{6,}$.
LocationId string (uuid) Yes
LocationCode string Yes The location’s code when the count was opened.
Origin string, one of Planned, Anomaly, Manual Yes
PlanId string (uuid), nullable Yes The count plan whose schedule opened the count.
TriggerTransactionId string (uuid), nullable Yes The ledger transaction whose anomaly opened the count.
TriggerNote string, nullable Yes What opened the count, in words.
Note string, nullable Yes
RecountOfId string (uuid), nullable Yes The count this one recounts.
CountStatus string, one of Open, PendingReview, Closed, Cancelled Yes
Outcome string, one of Matched, Adjusted, Recounted, Cancelled, nullable Yes How the count ended; null until it is closed or cancelled.
CountedBy string, nullable Yes Who submitted the count (a user or API key id).
CountedAt string (date-time), nullable Yes When the count was submitted; the time its expected quantities were taken.
ReviewedBy string, nullable Yes Who closed or cancelled the count after submission.
ReviewedAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes
Lines array of objects Yes What was found against what was held; empty until the count is submitted.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].LpnId string (uuid), nullable Yes
Lines[].LpnCode string, nullable Yes
Lines[].LotNumber string, nullable Yes
Lines[].Serial string, nullable Yes
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ExpectedQuantity integer Yes The base quantity the system held when the count was submitted. Minimum 0.
Lines[].CountedQuantity integer Yes The base quantity found. Minimum 0.
Lines[].Variance integer Yes CountedQuantity minus ExpectedQuantity.

Type: jtWMS.Inventory.Events.V1.CountPlanCreated

Published when a cycle count plan is created. Carries the full plan.

Payload: The plan just created (Status Active, due to run at once).

Property Type Required Description
PlanId string (uuid) Yes
FacilityId string (uuid) Yes
Name string Yes Max length 100.
FromLocationCode string, nullable Yes
ToLocationCode string, nullable Yes
FrequencyDays integer Yes Minimum 1. Maximum 365.
Status string, one of Active, Inactive, PendingDelete Yes
NextRunAt string (date-time), nullable Yes When it runs next; null while it is not active.
LastRunAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.CountPlanUpdated

Published when a cycle count plan’s settings are replaced. Carries the full plan.

Payload: The plan with its new settings.

Property Type Required Description
PlanId string (uuid) Yes
FacilityId string (uuid) Yes
Name string Yes Max length 100.
FromLocationCode string, nullable Yes
ToLocationCode string, nullable Yes
FrequencyDays integer Yes Minimum 1. Maximum 365.
Status string, one of Active, Inactive, PendingDelete Yes
NextRunAt string (date-time), nullable Yes When it runs next; null while it is not active.
LastRunAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.CountPlanStatusChanged

Published when a cycle count plan is activated, deactivated or deleted. Carries the full plan with the previous and new status.

Payload: The full plan after its status changed (Status equals NewStatus), plus the previous and new status.

Property Type Required Description
PlanId string (uuid) Yes
FacilityId string (uuid) Yes
Name string Yes Max length 100.
FromLocationCode string, nullable Yes
ToLocationCode string, nullable Yes
FrequencyDays integer Yes Minimum 1. Maximum 365.
Status string, one of Active, Inactive, PendingDelete Yes
NextRunAt string (date-time), nullable Yes When it runs next; null while it is not active.
LastRunAt string (date-time), nullable Yes
CreatedAt string (date-time) Yes
UpdatedAt string (date-time) Yes
PreviousStatus string, one of Active, Inactive Yes
NewStatus string, one of Active, Inactive, PendingDelete Yes

Type: jtWMS.Inventory.Events.V1.InventoryCommandCompleted

Published by the Inventory service when it has carried out a command: the command’s id, type and reference, and the ledger transaction and license plate it produced, in the same commit as the command’s own stock event. Senders correlate by CommandId.

Payload: A command Inventory carried out. A redelivered command changes nothing and publishes this again with the same values.

Property Type Required Description
CommandId string (uuid) Yes The command’s id, which its sender gave it and matches this answer by.
CommandType string Yes The command’s canonical name, such as jtWMS.Inventory.Commands.V1.ReceiveInventory.
Reference string, nullable Yes
TransactionId string (uuid), nullable Yes The ledger transaction the command wrote (the Receipt, for a receipt with damaged lines), if any.
LpnId string (uuid), nullable Yes The license plate the command received into or moved, if any.
AllocationId string (uuid), nullable Yes The allocation the command made, released, picked or issued, if any.
CompletedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.InventoryCommandRejected

Published by the Inventory service when it refuses a command by a stock rule: nothing changed. Carries the command’s id, type and reference and the refusal’s errorCode, detail and extensions, as the HTTP API would answer them.

Payload: A command Inventory refused by a stock rule: nothing changed. A redelivered command publishes this again with the same values. Transient failures are retried, never rejected.

Property Type Required Description
CommandId string (uuid) Yes
CommandType string Yes
Reference string, nullable Yes
ErrorCode string Yes The code the HTTP API would answer, such as serial_conflict, location_blocked or lpn_location_mismatch; stock_rules_violated for field errors the stock rules find (then in Extensions under errors); invalid_command for a command outside its documented limits.
Detail string, nullable Yes
Extensions object Yes The refusal’s ProblemDetails extensions (such as availableQuantity or serials); empty when none.
RejectedAt string (date-time) Yes

Type: jtWMS.Inventory.Events.V1.InventoryIssued

Published when an allocation’s picked stock is issued out of the building at shipment. Carries the whole Issue ledger transaction, the state of every position it touched after it, the positions where its unpicked quantity was released, and the allocation after the issue (Status Issued).

Payload: The Issue transaction (Type Issue, no reason code, the allocation’s reference, the shipment as its note): a line per position the allocation’s stock was picked to (its picks there added up; the positions in the order first picked into, across the allocation’s lines), each a From side only, the position’s quantity and allocated quantity lowered alike (a position emptied is soft-deleted: its after-state shows quantity 0, and a license plate emptied stays); no lines when nothing was picked (a line shorted at zero); Positions, the after-state of those positions; ReleasedPositions, the positions where the unpicked quantity was released; and the allocation after the issue (Status Issued).

Property Type Required Description
TransactionId string (uuid) Yes
FacilityId string (uuid) Yes The facility every line is in.
Type string, one of Receipt, Adjustment, Move, Hold, Release, Pick, Issue Yes
ReasonCode string, one of Shrinkage, Damage, Discovered, Found, Correction, CycleCount, nullable Yes The adjustment’s reason; null for any other type.
Reference string, nullable Yes The caller’s reference (a delivery note, a count sheet); a pick’s or an issue’s is its allocation’s. Max length 100.
Note string, nullable Yes Max length 500.
OccurredAt string (date-time) Yes When the change was made (UTC); the updatedAt stamped on every position it changed.
Lines array of objects Yes The lines, in order: at least one for a receipt, an adjustment, a stock move, a hold, a release and a pick; none for an LPN move that moved no stock to another location (an empty LPN, or a case taken off or put on a pallet at the same location), or for an issue of an allocation nothing of which was picked (it only releases what the allocation held); at least one for any other issue.
Lines[].LineNumber integer Yes Minimum 1.
Lines[].ProductId string (uuid) Yes
Lines[].Sku string Yes
Lines[].FromPositionId string (uuid), nullable Yes
Lines[].FromLocationId string (uuid), nullable Yes
Lines[].FromLocationCode string, nullable Yes
Lines[].FromLpnId string (uuid), nullable Yes The license plate the quantity left; null for loose stock or no From side.
Lines[].FromLpnCode string, nullable Yes Max length 64.
Lines[].FromStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].ToPositionId string (uuid), nullable Yes
Lines[].ToLocationId string (uuid), nullable Yes
Lines[].ToLocationCode string, nullable Yes
Lines[].ToLpnId string (uuid), nullable Yes The license plate the quantity entered; null for loose stock or no To side.
Lines[].ToLpnCode string, nullable Yes Max length 64.
Lines[].ToStatus string, one of Available, Quarantine, Damaged, nullable Yes
Lines[].LotNumber string, nullable Yes Max length 64.
Lines[].Serial string, nullable Yes Max length 64.
Lines[].ExpiryDate string (date), nullable Yes
Lines[].ReceivedOn string (date) Yes The UTC date the stock was first received.
Lines[].Quantity integer Yes The base quantity that moved; always positive. Minimum 1.
Positions array of objects Yes The after-state of every position the transaction touched, in the order first touched (none when it has no lines).
Positions[].PositionId string (uuid) Yes
Positions[].FacilityId string (uuid) Yes
Positions[].LocationId string (uuid) Yes
Positions[].LocationCode string Yes
Positions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
Positions[].LpnCode string, nullable Yes Max length 64.
Positions[].ProductId string (uuid) Yes
Positions[].Sku string Yes
Positions[].LotNumber string, nullable Yes
Positions[].Serial string, nullable Yes
Positions[].ExpiryDate string (date), nullable Yes
Positions[].ReceivedOn string (date) Yes
Positions[].StockStatus string, one of Available, Quarantine, Damaged Yes
Positions[].Quantity integer Yes Minimum 0.
Positions[].AllocatedQuantity integer Yes Minimum 0.
Allocation object Yes An allocation: stock of one product set aside for an order line, by the product’s rotation strategy. While Open or Picked it holds its lines’ unpicked quantity at their positions and its picks’ quantity at theirs; once Released or Issued, nothing. Quantities are whole base units.
Allocation.AllocationId string (uuid) Yes
Allocation.FacilityId string (uuid) Yes
Allocation.ProductId string (uuid) Yes
Allocation.Sku string Yes
Allocation.Reference string Yes The caller’s order line. Min length 1. Max length 100.
Allocation.LotNumber string, nullable Yes The lot the allocation was restricted to; null for any lot. Max length 64.
Allocation.RequestedQuantity integer Yes Minimum 1.
Allocation.AllocatedQuantity integer Yes The quantity allocated; less than requested only for a partial allocation. Minimum 1.
Allocation.PickedQuantity integer Yes Minimum 0.
Allocation.Status string, one of Open, Picked, Released, Issued Yes Open (some left to pick), Picked (every line fully picked), Released (holds nothing) or Issued (shipped: its picked stock issued and the rest released; holds nothing).
Allocation.CreatedAt string (date-time) Yes
Allocation.UpdatedAt string (date-time) Yes When it last changed; the updatedAt stamped on every position the write changed.
Allocation.Lines array of objects Yes The lines, one per position allocated from, in rotation order.
Allocation.Lines[].LineId string (uuid) Yes The line’s ID; a pick names it.
Allocation.Lines[].LineNumber integer Yes Minimum 1.
Allocation.Lines[].PositionId string (uuid) Yes The source position.
Allocation.Lines[].Quantity integer Yes The quantity allocated from the source position. Minimum 1.
Allocation.Lines[].PickedQuantity integer Yes Minimum 0.
Allocation.Lines[].Picks array of objects Yes The picks of the line, in the order made.
Allocation.Lines[].Picks[].PickId string (uuid) Yes
Allocation.Lines[].Picks[].PositionId string (uuid) Yes The destination position, holding the picked quantity as allocated.
Allocation.Lines[].Picks[].Quantity integer Yes Minimum 1.
Allocation.Lines[].Picks[].TransactionId string (uuid) Yes The ledger transaction that put the stock here, the pick’s (Type Pick) or, after a transfer moved picked stock on (replacing its picks), the transfer’s (Type Move).
Allocation.Lines[].Picks[].PickedAt string (date-time) Yes
ReleasedPositions array of objects Yes The after-state of every position where the allocation’s unpicked quantity was released (its allocated quantity lowered, the stock left where it is) and no line took stock out; empty when everything was picked.
ReleasedPositions[].PositionId string (uuid) Yes
ReleasedPositions[].FacilityId string (uuid) Yes
ReleasedPositions[].LocationId string (uuid) Yes
ReleasedPositions[].LocationCode string Yes
ReleasedPositions[].LpnId string (uuid), nullable Yes The license plate holding it; null for loose stock.
ReleasedPositions[].LpnCode string, nullable Yes Max length 64.
ReleasedPositions[].ProductId string (uuid) Yes
ReleasedPositions[].Sku string Yes
ReleasedPositions[].LotNumber string, nullable Yes
ReleasedPositions[].Serial string, nullable Yes
ReleasedPositions[].ExpiryDate string (date), nullable Yes
ReleasedPositions[].ReceivedOn string (date) Yes
ReleasedPositions[].StockStatus string, one of Available, Quarantine, Damaged Yes
ReleasedPositions[].Quantity integer Yes Minimum 0.
ReleasedPositions[].AllocatedQuantity integer Yes Minimum 0.