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.
InventoryReceived
Section titled “InventoryReceived”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. |
InventoryAdjusted
Section titled “InventoryAdjusted”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. |
InventoryMoved
Section titled “InventoryMoved”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 |
InventoryHeld
Section titled “InventoryHeld”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. |
InventoryReleased
Section titled “InventoryReleased”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. |
InventoryAllocated
Section titled “InventoryAllocated”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. |
InventoryPicked
Section titled “InventoryPicked”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 |
InventoryAllocationReleased
Section titled “InventoryAllocationReleased”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. |
LpnCreated
Section titled “LpnCreated”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 |
LpnStatusChanged
Section titled “LpnStatusChanged”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. |
CycleCountOpened
Section titled “CycleCountOpened”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. |
CycleCountSubmitted
Section titled “CycleCountSubmitted”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. |
CycleCountClosed
Section titled “CycleCountClosed”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. |
CountPlanCreated
Section titled “CountPlanCreated”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 |
CountPlanUpdated
Section titled “CountPlanUpdated”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 |
CountPlanStatusChanged
Section titled “CountPlanStatusChanged”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 |
InventoryCommandCompleted
Section titled “InventoryCommandCompleted”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 |
InventoryCommandRejected
Section titled “InventoryCommandRejected”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 |
InventoryIssued
Section titled “InventoryIssued”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. |