O objeto do canal Viber para [Advanced transactional](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-transactional/2.0/). Insere-se no objeto `channel`, na chave `viber` - consulte [Cascata](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-cascata-de-canais/).

> [!IMPORTANT]
> As mensagens promocionais utilizam um objeto Viber **diferente** na mesma chave - em vez de modelos, contém um botão e uma imagem. Consulte [Viber – promocional](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-viber-promocional/).

```json
{
	"viber": {
		"sender": "BulkGate",
		"expiration": 300
	}
}
```

## Objeto Viber

| NOME DO PARÂMETRO   | VALOR | OBRIGATÓRIO | VALOR PREDEFINIDO |
|:--------------------|:------|:-----------:|:-----------------:|
| text                | Texto da mensagem Viber. Substitui o `text` de nível superior, consulte [Que texto é utilizado](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-cascata-de-canais/) | Não | `null` |
| sender              | Remetente Viber registado. Tem de ser registado primeiro. Para o registo, contacte o apoio [aqui](https://www.bulkgate.com/pt/contacto/) | **Sim** | - |
| expiration          | Limite de tempo em segundos após o qual é utilizado o canal seguinte da cascata. Os valores inferiores a `60` são ignorados e substituídos pelo valor predefinido | Não | `300` |
| template_id         | Chave de um modelo Viber aprovado com `@` inicial (p. ex. `@order-confirmation`) ou o ID do modelo no Viber. **Quando está preenchido, a mensagem é enviada como modelo** e `text` não é utilizado | Não | `null` |
| template_language   | Código da versão linguística do modelo. A maioria dos idiomas tem um código de duas letras (`cs`, `en`); as exceções são `fr_FR`, `es_ES`, `pt_BR`, `pt_PT`, `zh-Hans` e `zh-Hant` | Não | `en` |
| template_parameters | Array associativo de parâmetros do modelo, p. ex.: `{"code": "0451"}` | Não | `[]` |

> [!IMPORTANT]
> É o `template_id` que muda a mensagem para modelo - não o `use_template`. O parâmetro `use_template` continua a ser aceite por motivos de compatibilidade com versões anteriores, mas neste endpoint não tem qualquer efeito.

Todas as mensagens Viber transacionais têm de utilizar um modelo previamente aprovado pelo Viber. A forma de registar um modelo está descrita na página [Registo de modelos Viber](https://www.bulkgate.com/pt/centro-de-ajuda/viber/registo-de-modelos-viber/).

> [!WARNING]
> **Sem `template_id`, a mensagem não é faturada à tarifa transacional.** Uma mensagem Viber enviada através deste endpoint sem modelo é enviada à tarifa **promocional**; apenas uma mensagem que utilize um modelo aprovado é faturada como transacional.

## Exemplo de um pedido completo

Primeiro o Viber, o SMS como alternativa. O `text` de nível superior é utilizado por ambos os passos da cascata; `expiration` indica quanto tempo esperamos pelo Viber antes de mudar para SMS.

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

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["420777777777"],
	"text": "Your order 4517 has been shipped.",
	"channel": {
		"viber": {
			"sender": "BulkGate",
			"expiration": 120
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

A mesma mensagem como modelo aprovado. `template_id` muda o passo Viber para o modelo, pelo que o `text` de nível superior chega apenas ao passo SMS - e o passo Viber é faturado à tarifa transacional.

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

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["375291234567"],
	"text": "Your verification code is 0451.",
	"channel": {
		"viber": {
			"sender": "BulkGate",
			"template_id": "TEMPLATE_ID",
			"template_language": "en",
			"template_parameters": {"code": "0451"}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

A resposta é igual para todos os canais - consulte [Advanced transactional](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-transactional/2.0/).
