Skip to main content

InventoryTransfer

Requires read_inventory_transfers access scope.

Supported actions: create, update, delete

Subscribe to field-level changes on the InventoryTransfer GraphQL Admin API object.

Each topic corresponds to a commerce resource that can exist independently within its domain. Child entities that depend on a parent within the same domain don't have their own topic. Instead, changes to child entities trigger a delivery on the parent topic. Calculated fields, derived fields, auto-updated timestamps, and cross-domain fields aren't available as triggers.

shopify.app.toml

[events]
api_version = "2026-10"

[[events.subscription]]
handle = "my_inventory-transfer_event"

topic = "InventoryTransfer"
actions = ["update"]
triggers = ["inventoryTransfer.destination"]

uri = "https://your-app.com/events"

query = """
query inventoryTransfer_event_payload($inventoryTransferId: ID!) {
inventoryTransfer(id: $inventoryTransferId) {
id
name
status
destination {
__typename
}
}
}
"""

Field-level triggers for InventoryTransfer subscriptions.

All triggers require the read_inventory_transfers access scope. Those triggers that require additional scopes are documented where relevant. Deprecated triggers are listed last.

Subscriptions can include multiple triggers. Use the shopify-webhook-id header for deduplication when handling duplicate deliveries.

Custom queries aren't limited to InventoryTransfer. They can query the full GraphQL Admin API.

Anchor to list-of-topics-inventoryTransfer.*
inventoryTransfer.*

Fires when events involve the InventoryTransfer object.

The "create" and "delete" actions are only relevant within the context of this parent topic. Use fields_changed to follow or replicate impacted data after a delete event. Define a custom query to retrieve specific fields from create events.

inventoryTransfer.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryTransfer, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Variables: inventoryTransferId

Anchor to list-of-topics-inventoryTransfer.destination
inventoryTransfer.destination

Fires when the destination field on the InventoryTransfer object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Snapshot of the destination location (name, address, when snapped) with an optional link to the live Location object.

Variables: inventoryTransferId

Anchor to list-of-topics-inventoryTransfer.lineItems.*
inventoryTransfer.lineItems.*

Fires when the lineItems field on the InventoryTransfer object changes.

inventoryTransfer.lineItems.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryTransfer.lineItems, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The lineItems field represents the line items associated with the inventory transfer.

Variables: inventoryTransferId

Anchor to list-of-topics-inventoryTransfer.lineItems.totalQuantity
inventoryTransfer.lineItems.totalQuantity

Fires when the totalQuantity field on the InventoryTransferLineItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The totalQuantity field represents the total quantity of items being transferred.

Variables: inventoryTransferId

Anchor to list-of-topics-inventoryTransfer.metafield(namespace: String!, key: String!).*
inventoryTransfer.metafield(namespace: String!, key: String!).*

Fires when the metafield field on the InventoryTransfer object changes.

inventoryTransfer.metafield(namespace: String!, key: String!).* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryTransfer.metafield(namespace: String!, key: String!), including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The metafield field represents a custom field, including its namespace and key, that's associated with a Shopify resource for the purposes of adding and storing additional information.

Variables: inventoryTransferId, metafieldKey, metafieldNamespace

Anchor to list-of-topics-inventoryTransfer.metafield(namespace: String!).*
inventoryTransfer.metafield(namespace: String!).*

Fires when the metafield field on the InventoryTransfer object changes.

inventoryTransfer.metafield(namespace: String!).* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryTransfer.metafield(namespace: String!), including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

This subscription omits the optional argument metafield.key.

The metafield field represents a custom field, including its namespace and key, that's associated with a Shopify resource for the purposes of adding and storing additional information.

Variables: inventoryTransferId, metafieldKey, metafieldNamespace

Anchor to list-of-topics-inventoryTransfer.metafield(namespace: String!, key: String!).value
inventoryTransfer.metafield(namespace: String!, key: String!).value

Fires when the value field on the Metafield object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The value field represents the data stored in the metafield.

Variables: inventoryTransferId, metafieldKey, metafieldNamespace

Anchor to list-of-topics-inventoryTransfer.metafield(namespace: String!).value
inventoryTransfer.metafield(namespace: String!).value

Fires when the value field on the Metafield object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

This subscription omits the optional argument metafield.key.

The value field represents the data stored in the metafield.

Variables: inventoryTransferId, metafieldKey, metafieldNamespace

Anchor to list-of-topics-inventoryTransfer.status
inventoryTransfer.status

Fires when the status field on the InventoryTransfer object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The status field represents the current status of the transfer.

Variables: inventoryTransferId

Anchor to list-of-topics-inventoryTransfer.tags
inventoryTransfer.tags

Fires when the tags field on the InventoryTransfer object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The tags field contains a list of tags that have been added to the inventory transfer.

Variables: inventoryTransferId


Was this page helpful?