--- title: inventoryTransferSetItems - GraphQL Admin description: >- This mutation sets the quantity for one or more line items on a Transfer. Only the items you include in the `lineItems` field are updated. Items already on the transfer but not referenced in your update will stay unchanged. Each inventory item may appear at most once in `lineItems`; duplicate `inventoryItemId` entries are rejected. For each entry in `lineItems`: - If the inventory item isn't yet on the transfer, a new line item is added with the provided quantity. - If the inventory item is already on the transfer, the provided quantity replaces the line item's [`processableQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem#field-InventoryTransferLineItem.fields.processableQuantity). Any quantity outside the processable portion (for example, already shipped or picked for shipment) is preserved, so the resulting total quantity equals the preserved portion plus the provided quantity. Passing a quantity of `0` is only allowed for transfers in `DRAFT` status; on `READY_TO_SHIP` or `IN_PROGRESS` transfers it returns an `INVALID_QUANTITY` error. On `DRAFT` transfers, `quantity: 0` leaves a zero-quantity line item on the transfer; it does not remove the item. To remove a line item from a transfer, use [`inventoryTransferRemoveItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferRemoveItems). > Caution: > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). api_version: 2025-10 api_name: admin type: mutation api_type: graphql source_url: html: >- https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/inventoryTransferSetItems md: >- https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/inventoryTransferSetItems.md metadata: domain: admin --- # inventory​Transfer​Set​Items mutation Requires `write_inventory_transfers` access scope. Also: The user must have permission to manage inventory. This mutation sets the quantity for one or more line items on a Transfer. Only the items you include in the `lineItems` field are updated. Items already on the transfer but not referenced in your update will stay unchanged. Each inventory item may appear at most once in `lineItems`; duplicate `inventoryItemId` entries are rejected. For each entry in `lineItems`: * If the inventory item isn't yet on the transfer, a new line item is added with the provided quantity. * If the inventory item is already on the transfer, the provided quantity replaces the line item's [`processableQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem#field-InventoryTransferLineItem.fields.processableQuantity). Any quantity outside the processable portion (for example, already shipped or picked for shipment) is preserved, so the resulting total quantity equals the preserved portion plus the provided quantity. Passing a quantity of `0` is only allowed for transfers in `DRAFT` status; on `READY_TO_SHIP` or `IN_PROGRESS` transfers it returns an `INVALID_QUANTITY` error. On `DRAFT` transfers, `quantity: 0` leaves a zero-quantity line item on the transfer; it does not remove the item. To remove a line item from a transfer, use [`inventoryTransferRemoveItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferRemoveItems). *** **Caution:** As of 2026-01, this mutation supports an optional idempotency key using the \@idempotent\ directive. As of 2026-04, the idempotency key is required and must be provided using the \@idempotent\ directive. For more information, see the \idempotency documentation\. *** ## Arguments * input [Inventory​Transfer​Set​Items​Input!](https://shopify.dev/docs/api/admin-graphql/2025-10/input-objects/InventoryTransferSetItemsInput) required The input fields for the InventoryTransferSetItems mutation. *** ## Inventory​Transfer​Set​Items​Payload returns * inventory​Transfer [Inventory​Transfer](https://shopify.dev/docs/api/admin-graphql/2025-10/objects/InventoryTransfer) The Transfer with its line items updated. * updated​Line​Items [\[Inventory​Transfer​Line​Item​Update!\]](https://shopify.dev/docs/api/admin-graphql/2025-10/objects/InventoryTransferLineItemUpdate) The updated line items. * user​Errors [\[Inventory​Transfer​Set​Items​User​Error!\]!](https://shopify.dev/docs/api/admin-graphql/2025-10/objects/InventoryTransferSetItemsUserError) non-null The list of errors that occurred from executing the mutation. *** ## Examples * ### inventoryTransferSetItems reference