Channels represent a source or destination of different entities. They can be used to model warehouses or stores.
Channels are used across the different APIs in commercetools Composable Commerce to connect different entities (like inventory or price) to some specific source or destination of entities. For example, inventory may be connected to a supply channel that would describe from which supplier a stock comes from. Price may also have connection to the channel. In this case, you can save the inventory pricing information from the specific channel into the system. Similarly, after the disposition process, line items can get supply channel information that would uniquely identify inventory entries that should be reserved.
Representations
Channel
idString | Unique identifier of the Channel. |
versionInt | Current version of the Channel. |
keyString | User-defined unique identifier of the Channel. |
rolesArray of ChannelRoleEnum | Roles of the Channel. |
name | Name of the Channel. |
description | Description of the Channel. |
address | Address where the Channel is located (for example, if the Channel is a physical store). |
reviewRatingStatistics | Statistics about the review ratings taken into account for the Channel. |
geoLocation | GeoJSON geometry object encoding the geo location of the Channel. |
custom | Custom Fields defined for the Channel. |
createdAt | Date and time (UTC) the Channel was initially created. |
createdByBETA | IDs and references that created the Channel. |
lastModifiedAt | Date and time (UTC) the Channel was last updated. |
lastModifiedByBETA | IDs and references that last modified the Channel. |
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": [
"ProductDistribution",
"InventorySupply"
],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [
-122.4194,
37.7749
]
}
}ChannelDraft
keyString | User-defined unique identifier for the Channel. |
rolesArray of ChannelRoleEnum | Roles of the Channel.
Each channel must have at least one role.
If not specified, then InventorySupply is assigned by default. |
name | Name of the Channel. |
description | Description of the Channel. |
address | Address where the Channel is located. |
geoLocation | GeoJSON geometry object encoding the geo location of the Channel.
Currently, only the Point type is supported. |
custom | Custom fields defined for the Channel. |
{
"key": "distribution-channel-us",
"roles": [
"ProductDistribution",
"InventorySupply"
],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [
-122.4194,
37.7749
]
}
}ChannelPagedQueryResponse
limitInt | Number of results requested. Default: 20Minimum: 0Maximum: 500 |
offsetInt | Number of elements skipped. Default: 0Maximum: 10000 |
countInt | Actual number of results returned. |
totalInt | Total number of results matching the query.
This number is an estimation that is not strongly consistent.
This field is returned by default.
For improved performance, calculating this field can be deactivated by using the query parameter withTotal=false.
When the results are filtered with a Query Predicate, total is subject to a limit. |
resultsArray of Channel | Channels matching the query. |
{
"limit": 20,
"offset": 0,
"count": 2,
"total": 2,
"results": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": [
"ProductDistribution",
"InventorySupply"
],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [
-122.4194,
37.7749
]
}
},
{
"id": "8c7e0b2a-45f3-4d8e-9a1b-c2f4e6d8a9b0",
"version": 2,
"createdAt": "2025-10-20T09:15:30.456Z",
"lastModifiedAt": "2025-10-28T11:20:45.789Z",
"key": "distribution-channel-eu",
"roles": [
"ProductDistribution"
],
"name": {
"en-US": "EU Distribution Channel",
"de-DE": "EU-Vertriebskanal",
"fr-FR": "Canal de distribution européen",
"es-ES": "Canal de distribución de la UE"
},
"description": {
"en-US": "Main distribution channel for European market",
"de-DE": "Hauptvertriebskanal für den europäischen Markt",
"fr-FR": "Canal de distribution principal pour le marché européen",
"es-ES": "Canal de distribución principal para el mercado europeo"
},
"address": {
"id": "address-2",
"key": "eu-warehouse-address",
"country": "DE",
"firstName": "Anna",
"lastName": "Müller",
"streetName": "Hauptstraße",
"streetNumber": "45",
"postalCode": "10115",
"city": "Berlin",
"phone": "+493012345678",
"email": "warehouse-eu@example.com"
}
}
]
}ChannelReference
idString | Unique identifier of the referenced Channel. |
typeId | channelType of referenced resource. |
obj | Contains the representation of the expanded Channel.
Only present in responses to requests with Reference Expansion for Channels. |
{
"typeId": "channel",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}ChannelKeyReference
keyString | User-defined unique identifier of the referenced Channel. |
typeId | channelType of referenced resource. |
ChannelResourceIdentifier
id or key is required. If both are set, an InvalidJsonInput error is returned.idString | Unique identifier of the referenced Channel. Required if key is absent. |
keyString | User-defined unique identifier of the referenced Channel. Required if id is absent. |
typeId | channelType of referenced resource. If given, it must match the expected ReferenceTypeId of the referenced resource. |
{
"typeId": "channel",
"key": "distribution-channel-us"
}ChannelRoleEnum
Describes the purpose and type of the Channel. A Channel can have one or more roles.
InventorySupplyChannel can be used to track inventory entries (for example, Channels with this role can be treated as warehouses).
ProductDistribution- Channel can be used to expose Products to a specific distribution Channel. The Channel can be used by a Cart to select a Product Price.
OrderExportChannel can be used to track order export activities.
OrderImportChannel can be used to track order import activities.
Primary- This role can be combined with the other roles (for example, with
InventorySupply). If used, the Channel is considered as the primary or main channel among Channels of the same type.
Get Channel
Get Channel by ID
view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the Channel. |
expand | The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/channels/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Get Channel by Key
view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the Channel. |
expand | The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/channels/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Query Channels
view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
where | The parameter can be passed multiple times. |
sort | The parameter can be passed multiple times. |
expand | The parameter can be passed multiple times. |
limitInt | Number of results requested. Default: 20Minimum: 0Maximum: 500 |
offsetInt | Number of elements skipped. Default: 0Maximum: 10000 |
withTotalBoolean | Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.Default: true |
var.<varName>String | Predicate parameter values. The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/channels -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"limit": 20,
"offset": 0,
"count": 2,
"total": 2,
"results": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
},
{
"id": "8c7e0b2a-45f3-4d8e-9a1b-c2f4e6d8a9b0",
"version": 2,
"createdAt": "2025-10-20T09:15:30.456Z",
"lastModifiedAt": "2025-10-28T11:20:45.789Z",
"key": "distribution-channel-eu",
"roles": ["ProductDistribution"],
"name": {
"en-US": "EU Distribution Channel",
"de-DE": "EU-Vertriebskanal",
"fr-FR": "Canal de distribution européen",
"es-ES": "Canal de distribución de la UE"
},
"description": {
"en-US": "Main distribution channel for European market",
"de-DE": "Hauptvertriebskanal für den europäischen Markt",
"fr-FR": "Canal de distribution principal pour le marché européen",
"es-ES": "Canal de distribución principal para el mercado europeo"
},
"address": {
"id": "address-2",
"key": "eu-warehouse-address",
"country": "DE",
"firstName": "Anna",
"lastName": "Müller",
"streetName": "Hauptstraße",
"streetNumber": "45",
"postalCode": "10115",
"city": "Berlin",
"phone": "+493012345678",
"email": "warehouse-eu@example.com"
}
}
]
}Check if Channel exists
Check if Channel exists by ID
id. Returns a 200 status if the Channel exists, or a 404 status otherwise.view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the Channel. |
curl --head https://api.{region}.commercetools.com/{projectKey}/channels/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" Check if Channel exists by Key
key. Returns a 200 status if the Channel exists, or a 404 status otherwise.view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the Channel. |
curl --head https://api.{region}.commercetools.com/{projectKey}/channels/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" Check if Channel exists by Query Predicate
200 status if any Channels match the query predicate, or a 404 status otherwise.view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
where |
curl --head https://api.{region}.commercetools.com/{projectKey}/channels -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" Create Channel
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
expand | The parameter can be passed multiple times. |
application/jsonapplication/jsoncurl https://api.{region}.commercetools.com/{projectKey}/channels -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"key" : "distribution-channel-us",
"roles" : [ "ProductDistribution", "InventorySupply" ],
"name" : {
"en-US" : "US Distribution Channel",
"de-DE" : "US-Vertriebskanal",
"fr-FR" : "Canal de distribution américain",
"es-ES" : "Canal de distribución de EE. UU."
},
"description" : {
"en-US" : "Primary distribution channel for United States market",
"de-DE" : "Primärer Vertriebskanal für den US-Markt",
"fr-FR" : "Canal de distribution principal pour le marché américain",
"es-ES" : "Canal de distribución principal para el mercado estadounidense"
},
"address" : {
"key" : "us-warehouse-address",
"country" : "US",
"firstName" : "John",
"lastName" : "Smith",
"streetName" : "Commerce Street",
"streetNumber" : "123",
"postalCode" : "94105",
"city" : "San Francisco",
"state" : "California",
"phone" : "+14155551234",
"email" : "warehouse@example.com"
},
"geoLocation" : {
"type" : "Point",
"coordinates" : [ -122.4194, 37.7749 ]
}
}
DATA{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Update Channel
Update Channel by ID
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the Channel. |
expand | The parameter can be passed multiple times. |
application/jsonversionInt | Expected version of the Channel on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actionsArray of ChannelUpdateAction | Update actions to be performed on the Channel. |
application/jsoncurl https://api.{region}.commercetools.com/{projectKey}/channels/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 1,
"actions" : [ {
"action" : "changeName",
"name" : {
"en-US" : "Updated US Distribution Channel",
"de-DE" : "Aktualisierter US-Vertriebskanal",
"fr-FR" : "Canal de distribution américain mis à jour",
"es-ES" : "Canal de distribución de EE. UU. actualizado"
}
} ]
}
DATA{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 2,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-11-05T16:45:22.456Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "Updated US Distribution Channel",
"de-DE": "Aktualisierter US-Vertriebskanal",
"fr-FR": "Canal de distribution américain mis à jour",
"es-ES": "Canal de distribución de EE. UU. actualizado"
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Update Channel by Key
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the Channel. |
expand | The parameter can be passed multiple times. |
application/jsonversionInt | Expected version of the Channel on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actionsArray of ChannelUpdateAction | Update actions to be performed on the Channel. |
application/jsoncurl https://api.{region}.commercetools.com/{projectKey}/channels/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 1,
"actions" : [ {
"action" : "changeName",
"name" : {
"en-US" : "Updated US Distribution Channel",
"de-DE" : "Aktualisierter US-Vertriebskanal",
"fr-FR" : "Canal de distribution américain mis à jour",
"es-ES" : "Canal de distribución de EE. UU. actualizado"
}
} ]
}
DATA{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 2,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-11-05T16:45:22.456Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "Updated US Distribution Channel",
"de-DE": "Aktualisierter US-Vertriebskanal",
"fr-FR": "Canal de distribution américain mis à jour",
"es-ES": "Canal de distribución de EE. UU. actualizado"
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Update actions
Change Key
actionString | "changeKey" |
keyString | New value to set. Must not be empty. |
{
"action": "changeKey",
"key": "my-updated-key"
}Change Name
actionString | "changeName" |
name | New value to set. Must not be empty. |
{
"action": "changeName",
"name": {
"en-US": "Updated Channel Name",
"de-DE": "Aktualisierter Kanalname",
"fr-FR": "Nom de canal mis à jour",
"es-ES": "Nombre de canal actualizado"
}
}Change Description
actionString | "changeDescription" |
description | New value to set. Must not be empty. |
{
"action": "changeDescription",
"description": {
"en-US": "Updated channel description",
"de-DE": "Aktualisierte Kanalbeschreibung",
"fr-FR": "Description du canal mise à jour",
"es-ES": "Descripción del canal actualizada"
}
}Set Roles
actionString | "setRoles" |
rolesArray of ChannelRoleEnum | Value to set. If not specified, then InventorySupply is assigned by default. |
{
"action": "setRoles",
"roles": [
"OrderExport",
"OrderImport"
]
}Add Roles
actionString | "addRoles" |
rolesArray of ChannelRoleEnum | Value to append to the array. |
{
"action": "addRoles",
"roles": [
"OrderExport"
]
}Remove Roles
actionString | "removeRoles" |
rolesArray of ChannelRoleEnum | Value to remove from the array. |
{
"action": "removeRoles",
"roles": [
"InventorySupply"
]
}Set Address
actionString | "setAddress" |
address | Value to set. If empty, any existing value will be removed. |
{
"action": "setAddress",
"address": {
"key": "warehouse-address-key",
"country": "US",
"firstName": "John",
"lastName": "Doe",
"streetName": "Market Street",
"streetNumber": "456",
"postalCode": "94103",
"city": "San Francisco",
"state": "California",
"phone": "+14155559876",
"email": "johndoe@example.com"
}
}Set Custom Type
actionString | "setCustomType" |
type | Defines the Type that extends the Channel with Custom Fields.
If absent, any existing Type and Custom Fields are removed from the Channel. |
fields | Sets the Custom Fields fields for the Channel. |
{
"action": "setCustomType",
"type": {
"key": "channel-custom-type",
"typeId": "type"
},
"fields": {
"exampleStringField": "TextString"
}
}Set CustomField
actionString | "setCustomField" |
nameString | Name of the Custom Field. |
value | If value is absent or null, this field will be removed if it exists.
Removing a field that does not exist returns an InvalidOperation error.
If value is provided, it is set for the field defined by name. |
{
"action": "setCustomField",
"name": "exampleStringField",
"value": "TextString"
}Set Custom Type in Address
actionString | "setAddressCustomType" |
type | Defines the Type that extends the address with Custom Fields.
If absent, any existing Type and Custom Fields are removed from the address. |
fields | Sets the Custom Fields fields for the address. |
{
"action": "setAddressCustomType",
"type": {
"key": "address-custom-type",
"typeId": "type"
},
"fields": {
"exampleStringField": "TextString"
}
}Set CustomField in Address
actionString | "setAddressCustomField" |
nameString | Name of the Custom Field. |
value | Specifies the format of the value of the Custom Field defined by name.
If value is absent or null, this field will be removed, if it exists.
Removing a field that does not exist returns an InvalidOperation error. |
{
"action": "setAddressCustomField",
"name": "exampleStringField",
"value": "TextString"
}Set GeoLocation
actionString | "setGeoLocation" |
geoLocation | Value to set. |
{
"action": "setGeoLocation",
"geoLocation": {
"type": "Point",
"coordinates": [
-122.4084,
37.7849
]
}
}Delete Channel
Delete Channel by ID
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the Channel. |
versionInt | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
application/jsoncurl -X DELETE https://api.{region}.commercetools.com/{projectKey}/channels/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}Delete Channel by Key
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the Channel. |
versionInt | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
application/jsoncurl -X DELETE https://api.{region}.commercetools.com/{projectKey}/channels/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 1,
"createdAt": "2025-10-25T14:30:45.123Z",
"lastModifiedAt": "2025-10-25T14:30:45.123Z",
"key": "distribution-channel-us",
"roles": ["ProductDistribution", "InventorySupply"],
"name": {
"en-US": "US Distribution Channel",
"de-DE": "US-Vertriebskanal",
"fr-FR": "Canal de distribution américain",
"es-ES": "Canal de distribución de EE. UU."
},
"description": {
"en-US": "Primary distribution channel for United States market",
"de-DE": "Primärer Vertriebskanal für den US-Markt",
"fr-FR": "Canal de distribution principal pour le marché américain",
"es-ES": "Canal de distribución principal para el mercado estadounidense"
},
"address": {
"id": "address-1",
"key": "us-warehouse-address",
"country": "US",
"firstName": "John",
"lastName": "Smith",
"streetName": "Commerce Street",
"streetNumber": "123",
"postalCode": "94105",
"city": "San Francisco",
"state": "California",
"phone": "+14155551234",
"email": "warehouse@example.com"
},
"geoLocation": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}