> For the complete documentation index, see [llms.txt](https://docs.altu.d1.cx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.altu.d1.cx/connect/apis/outbound/infobip.md).

# Outbound Infobip

Ao habilitar a API de outbound é gerado um endpoint e um token, que serão utilizados para realizar o envio das mensagens de outbound.

## Request

**Endpoint:**

**POST** <https://outbound.ms.altubots.com/infobip>/\<slug>/\<id\_integracao>

**Header:**

**Content-type:** "application/json"\
**Authorization:** "\<altu token>"

```
{
    "destination": "numero_whatsapp_destino",
    "templateName": "nome_template",
    "context": {
        "status": "aprovado"
    },
    "templateData": [
        "<template_dado_1>",
        "<template_dado_2>",
        "...",
        "<template_dado_n>"
    ],
    "language": "idioma_template",
    "external_id": "seu_id_mensagem",
    "restartContact": false | true,
    "inactivityTime": 0
}
```

### **Atributos:**

* **destination:** o número de WhatsApp que irá receber a mensagem
* **templateName:** o nome do template
* **context (opcional)**: variáveis que serão salvas no contexto do usuário
* **templateData:** lista de valores (strings) de parâmetros do template ordenados conforme registrados
* **language:** o código do idioma ou localidade a ser usado. Precisa ser exatamente o código com o qual o template foi registrado
* **external\_id (opcional):** identificador único para a mensagem a ser enviada. Este id será retornado nos status de envio em seu webhook de status
* **restartContact (opcional):** booleano para resetar as variáveis de contexto do usuário e reiniciar o atendimento
* **inactivityTime (opcional):** tempo em minutos que deve ter passado desde a última interação do usuário com o assistente para que a mensagem seja enviada. Exemplo: Se o usuário está interagindo ou interagiu com assistente há 1 minuto e o tempo de inatividade necessário para a mensagem ser enviada é de 2 minutos ("inactivityTime": 2), a mensagem não será enviada. Caso a última interação ocorreu a mais de 2 minutos atrás, a mensagem será enviada

## **Exemplo**

```
{
    "destination": "35988001234",
    "templateName": "template_fatura_total",
    "templateData": [
        "Maria",
        "R$ 1670,00"
    ],
    "language": "pt_BR",
    "external_id": "meu_id_1"
}
```

### Response

{% tabs %}
{% tab title="Status 200 (OK)" %}
A mensagem foi enviada corretamente para a Infobip e será encaminhada para o usuário.**Body (exemplo):**

```
{
    "status": "sent",
    "external_id": "meu_id_1",
    "message_id": 166,
    "contact_id": 765
}
```

* **status:** status da mensagem enviada
* **external\_id:** id externo da mensagem enviada
* **message\_id:** id da mensagem enviada no Zenvia NLU
* **contact\_id:** id do atendimento do usuário no Zenvia NLU

{% endtab %}

{% tab title="Status 400 (Bad Request)" %}
Um ou mais parâmetros não estão no formato esperado ou parâmetros obrigatórios não foram preenchidos. Verifique o formato e obrigatoriedade de todos os parâmetros durante a requisição.**Body (exemplo):**

```
{
    "status": "error",
    "message": "Invalid destination!"
}
```

{% endtab %}

{% tab title="Status 401 (Unauthorized)" %}
Não foi possível autorizar a requisição. Verifique se foi definido o header **Authorization** com o valor **token altu** corretamente.**Body (exemplo):**

```
{
    "status": "error",
    "message": "Unauthorized"
}
```

{% endtab %}

{% tab title="500 (Internal Server Error)" %}
Houve um erro durante o envio da mensagem.**Body (exemplo):**

```
{
  "status": "error",
  "message": "Unexpected error"
}
```

{% endtab %}
{% endtabs %}
