---
title: >-
  Adding barcode support to inventory shipments API - Shopify developer
  changelog
description: >-
  Shopify’s developer changelog documents all changes to Shopify’s platform.
  Find the latest news and learn about new platform opportunities.
source_url:
  html: >-
    https://shopify.dev/changelog/posts/adding-barcode-support-to-inventory-shipments-api
  md: >-
    https://shopify.dev/changelog/posts/adding-barcode-support-to-inventory-shipments-api.md
metadata:
  effectiveApiVersion: 2026-04
  affectedApi:
    - displayName: Admin GraphQL API
      handle: admin-graphql
  primaryTag:
    displayName: API
    handle: api
  secondaryTag:
    displayName: New
    handle: new
  indicatesActionRequired: false
  createdAt: '2026-03-12T11:44:13-04:00'
  postedAt: '2026-03-23T12:00:00-04:00'
  updatedAt: '2026-03-13T11:06:06-04:00'
  effectiveAt: '2026-03-23T12:00:00-04:00'
---

March 23, 2026

# Adding barcode support to inventory shipments API

DateMarch 23, 2026

Version[2026-04](https://shopify.dev/changelog?api_version=2026-04)

FlagsNew

SurfacesAPI

Affected APIs[Admin GraphQL API](https://shopify.dev/changelog?api_type=admin-graphql)

We're adding barcode support to inventory shipments in version `2026-04`, enabling merchants to assign barcodes to shipments for faster receiving workflows.

The following API changes are included:

**New field on [`InventoryShipment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipment)**

* `barcode: String` - A nullable field representing the unique barcode assigned to a shipment.

**Updated [`inventoryShipmentCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryShipmentCreate) mutation**

* The [`InventoryShipmentCreateInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/InventoryShipmentCreateInput) now accepts an optional `barcode: String` field to assign a barcode when creating a shipment.

**New [`inventoryShipmentSetBarcode`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryShipmentSetBarcode) mutation**

* Sets or clears the barcode on an existing shipment. Pass an empty string to clear the barcode.

Example usage:

```graphql
mutation {
  inventoryShipmentSetBarcode(
    inventoryShipmentId: "gid://shopify/InventoryShipment/123"
    barcode: "SHIP-2026-0001"
  ) {
    inventoryShipment {
      id
      barcode
    }
    userErrors {
      code
      field
      message
    }
  }
}
```

**What you need to know**

* Barcodes must be unique per shop. Two shipments in the same shop cannot share the same barcode.
* Barcodes have a maximum length of `255` characters.
* Leading/trailing whitespace is automatically stripped. Barcodes consisting only of whitespace are treated as empty.

**Error codes**

* `DUPLICATE_BARCODE`: Another shipment in the same shop already has this barcode.
* `SHIPMENT_NOT_FOUND`: The specified shipment does not exist.
* `BARCODE_TOO_LONG`: The barcode exceeds the maximum length of `255` characters.

**Why we made this change** Merchants transferring inventory between locations, for example, from a warehouse to a retail store, currently have to scan and receive each item in a shipment one by one. This is slow and error-prone for large shipments. Shipment barcodes let warehouse systems and 3PLs attach a scannable identifier (such as a GS1-128 code) to a shipment so that the entire shipment can be identified and received in a single scan.
