---
title: InventoryTransfer
description: >-
  Subscribe to field-level changes on the InventoryTransfer GraphQL Admin API
  object.
api_version: unstable
source_url:
  html: 'https://shopify.dev/docs/api/events/latest/inventory-transfer'
  md: 'https://shopify.dev/docs/api/events/latest/inventory-transfer.md'
api_name: events
---

# Inventory​Transfer

**Requires \`read\_inventory\_transfers\` access scope.:**

Subscribe to field-level changes on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer) GraphQL Admin API object. You can subscribe to create, delete, and update events, and to changes to specific fields.

Each [topic](https://shopify.dev/docs/api/events/latest#configuration) corresponds to a commerce resource, such as an inventory transfer, 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.

You can't use calculated fields, derived fields, auto-updated timestamps, or cross-domain fields as triggers.

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

You can use custom queries to query the full GraphQL Admin API, not only [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer).

## shopify.app.toml

```toml
[events]
api_version = "unstable"


[[events.subscription]]
handle = "my_inventory_transfer_events"


topic = "InventoryTransfer"
actions = ["update"]
triggers = [
    "inventoryTransfer.status",
    "inventoryTransfer.tags"
]


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


query = """
query inventory_transfer_details($inventoryTransferId: ID!) {
  inventoryTransfer(id: $inventoryTransferId) {
    id
    name
    status
    tags
  }
}
"""
```

***

## Supported triggers

`InventoryTransfer` subscriptions support the following field-level [triggers](https://shopify.dev/docs/api/events/latest#configuration).

### inventoryTransfer

Fires when events involve the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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.

Collect details about changes to the object by subscribing to the trigger along with the `"update"` action, though it's recommended that you narrow your subscription to one of the other triggers below.

**Variables:** `inventoryTransferId`

### inventoryTransfer​.destination

Fires when the [`destination`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransfer#field-InventoryTransfer.fields.destination) field on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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`

### inventoryTransfer​.lineItems

Fires when the [`lineItems`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransfer#field-InventoryTransfer.fields.lineItems) field on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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 `lineItems` field represents the line items associated with the inventory transfer.

**Variables:** `inventoryTransferId`

### inventoryTransfer​.lineItems​.totalQuantity

Fires when the [`totalQuantity`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransferLineItem#field-InventoryTransferLineItem.fields.totalQuantity) field on the [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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`

### inventoryTransfer​.metafield(namespace: String!, key: String!)

Fires when the [`metafield`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransfer#field-InventoryTransfer.fields.metafield) field on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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 `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`

### inventoryTransfer​.metafield(namespace: String!, key: String!)​.value

Fires when the [`value`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Metafield#field-Metafield.fields.value) field on the [`Metafield`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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`

### inventoryTransfer​.status

Fires when the [`status`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransfer#field-InventoryTransfer.fields.status) field on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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`

### inventoryTransfer​.tags

Fires when the [`tags`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryTransfer#field-InventoryTransfer.fields.tags) field on the [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/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`

### Examples

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

  topic = "InventoryTransfer"
  actions = ["create"]
  triggers = ["inventoryTransfer"]

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

  query = """
  query inventoryTransfer_details($inventoryTransferId: ID!) {
    inventoryTransfer(id: $inventoryTransferId) {
      id
      name
      status
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "create",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE"
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123']"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: create
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-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
      }
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "destination": {
          "__typename": "LocationSnapshot"
        }
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123'].destination"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

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

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

  query = """
  query inventoryTransfer_event_payload($inventoryTransferId: ID!) {
    inventoryTransfer(id: $inventoryTransferId) {
      id
      name
      status
      lineItems(first: 10) {
        nodes {
          id
        }
      }
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "lineItems": {
          "nodes": [
            {
              "id": "gid://shopify/InventoryTransferLineItem/111"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123'].lineItems"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

  topic = "InventoryTransfer"
  actions = ["update"]
  triggers = ["inventoryTransfer.lineItems.totalQuantity"]

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

  query = """
  query inventoryTransfer_event_payload($inventoryTransferId: ID!) {
    inventoryTransfer(id: $inventoryTransferId) {
      id
      name
      status
      lineItems(first: 10) {
        nodes {
          totalQuantity
        }
      }
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "lineItems": {
          "nodes": [
            {
              "totalQuantity": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123'].lineItems.totalQuantity"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

  topic = "InventoryTransfer"
  actions = ["update"]
  triggers = ["inventoryTransfer.metafield(namespace: 'custom', key: 'material')"]

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

  query = """
  query inventoryTransfer_event_payload($inventoryTransferId: ID!, $metafieldNamespace: String!, $metafieldKey: String!) {
    inventoryTransfer(id: $inventoryTransferId) {
      id
      name
      status
      metafield(namespace: $metafieldNamespace, key: $metafieldKey) {
        namespace
        key
        value
        type
      }
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "metafield": {
          "namespace": "custom",
          "key": "material",
          "value": "Cotton",
          "type": "single_line_text_field"
        }
      }
    },
    "fields_changed": [
      "inventoryTransfer.metafield[namespace: 'custom', key: 'material']"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123",
      "metafieldKey": "material",
      "metafieldNamespace": "custom"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

  topic = "InventoryTransfer"
  actions = ["update"]
  triggers = ["inventoryTransfer.metafield(namespace: 'custom', key: 'material').value"]

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

  query = """
  query inventoryTransfer_event_payload($inventoryTransferId: ID!, $metafieldNamespace: String!, $metafieldKey: String!) {
    inventoryTransfer(id: $inventoryTransferId) {
      id
      name
      status
      metafield(namespace: $metafieldNamespace, key: $metafieldKey) {
        namespace
        key
        value
        type
      }
    }
  }
  """
  ```

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "metafield": {
          "namespace": "custom",
          "key": "material",
          "value": "Cotton",
          "type": "single_line_text_field"
        }
      }
    },
    "fields_changed": [
      "inventoryTransfer.metafield[namespace: 'custom', key: 'material'].value"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123",
      "metafieldKey": "material",
      "metafieldNamespace": "custom"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

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

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

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

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE"
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123'].status"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "inventoryTransfer-event"

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

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

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

  ##### Payload

  ```json
  {
    "topic": "InventoryTransfer",
    "action": "update",
    "handle": "inventoryTransfer-event",
    "data": {
      "inventoryTransfer": {
        "id": "gid://shopify/InventoryTransfer/123",
        "name": "Example inventorytransfer",
        "status": "ACTIVE",
        "tags": [
          "…"
        ]
      }
    },
    "fields_changed": [
      "inventoryTransfer[id: 'gid://shopify/InventoryTransfer/123'].tags"
    ],
    "query_variables": {
      "inventoryTransferId": "gid://shopify/InventoryTransfer/123"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: inventoryTransfer-event
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/InventoryTransfer/123
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: InventoryTransfer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

***
