Channels API

Applies to: Channels API

Learn how to use a Square API to retrieve channel information for a Square seller.

Link to section

Overview

The Square Channels API allows you to manage and retrieve information about channels associated with a seller's account. A channel represents the link between a seller and the platforms or services where they conduct business — the medium through which buyers and sellers interact. Conceptually, a channel serves as an abstraction or interface that can be implemented by various objects or entities within the Square ecosystem.

A channel can be one of the following classes:

  • Sales channel - The mechanism that created an Order, order line items, or both.
  • Marketing channel - The mechanism that sourced the traffic that resulted in an order. This is generally limited to channels (internal or external) that directly pull product or service listings from the Square platform.
  • Fulfillment channel - The mechanism that fulfilled the Order.

A Channel object can be associated with various platform concepts through its reference field. The Reference object includes:

  • type - The type of platform concept (required).
  • id - The ID of the referenced entity (required).
Link to section

Available endpoints

The Channels API provides the following endpoints for retrieving channel information:

Link to section

Working with channels

The Channels API gives your application the ability to report on the marketing, sales, and fulfillment channels available to a seller and which products and services are available through each channel.

Link to section

Use cases

Integrating the Channels API with the Catalog and Location APIs allows for many use cases that a seller limit the visibility of catalog objects to channels such as a seller's locations or the point of sale used to make a sale.

Link to section

Item visibility

The Channels API is essential for understanding how catalog items are distributed across a seller’s sales channels. When used alongside a catalog item variation’s channels_integrations properties, it enables applications to determine exactly where specific products can be sold or services can be offered.

For example, consider a coffee shop that sells ceramic mugs. The Channels API lists all available sales channels (from physical store locations to online shops), while the catalog data identifies which mugs are available through each channel. Together, they allow applications to accurately display product availability, whether an item is limited to certain store locations, available at all POS systems, or listed online.

Beyond catalog management, the API also helps applications discover enabled Square services (like gift cards or invoicing) and identify authorized third-party integrations. This allows applications to dynamically adapt their features to match the seller's capabilities and channel configuration.

Link to section

Menu visibility

Unlike other Catalog objects, CatalogCategory objects cannot be directly assigned to locations. Instead, they use a channel-based visibility system to determine where menus appear across a seller's locations.

Link to section

Key Concepts

  • Menu Categories: CatalogCategory objects with category_type set to MENU_CATEGORY form the structure of menus created in the Square Dashboard
  • Channels: Represent different distribution points for catalog content, including physical locations
  • Channel References: Link channels to specific entities like locations
Link to section

How Menu Visibility Works

When a seller creates and manages menus in the Square Dashboard:

  1. They define menu categories (CatalogCategory objects)
  2. They assign these categories to specific locations through the Dashboard interface
  3. Behind the scenes, Square uses channels to manage this visibility
Link to section

Retrieving Location-Specific Menus via API

To find which menu categories are visible at a specific location using the Catalog API:

Link to section

Step 1: Get the Seller's Channels

First, retrieve all channels for the seller. Look for channels where reference.type equals LOCATION - these represent the seller's physical locations.

Example Response:

Link to section

Step 2: Map Channels to Locations

From the channels response, create a mapping:

Channel IDChannel NameLocation ID
CH_IT55vdjtd81xkZvF68NXQqPO54qnOXkyQRkiBQlQuYCFlamingRedE78VDDVFW1EYX
CH_4s6dFPG7nd0Axgdcu8NXQqPO54qnOXkyQRkiBQlQuYCSeed Data testLFF3HK0DN6A61
CH_leic5ZC8kuuyAVAIQUlxuEG72EYFNBoxFCz5574e9945oOnline storeLRAXEJYQZ0JED
Link to section

Step 3: Check Menu Category Visibility

When you retrieve a menu category, check its channels array to see which locations can display it.

Example: Breakfast Menu Category

This breakfast menu category includes the channel ID CH_IT55vdjtd81xkZvF68NXQqPO54qnOXkyQRkiBQlQuYC, which corresponds to the "FlamingRed" location (E78VDDVFW1EYX).

Link to section

How to list channels

To retrieve a list of all channels, use the ListChannels endpoint. This endpoint supports filtering and pagination. Filters are useful when a seller has many channels of various types. You can filter the channels list by:

  • reference_type - Filter by the type of reference associated with the channel.
  • status - Filter by channel status.

The two filter types can be combined into an AND query but you cannot request multiple values for a given filter. For example, you can request channels of reference_type == LOCATION and status == ACTIVE but you cannot request channels of (reference_type == LOCATION OR reference_type == KIOSK) and status == ACTIVE.

This example asks for a list of all active channel locations:

List channels

Link to section

How to bulk retrieve channels

Use the BulkRetrieveChannels endpoint when you need to retrieve information about multiple specific channels at once. This is more efficient than making individual requests for each channel.

The source for the channel ID list might be the results of a SearchCatalogObjects query that returns a long list of catalog objects. Each object that has channel ID information can be parsed to get the referenced ID and then added to the BulkRetrieveChannels query. An application might also cache the most frequently referenced channel IDs and then run the BulkRetrieveChannels request to get the current state of these channels.

In this example, the application caches the channel IDs for a seller's locations and the third-party applications that they're using. With one request, the application gets the channel information for these locations and applications.

Bulk retrieve channels

Important notes:

  • You can request up to 100 channels in a single request.
  • The response includes a map of channel IDs to their corresponding channel information.
  • If any channels cannot be retrieved, the response includes error details for those specific channels.
Link to section

How to retrieve a single channel

When you need information about a specific channel, use the RetrieveChannel endpoint.

This example requests a channel whose ID is CH_KH0VQTd9HzLmOWRGrF16agtdnoQ9JrkS4gEd5PlQuYC.

Retrieve channel

Link to section

Authentication requirements

All Channels API endpoints:

  • Support OAuth 2.0 access tokens.
  • Require CHANNELS_READ permission for OAuth 2.0 authentication.
Link to section

Error handling

Common error codes across all endpoints include:

  • UNAUTHORIZED - Invalid authentication credentials.
  • FORBIDDEN - Insufficient permissions.
  • MISSING_REQUIRED_PARAMETER - Required parameters are missing from the request.

The RetrieveChannel endpoint might also return:

  • NOT_FOUND - The requested channel ID doesn't exist.
Link to section

API versions

All endpoints are currently in Beta status except where noted. The current API version for these endpoints is 2025-10-16.