# InventoryEntry

object type

ONE posted Stock-Card movement fact: the magnitude rides quantity (POSITIVE), the direction rides fromBucket/toBucket (the classic in/out card form; a bucket balance = sum of to minus sum of from). sysId-LESS (the class); IMMUTABLE — NO update or doom op exists; posted ONLY by the movement mutations in ONE transaction with the II cache stamp.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `id` | [ID](/types/#scalars) `ID!` | No further notes. |
| `type` | [String](/types/#scalars) `String!` | No further notes. |
| `caption` | [String](/types/#scalars) `String!` | The derived display caption — movement + quantity; never editable. |
| `status` | [String](/types/#scalars) `String!` | The FSM state: active \| doomed (doomed = VOIDED, reserved for a future void-family flow — excluded from the card and the verify sum). |
| `parentId` | [ID](/types/#scalars) `ID!` | The parent InventoryItem. |
| `rootId` | [ID](/types/#scalars) `ID!` | No further notes. |
| `movement` | [StockMovementType](/types/StockMovementType/) `StockMovementType!` | The canned movement type (SPEC_REGISTRY — the ops produce receive \| adjust \| reclass). |
| `quantity` | [String](/types/#scalars) `String!` | The movement MAGNITUDE — a POSITIVE strict decimal string in the variant stock UoM; direction rides the buckets. |
| `fromBucket` | [StockBucket](/types/StockBucket/) | The bucket this movement DRAINS (adjust-down · reclass source); absent for receive / adjust-up. |
| `toBucket` | [StockBucket](/types/StockBucket/) | The bucket this movement FILLS (receive · adjust-up · reclass target); absent for adjust-down. |
| `unitCost` | [MoneyEntry](/types/MoneyEntry/) | The receive unit cost. Receive-only. |
| `costImpact` | [CostImpact](/types/CostImpact/) | The SIGNED value delta this movement caused; absent when no cost basis exists. |
| `reason` | [String](/types/#scalars) | The reason code/text — REQUIRED on adjust; carries the canned held reason on a reclass into held. |
| `refs` | [String](/types/#scalars) `[String!]` | Provenance document refs (bounded free strings — the PO/receipt refs land typed). |
| `overcommitted` | [Boolean](/types/#scalars) | Present (true) EXACTLY when this movement drove a touched bucket negative. |
| `fromBinId` | [ID](/types/#scalars) | The bin this movement LEFT. |
| `toBinId` | [ID](/types/#scalars) | The bin this movement ENTERED. |
| `lotCode` | [String](/types/#scalars) | The lot identity the relocate moved. |
| `createdAt` | [String](/types/#scalars) `String!` | No further notes. |
| `updatedAt` | [String](/types/#scalars) `String!` | No further notes. |
| `revision` | [ID](/types/#scalars) `ID!` | No further notes. |
| `revisionNum` | [Int](/types/#scalars) `Int!` | No further notes. |

## Used by

- [stockCard](/reference/reading-your-records/stockCard/)
