A channel's id property identifies the channel throughout our APIs.
For example, it is part of the response of a POST call to the events endpoint.

For requests where you will have to provide the channel id, you will have to do so using a nested object.
This is because you will have to pass both the channel id and a type all bundled up together under the key channel.

Here is an example from the request body of the create an event endpoint:

{
   "type":"checkout",
   "defaultLocale":"de_DE",
   "estimatedDeliveryDate":"2017-01-07",
   "system":"customer_system_name",
   "systemVersion":"1.0",
   "metadata":{
      "metaKey1":"metaValue1",
      "metaKey2":"metaValue2"
   },
   "channel":{
      "id":"chl-xxxxxxxx-yyyy-xxxx-yyyy-xxxxxxxxxxxx",
      "type":"etrusted"
   }
}

NB: Notice the channel object containing both the id and the type.

There is a special relation between the id and type property:

For the type field, there are two allowed values: etrusted and user_defined.
etrusted is the default.
A channel with the type of etrusted has an eTrusted UUID as its id.
It looks something like this:

chl-xxxxxxxx-yyyy-xxxx-yyyy-xxxxxxxxxxxx

However, we provide our customers the option to assign their own channel IDs.
That is what the other type is for:
If the type is set to user_defined, the channel ID may differ from the eTrusted UUID format and can be defined freely.