Objekt `channel` určuje, ktorými kanálmi sa správa odošle a v akom poradí. Je k dispozícii v [Advanced transactional](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-transactional/2.0/) a [Advanced promotional](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-promotional/2.0/), iba vo verzii API `2.0`.

## Tabuľka kanálov

Každý kľúč objektu `channel` je jeden kanál a nesie vlastný objekt daného kanála.

| KĽÚČ         | OBJEKT KANÁLA                                                                                                                      |
|:-------------|:-----------------------------------------------------------------------------------------------------------------------------------|
| `sms`        | [SMS](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-sms/)                                                                                                       |
| `viber`      | [Viber – transakčný](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-viber-transakcne/) / [Viber – promo](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-viber-promo/)                  |
| `rcs`        | [RCS](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-rcs/)                                                                                                       |
| `whatsapp`   | [WhatsApp](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-whatsapp/)                                                                                             |

## Poradie kaskády

**Poradie kľúčov v požiadavke je poradím kaskády.** Prvý kľúč je primárny kanál; ak ním správu nemožno doručiť, použije sa ďalší kanál v poradí.

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

Tu sa najprv skúsi Viber, potom SMS. Prehodenie oboch kľúčov prehodí prioritu - nič iné sa v požiadavke nemení.

> [!IMPORTANT]
> SMS sa na koniec kaskády automaticky **nepridáva**. Ak ju chcete ako poslednú záchranu, uveďte objekt `sms` explicitne. Samotná kaskáda `{"viber": {…}}` žiadnu záchranu nemá.

Keď objekt `channel` vôbec neuvediete, správa sa odošle ako SMS s predvoleným odosielateľom.

## Prepnutie medzi kanálmi - `expiration`

Každý objekt kanála má vlastný `expiration` - časový limit v sekundách, po ktorého uplynutí sa použije ďalší kanál v kaskáde. Hodnoty nižšie ako `60` sa ignorujú a nahradia sa predvolenou hodnotou daného kanála.

| KANÁL      | PREDVOLENÝ `expiration` |
|:-----------|:---------------------:|
| `viber`    | `300`                 |
| `rcs`      | `60`                  |
| `whatsapp` | `180`                 |

## Ktorý text sa použije

`sms` a `viber` hľadajú text na troch miestach, vyhráva prvý neprázdny:

| PRIORITA | MIESTO                                     | POZNÁMKA                                                              |
|:--------:|:-------------------------------------------|:-----------------------------------------------------------------------|
| 1        | `number[].text`                            | text jedného konkrétneho príjemcu, pozri [Hodnota `number`](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-transactional/2.0/) |
| 2        | `channel.sms.text` / `channel.viber.text`  | text pre jeden konkrétny kanál                                         |
| 3        | `text`                                     | text na najvyššej úrovni požiadavky                                    |

`rcs` a `whatsapp` **nečítajú ani jeden z nich**. Ich obsah žije vo vlastnom objekte varianty (`message`, `template`, `card`, …), takže `text` na najvyššej úrovni na ne nemá vplyv.

## Chyby

| TYP                        | VÝZNAM                                                                       |
|:---------------------------|:-------------------------------------------------------------------------------|
| `invalid_rcs_variant`      | objekt `rcs` neobsahuje žiadnu alebo obsahuje viac ako jednu z variant `message`/`file`/`card`/`carousel` |
| `invalid_whatsapp_variant` | objekt `whatsapp` neobsahuje žiadnu alebo obsahuje viac ako jednu z variant `template`/`otp`/`message`/`file`/`location` |
| `no_recipients`            | požiadavka nevytvorila žiadneho platného príjemcu                             |

Všetky typy chýb pre Simple API aj Advanced API nájdete [tu](https://www.bulkgate.com/sk/dokumentacia/api-administracia-a-tokeny/typy-chyb-api/).
