El objeto `channel` determina por qué canales se envía el mensaje y en qué orden. Está disponible en [Advanced transactional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-transactional/2.0/) y [Advanced promotional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-promotional/2.0/), solo en la versión `2.0` de la API.

## Tabla de canales

Cada clave del objeto `channel` es un canal y contiene el objeto propio de ese canal.

| CLAVE | OBJETO DEL CANAL |
|:-------------|:-----------------------------------------------------------------------------------------------------------------------------------|
| `sms` | [SMS](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-sms/) |
| `viber` | [Viber – transaccional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-viber-transaccional/) / [Viber – promocional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-viber-promotional/) |
| `rcs` | [RCS](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-rcs/) |
| `whatsapp` | [WhatsApp](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-whatsapp/) |

## Orden de la cascada

**El orden de las claves en su solicitud es el orden de la cascada.** La primera clave es el canal principal; si el mensaje no se puede entregar por él, se utiliza el siguiente canal de la lista.

```json
{
	"channel": {
		"viber": { "sender": "BulkGate" },
		"sms": { "sender_id": "gText", "sender_id_value": "BulkGate" }
	}
}
```

Aquí se prueba primero Viber y después SMS. Si intercambia las dos claves, se intercambia la prioridad; nada más cambia en la solicitud.

> [!IMPORTANT]
> El SMS **no** se añade automáticamente al final de la cascada. Si quiere el SMS como última alternativa, indique el objeto `sms` de forma explícita. Una cascada formada solo por `{"viber": {…}}` no tiene ninguna alternativa.

Si se omite por completo `channel`, el mensaje se envía como SMS con el remitente predeterminado.

## Cambio entre canales - `expiration`

Cada objeto de canal tiene su propio `expiration`: el límite de tiempo en segundos tras el cual se utiliza el siguiente canal de la cascada. Los valores inferiores a `60` se ignoran y se sustituyen por el valor predeterminado de ese canal.

| CANAL | `expiration` PREDETERMINADO |
|:-----------|:---------------------:|
| `viber` | `300` |
| `rcs` | `60` |
| `whatsapp` | `180` |

## Qué texto se utiliza

`sms` y `viber` buscan el texto en tres lugares; gana el primero que no esté vacío:

| PRIORIDAD | LUGAR | NOTA |
|:--------:|:--------------------------------------|:-----------------------------------------------------------------|
| 1 | `number[].text` | texto de un destinatario concreto; consulte [Valor `number`](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-transactional/2.0/) |
| 2 | `channel.sms.text` / `channel.viber.text` | texto para ese canal concreto |
| 3 | `text` | texto de nivel superior de la solicitud |

`rcs` y `whatsapp` **no leen ninguno de ellos**. Su contenido está dentro de su propio objeto de variante (`message`, `template`, `card`, …), por lo que el `text` de nivel superior no les afecta.

## Errores

| TIPO | SIGNIFICADO |
|:---------------------------|:-----------------------------------------------------------------------------|
| `invalid_rcs_variant` | el objeto `rcs` no contiene ninguno o contiene más de uno de `message`/`file`/`card`/`carousel` |
| `invalid_whatsapp_variant` | el objeto `whatsapp` no contiene ninguno o contiene más de uno de `template`/`otp`/`message`/`file`/`location` |
| `no_recipients` | la solicitud no generó ningún destinatario válido |

Consulte todos los tipos de error de Simple API y Advanced API [aquí](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/).
