L'objet du canal Viber pour les [SMS promotionnels (Advanced)](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-promotional/2.0/). Il se place dans l'objet `channel` sous la clé `viber` – voir [Cascade](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-cascade/).

> [!IMPORTANT]
> Les messages transactionnels utilisent sous la même clé un objet Viber **différent** – il contient des modèles approuvés au lieu d'un bouton et d'une image. Voir [Viber – transactionnel](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-viber-transactionnel/).

```json
{
	"viber": {
		"sender": "BulkGate",
		"image": "https://example.com/banner.jpg",
		"button": {
			"caption": "Ouvrir l'offre",
			"url": "https://example.com/offre"
		}
	}
}
```

## Objet Viber

| NOM DU PARAMÈTRE | VALEUR                                                                                                                                        | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:-----------------------------------------------------------------------------------------------------------------------------------------------|:---------:|:-------------:|
| text           | Texte du message Viber. Remplace le `text` de premier niveau, voir [Quel texte est utilisé](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-cascade/)                                |    Non     |    `null`     |
| sender         | Expéditeur Viber enregistré. Il doit d'abord être enregistré. Pour l'enregistrement, contactez l'assistance [ici](https://www.bulkgate.com/fr/nous-contacter/)                         |  **Oui**  |       -       |
| expiration     | Délai en secondes après lequel le canal suivant de la cascade est utilisé. Les valeurs inférieures à `60` sont ignorées et remplacées par la valeur par défaut          |    Non     |     `300`     |
| button         | Structure qui crée un bouton dans le message, voir [Objet Button](#objet-button). Sans elle, le message n'a pas de bouton                     |    Non     |    `null`     |
| image          | URL d'une image affichée dans le message                                                                                                         |    Non     |    `null`     |

### Objet Button

| NOM DU PARAMÈTRE | VALEUR       | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:------------|:---------:|:-------------:|
| caption        | Texte du bouton |    Non     |     `OK`      |
| url            | Adresse URL |    Non     |      `#`      |

Les valeurs par défaut ne s'appliquent que si l'objet `button` lui-même est présent – `"button": {}` crée un bouton intitulé `OK` qui pointe vers `#`.

## Exemple de requête complète

Viber avec une image et un bouton, SMS en solution de repli. Le volet SMS n'a ni image ni bouton, il se rabat donc sur le `text` de premier niveau.

```http-json
POST /api/2.0/advanced/promotional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["420777777777", "420777777778"],
	"text": "Spring sale starts today, up to 50 % off.",
	"channel": {
		"viber": {
			"sender": "BulkGate",
			"image": "https://example.com/spring-sale.jpg",
			"button": {
				"caption": "Open the offer",
				"url": "https://example.com/spring-sale"
			}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

La réponse est identique pour tous les canaux – voir [SMS promotionnels (Advanced)](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-promotional/2.0/).
