# RtvLineInput

input type

One caller-supplied Rtv line (create + wholesale draft edit — lineNo assigned and the junction resolved 1..N in input order by the server).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `variantId` | [ID](/types/#scalars) `ID!` | yes | The variant to return — its (variant x ship-from LF) junction must EXIST and be active (IV-b; an RTV of a variant never stocked at the LF is meaningless). |
| `quantity` | [String](/types/#scalars) `String!` | yes | The quantity to return (decimal string, strictly positive). |
| `reason` | [RtvReason](/types/RtvReason/) `RtvReason!` | yes | The canned return reason. |
| `sourceBucket` | [StockBucket](/types/StockBucket/) | no | The bucket to ship from — OPTIONAL, defaults to on_hand; on_hand / damaged / held only (reserved / in_transit refuse at the boundary). |
| `binId` | [ID](/types/#scalars) | no | Optional source bin. |
