> ## Documentation Index
> Fetch the complete documentation index at: https://redo-44af351d-docs-v3-graphql-api-reference.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# InboundShipmentItem

> A line item received (or expected) on an inbound shipment.

<ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
  When the record was created.
</ResponseField>

<ResponseField name="damagedQuantity" type="Int!" required>
  The quantity received damaged for this line item.
</ResponseField>

<ResponseField name="id" type="ID!" required>
  The id of this shipment line item.
</ResponseField>

<ResponseField name="packingMode" type={<a href="/docs/api-reference/v3/reference/procurement/packing-mode">PackingMode!</a>} required>
  How this line item is packed.
</ResponseField>

<ResponseField name="product" type={<a href="/docs/api-reference/v3/reference/catalog/product">Product</a>}>
  The product received on this line item.

  **Requires:**
  [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

  <Expandable title="fields" lazyRender>
    <ResponseField name="attribute" type={<a href="/docs/api-reference/v3/reference/catalog/attribute">Attribute</a>}>
      Look up a single attribute on this product by its name, if set.

      **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="name" type="String!" required>
          The machine name of the attribute to look up.
        </ResponseField>

        **Fields**

        <ResponseField name="description" type="String">
          An optional description of what the attribute represents.
        </ResponseField>

        <ResponseField name="displayName" type="String!" required>
          The human-readable label shown for the attribute.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The unique identifier of the attribute's definition.
        </ResponseField>

        <ResponseField name="name" type="String!" required>
          The attribute's machine name, unique within the account.
        </ResponseField>

        <ResponseField name="type" type={<a href="/docs/api-reference/v3/reference/catalog/attribute-type">AttributeType!</a>} required>
          The data type of the attribute's value.
        </ResponseField>

        <ResponseField name="value" type={<a href="/docs/api-reference/v3/reference/common/json">JSON</a>}>
          The attribute's value, resolved to the typed JSON form for its `type` — read `type` to know the shape. E.g. SHORT\_TEXT → a string, WEIGHT → \{ value, unit }, MONEY → \{ amount, currency }. Null if unset. See AttributeType for each type's shape.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="attributes" type={<a href="/docs/api-reference/v3/reference/catalog/attribute">[Attribute!]!</a>} required>
      The merchant-defined attributes set on this product.

      <Expandable title="fields" lazyRender>
        <ResponseField name="description" type="String">
          An optional description of what the attribute represents.
        </ResponseField>

        <ResponseField name="displayName" type="String!" required>
          The human-readable label shown for the attribute.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The unique identifier of the attribute's definition.
        </ResponseField>

        <ResponseField name="name" type="String!" required>
          The attribute's machine name, unique within the account.
        </ResponseField>

        <ResponseField name="type" type={<a href="/docs/api-reference/v3/reference/catalog/attribute-type">AttributeType!</a>} required>
          The data type of the attribute's value.
        </ResponseField>

        <ResponseField name="value" type={<a href="/docs/api-reference/v3/reference/common/json">JSON</a>}>
          The attribute's value, resolved to the typed JSON form for its `type` — read `type` to know the shape. E.g. SHORT\_TEXT → a string, WEIGHT → \{ value, unit }, MONEY → \{ amount, currency }. Null if unset. See AttributeType for each type's shape.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="barcodes" type="[String!]!" required>
      Barcodes associated with this product.
    </ResponseField>

    <ResponseField name="cost" type={<a href="/docs/api-reference/v3/reference/common/money">Money</a>}>
      The merchant's unit cost for the product.

      <Expandable title="fields" lazyRender>
        <ResponseField name="amount" type={<a href="/docs/api-reference/v3/reference/common/decimal">Decimal!</a>} required>
          The exact amount as a decimal string (e.g. "19.99").
        </ResponseField>

        <ResponseField name="currency" type="String!" required>
          ISO 4217 currency code (e.g. USD).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
      When the record was created.
    </ResponseField>

    <ResponseField name="description" type="String!" required>
      The product's long-form description.
    </ResponseField>

    <ResponseField name="dimensions" type={<a href="/docs/api-reference/v3/reference/catalog/dimensions">Dimensions</a>}>
      The product's length, width, and height, expressed in a single shared unit.

      <Expandable title="fields" lazyRender>
        <ResponseField name="height" type="Float">
          The height, in `unit`.
        </ResponseField>

        <ResponseField name="length" type="Float">
          The length, in `unit`.
        </ResponseField>

        <ResponseField name="unit" type={<a href="/docs/api-reference/v3/reference/catalog/dimension-unit">DimensionUnit!</a>} required>
          The unit all three measurements are expressed in.
        </ResponseField>

        <ResponseField name="width" type="Float">
          The width, in `unit`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="hsCode" type="String">
      The Harmonized System code used for customs.
    </ResponseField>

    <ResponseField name="id" type="ID!" required>
      The id of this product.
    </ResponseField>

    <ResponseField name="image" type={<a href="/docs/api-reference/v3/reference/catalog/product-image">ProductImage</a>}>
      The first (default) image for this product, if any.

      **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

      <Expandable title="fields" lazyRender>
        <ResponseField name="altText" type="String!" required>
          Alternative text describing the image.
        </ResponseField>

        <ResponseField name="default" type="Boolean!" required>
          Whether this is the default image.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The id of this image.
        </ResponseField>

        <ResponseField name="position" type="Int!" required>
          The image's ordering position.
        </ResponseField>

        <ResponseField name="url" type="String!" required>
          The public URL of the image.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="images" type={<a href="/docs/api-reference/v3/pagination">ProductImageConnection!</a>} required>
      A paginated list of the product's images.

      **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="after" type="String">
          Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
        </ResponseField>

        <ResponseField name="before" type="String">
          Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
        </ResponseField>

        <ResponseField name="first" type="Int">
          Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
        </ResponseField>

        <ResponseField name="last" type="Int">
          Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
        </ResponseField>

        **Fields**

        <ResponseField name="edges" type={<a href="/docs/api-reference/v3/pagination">[ProductImageEdge!]!</a>} required>
          The list of edges (each a node plus its pagination `cursor`).
        </ResponseField>

        <ResponseField name="nodes" type={<a href="/docs/api-reference/v3/reference/catalog/product-image">[ProductImage!]!</a>} required>
          The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.
        </ResponseField>

        <ResponseField name="pageInfo" type={<a href="/docs/api-reference/v3/pagination">PageInfo!</a>} required>
          Pagination metadata for the current page.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="inventoryLevel" type={<a href="/docs/api-reference/v3/reference/inventory/location-inventory-level">LocationInventoryLevel</a>}>
      This product's inventory level at a single location, if any.

      **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="locationId" type="ID!" required>
          The id of the location to fetch the level at.
        </ResponseField>

        **Fields**

        <ResponseField name="available" type="Int!" required>
          The quantity available to sell.
        </ResponseField>

        <ResponseField name="buildable" type="Int!" required>
          The quantity that can be built from components.
        </ResponseField>

        <ResponseField name="committed" type="Int!" required>
          The quantity committed to existing orders.
        </ResponseField>

        <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was created.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The id of this inventory level.
        </ResponseField>

        <ResponseField name="inventoryProduct" type={<a href="/docs/api-reference/v3/reference/inventory/inventory-product">InventoryProduct</a>}>
          A fulfillment-oriented view of the product, readable by anyone who can see this level (e.g. a 3PL). For the full product, use `product`.

          **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)
        </ResponseField>

        <ResponseField name="location" type={<a href="/docs/api-reference/v3/reference/inventory/location">Location</a>}>
          The location these inventory levels are held at.

          **Requires:** [`locations_read`](/docs/api-reference/v3/reference/scopes#scope-locations_read)
        </ResponseField>

        <ResponseField name="product" type={<a href="/docs/api-reference/v3/reference/catalog/product">Product</a>}>
          The full product these inventory levels are for. Only readable by the account that owns the product; use `inventoryProduct` otherwise.

          **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)
        </ResponseField>

        <ResponseField name="quantity" type="Int!" required>
          The total quantity on hand at the location.
        </ResponseField>

        <ResponseField name="reserved" type="Int!" required>
          The quantity reserved across all reservation buckets.
        </ResponseField>

        <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was last updated.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="inventoryLevels" type={<a href="/docs/api-reference/v3/pagination">LocationInventoryLevelConnection!</a>} required>
      Per-location inventory levels for this product.

      **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="after" type="String">
          Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
        </ResponseField>

        <ResponseField name="before" type="String">
          Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
        </ResponseField>

        <ResponseField name="first" type="Int">
          Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
        </ResponseField>

        <ResponseField name="last" type="Int">
          Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
        </ResponseField>

        **Fields**

        <ResponseField name="edges" type={<a href="/docs/api-reference/v3/pagination">[LocationInventoryLevelEdge!]!</a>} required>
          The list of edges (each a node plus its pagination `cursor`).
        </ResponseField>

        <ResponseField name="nodes" type={<a href="/docs/api-reference/v3/reference/inventory/location-inventory-level">[LocationInventoryLevel!]!</a>} required>
          The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.
        </ResponseField>

        <ResponseField name="pageInfo" type={<a href="/docs/api-reference/v3/pagination">PageInfo!</a>} required>
          Pagination metadata for the current page.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="options" type={<a href="/docs/api-reference/v3/reference/catalog/product-option-value">[ProductOptionValue!]!</a>} required>
      The variant's selected option values (e.g. Size: M, Color: Red), ordered by the family's option positions.

      <Expandable title="fields" lazyRender>
        <ResponseField name="name" type="String!" required>
          The option name, e.g. Size.
        </ResponseField>

        <ResponseField name="value" type="String!" required>
          The selected value, e.g. M.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="originCountry" type="String">
      The country of origin, as a country code.
    </ResponseField>

    <ResponseField name="physicalItem" type="Boolean!" required>
      Whether the product is a physical, shippable item.
    </ResponseField>

    <ResponseField name="price" type={<a href="/docs/api-reference/v3/reference/common/money">Money</a>}>
      The product's selling price.

      <Expandable title="fields" lazyRender>
        <ResponseField name="amount" type={<a href="/docs/api-reference/v3/reference/common/decimal">Decimal!</a>} required>
          The exact amount as a decimal string (e.g. "19.99").
        </ResponseField>

        <ResponseField name="currency" type="String!" required>
          ISO 4217 currency code (e.g. USD).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="productFamily" type={<a href="/docs/api-reference/v3/reference/catalog/product-family">ProductFamily</a>}>
      The product family this product belongs to, if any.

      **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

      <Expandable title="fields" lazyRender>
        <ResponseField name="attribute" type={<a href="/docs/api-reference/v3/reference/catalog/attribute">Attribute</a>}>
          Look up a single attribute on this family by its name, if set.

          **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

          <Expandable title="fields" lazyRender>
            **Arguments**

            <ResponseField name="name" type="String!" required>
              The machine name of the attribute to look up.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="attributes" type={<a href="/docs/api-reference/v3/reference/catalog/attribute">[Attribute!]!</a>} required>
          The merchant-defined attributes set on this family.
        </ResponseField>

        <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was created.
        </ResponseField>

        <ResponseField name="description" type="String!" required>
          The product family's long-form description.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The id of this product family.
        </ResponseField>

        <ResponseField name="image" type={<a href="/docs/api-reference/v3/reference/catalog/product-family-image">ProductFamilyImage</a>}>
          The first (default) image for this family, if any.

          **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)
        </ResponseField>

        <ResponseField name="images" type={<a href="/docs/api-reference/v3/pagination">ProductFamilyImageConnection!</a>} required>
          A paginated list of the family's images.

          **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

          <Expandable title="fields" lazyRender>
            **Arguments**

            <ResponseField name="after" type="String">
              Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
            </ResponseField>

            <ResponseField name="before" type="String">
              Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
            </ResponseField>

            <ResponseField name="first" type="Int">
              Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
            </ResponseField>

            <ResponseField name="last" type="Int">
              Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="options" type={<a href="/docs/api-reference/v3/reference/catalog/product-family-option">[ProductFamilyOption!]!</a>} required>
          The variant options (e.g. Size, Color) for this family.
        </ResponseField>

        <ResponseField name="products" type={<a href="/docs/api-reference/v3/pagination">ProductConnection!</a>} required>
          A paginated list of the products (variants) in this family.

          **Requires:** [`products_read`](/docs/api-reference/v3/reference/scopes#scope-products_read)

          <Expandable title="fields" lazyRender>
            **Arguments**

            <ResponseField name="after" type="String">
              Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
            </ResponseField>

            <ResponseField name="before" type="String">
              Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
            </ResponseField>

            <ResponseField name="first" type="Int">
              Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
            </ResponseField>

            <ResponseField name="last" type="Int">
              Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="tags" type="[String!]!" required>
          Free-form tags applied to the product family.
        </ResponseField>

        <ResponseField name="title" type="String!" required>
          The product family's title.
        </ResponseField>

        <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was last updated.
        </ResponseField>

        <ResponseField name="vendor" type="String">
          The vendor or manufacturer of the product family.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="sku" type="String">
      The stock keeping unit identifying this product.
    </ResponseField>

    <ResponseField name="tags" type="[String!]!" required>
      Free-form tags applied to the product.
    </ResponseField>

    <ResponseField name="taxCode" type="String">
      The tax code used to classify the product for taxation.
    </ResponseField>

    <ResponseField name="taxable" type="Boolean!" required>
      Whether the product is subject to tax.
    </ResponseField>

    <ResponseField name="title" type="String!" required>
      The product's title.
    </ResponseField>

    <ResponseField name="upc" type="String">
      The Universal Product Code for this product.
    </ResponseField>

    <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
      When the record was last updated.
    </ResponseField>

    <ResponseField name="vendor" type="String">
      The vendor or manufacturer of the product.
    </ResponseField>

    <ResponseField name="weight" type={<a href="/docs/api-reference/v3/reference/catalog/weight">Weight</a>}>
      The product's weight.

      <Expandable title="fields" lazyRender>
        <ResponseField name="unit" type={<a href="/docs/api-reference/v3/reference/catalog/weight-unit">WeightUnit!</a>} required>
          The unit the value is expressed in.
        </ResponseField>

        <ResponseField name="value" type="Float!" required>
          The numeric magnitude of the weight.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="purchaseOrder" type={<a href="/docs/api-reference/v3/reference/procurement/purchase-order">PurchaseOrder</a>}>
  The purchase order this received item was ordered on, if any.

  **Requires:**
  [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

  <Expandable title="fields" lazyRender>
    <ResponseField name="closedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime</a>}>
      When the purchase order was closed.
    </ResponseField>

    <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
      When the record was created.
    </ResponseField>

    <ResponseField name="id" type="ID!" required>
      The id of this purchase order.
    </ResponseField>

    <ResponseField name="items" type={<a href="/docs/api-reference/v3/pagination">PurchaseOrderItemConnection!</a>} required>
      A paginated list of the order's line items.

      **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="after" type="String">
          Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
        </ResponseField>

        <ResponseField name="before" type="String">
          Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
        </ResponseField>

        <ResponseField name="first" type="Int">
          Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
        </ResponseField>

        <ResponseField name="last" type="Int">
          Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
        </ResponseField>

        **Fields**

        <ResponseField name="edges" type={<a href="/docs/api-reference/v3/pagination">[PurchaseOrderItemEdge!]!</a>} required>
          The list of edges (each a node plus its pagination `cursor`).
        </ResponseField>

        <ResponseField name="nodes" type={<a href="/docs/api-reference/v3/reference/procurement/purchase-order-item">[PurchaseOrderItem!]!</a>} required>
          The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.
        </ResponseField>

        <ResponseField name="pageInfo" type={<a href="/docs/api-reference/v3/pagination">PageInfo!</a>} required>
          Pagination metadata for the current page.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="location" type={<a href="/docs/api-reference/v3/reference/inventory/location">Location</a>}>
      The location the order's inventory is destined for.

      **Requires:** [`locations_read`](/docs/api-reference/v3/reference/scopes#scope-locations_read)

      <Expandable title="fields" lazyRender>
        <ResponseField name="city" type="String">
          The city of the location's address.
        </ResponseField>

        <ResponseField name="company" type="String">
          The company name associated with the location.
        </ResponseField>

        <ResponseField name="countryCode" type="String">
          The country code, e.g. "US".
        </ResponseField>

        <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was created.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The id of this location.
        </ResponseField>

        <ResponseField name="inventoryLevels" type={<a href="/docs/api-reference/v3/pagination">LocationInventoryLevelConnection!</a>} required>
          Per-product inventory levels held at this location.

          **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

          <Expandable title="fields" lazyRender>
            **Arguments**

            <ResponseField name="after" type="String">
              Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
            </ResponseField>

            <ResponseField name="before" type="String">
              Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
            </ResponseField>

            <ResponseField name="first" type="Int">
              Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
            </ResponseField>

            <ResponseField name="last" type="Int">
              Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="name" type="String!" required>
          The location's display name.
        </ResponseField>

        <ResponseField name="phone" type="String">
          The contact phone number for the location.
        </ResponseField>

        <ResponseField name="postalCode" type="String">
          The postal or ZIP code, e.g. "84101".
        </ResponseField>

        <ResponseField name="stateCode" type="String">
          The state or province code, e.g. "UT".
        </ResponseField>

        <ResponseField name="street1" type="String">
          The first line of the street address.
        </ResponseField>

        <ResponseField name="street2" type="String">
          The second line of the street address.
        </ResponseField>

        <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was last updated.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="note" type="String">
      An internal note on the purchase order.
    </ResponseField>

    <ResponseField name="orderedAt" type={<a href="/docs/api-reference/v3/reference/common/date">Date</a>}>
      The date the order was placed with the supplier.
    </ResponseField>

    <ResponseField name="poNumber" type="String!" required>
      The merchant-facing purchase order number.
    </ResponseField>

    <ResponseField name="referenceNumber" type="String">
      An external reference for the purchase order.
    </ResponseField>

    <ResponseField name="shipments" type={<a href="/docs/api-reference/v3/pagination">InboundShipmentConnection!</a>} required>
      Inbound shipments fulfilling this purchase order.

      **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="after" type="String">
          Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
        </ResponseField>

        <ResponseField name="before" type="String">
          Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
        </ResponseField>

        <ResponseField name="first" type="Int">
          Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
        </ResponseField>

        <ResponseField name="last" type="Int">
          Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
        </ResponseField>

        **Fields**

        <ResponseField name="edges" type={<a href="/docs/api-reference/v3/pagination">[InboundShipmentEdge!]!</a>} required>
          The list of edges (each a node plus its pagination `cursor`).
        </ResponseField>

        <ResponseField name="nodes" type={<a href="/docs/api-reference/v3/reference/procurement/inbound-shipment">[InboundShipment!]!</a>} required>
          The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.
        </ResponseField>

        <ResponseField name="pageInfo" type={<a href="/docs/api-reference/v3/pagination">PageInfo!</a>} required>
          Pagination metadata for the current page.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="status" type={<a href="/docs/api-reference/v3/reference/procurement/purchase-order-status">PurchaseOrderStatus!</a>} required>
      The current lifecycle status of the purchase order.
    </ResponseField>

    <ResponseField name="supplier" type={<a href="/docs/api-reference/v3/reference/procurement/supplier">Supplier</a>}>
      The supplier the order was placed with.

      **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

      <Expandable title="fields" lazyRender>
        <ResponseField name="contacts" type={<a href="/docs/api-reference/v3/reference/procurement/supplier-contact">[SupplierContact!]!</a>} required>
          The contact people at this supplier.
        </ResponseField>

        <ResponseField name="createdAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was created.
        </ResponseField>

        <ResponseField name="currency" type="String">
          The ISO 4217 currency code the supplier transacts in.
        </ResponseField>

        <ResponseField name="id" type="ID!" required>
          The id of this supplier.
        </ResponseField>

        <ResponseField name="leadTimeDays" type="Int">
          The supplier's typical lead time, in days.
        </ResponseField>

        <ResponseField name="name" type="String!" required>
          The supplier's name.
        </ResponseField>

        <ResponseField name="phone" type="String">
          The supplier's phone number.
        </ResponseField>

        <ResponseField name="productVendors" type="[String!]!" required>
          Product vendor names associated with this supplier.
        </ResponseField>

        <ResponseField name="purchaseOrders" type={<a href="/docs/api-reference/v3/pagination">PurchaseOrderConnection!</a>} required>
          Purchase orders placed with this supplier.

          **Requires:** [`inventory_read`](/docs/api-reference/v3/reference/scopes#scope-inventory_read)

          <Expandable title="fields" lazyRender>
            **Arguments**

            <ResponseField name="after" type="String">
              Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
            </ResponseField>

            <ResponseField name="before" type="String">
              Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
            </ResponseField>

            <ResponseField name="first" type="Int">
              Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
            </ResponseField>

            <ResponseField name="last" type="Int">
              Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
          When the record was last updated.
        </ResponseField>

        <ResponseField name="website" type="String">
          The supplier's website URL.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="supplierNote" type="String">
      A note shared with the supplier.
    </ResponseField>

    <ResponseField name="tags" type="[String!]!" required>
      Free-form tags applied to the purchase order.
    </ResponseField>

    <ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
      When the record was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="quantity" type="Int!" required>
  The quantity expected on this line item.
</ResponseField>

<ResponseField name="receivedQuantity" type="Int!" required>
  The quantity received for this line item.
</ResponseField>

<ResponseField name="updatedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
  When the record was last updated.
</ResponseField>
