# TransferLine

object type

One embedded Transfer line.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `lineNo` | [Int](/types/#scalars) `Int!` | 1-based position (create input order) — the receipt/resolution addressing key. |
| `inventoryItemId` | [ID](/types/#scalars) `ID!` | The SOURCE InventoryItem id (variant x source LF). |
| `destinationInventoryItemId` | [ID](/types/#scalars) `ID!` | The DESTINATION InventoryItem id (same variant x destination LF) — server-resolved at create (IV-b: the junction must already exist; movements never auto-vivify). |
| `variantId` | [ID](/types/#scalars) `ID!` | The variant both junctions share (provenance — server-resolved at create). |
| `quantity` | [String](/types/#scalars) `String!` | The quantity to move (decimal string, stock UoM, strictly positive). |
| `unitCost` | [MoneyEntry](/types/MoneyEntry/) | The carried unit cost — birth-stamped at SHIP from the source WMA; absent until then, and absent forever on an un-costed source book. |
| `shippedQty` | [String](/types/#scalars) `String!` | Rollup: quantity shipped (a light transfer stamps it at its one completing step). |
| `receivedQty` | [String](/types/#scalars) `String!` | Rollup: quantity landed at the destination (on_hand + held together). |
| `heldQty` | [String](/types/#scalars) `String!` | Rollup: the held subset of receivedQty (quarantine landings). |
| `resolvedQty` | [String](/types/#scalars) `String!` | Rollup: residual quantity disposed via resolve (disposition-coded doc-referencing movements). |
| `unplannedQty` | [String](/types/#scalars) | Rollup: DECLARED surplus booked at receive (the accepted-unplanned lane, absent = 0). OUTSIDE receivedQty by design — the over-receipt outstanding math stays pure. |
| `transferRequestId` | [ID](/types/#scalars) | The originating TransferRequest — present iff this Transfer was born by an acceptance. |
| `requestLineNo` | [Int](/types/#scalars) | The originating request line number (1-based on THAT doc) — travels with transferRequestId. |
