> For the complete documentation index, see [llms.txt](https://help.hyperflow.global/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.hyperflow.global/docs/canais-de-atendimento/sms.md).

# SMS

A Hyperflow disponibiliza em sua plataforma, o envio de SMS. **Diferente dos outros canais, o SMS é utilizado apenas para envio, e não ativa um fluxo na resposta do usuário.**

Todo SMS enviado pela Hyperflow é do formato OTP transacional, ou seja, é um SMS que possui uma entrega prioritária se comparado com um SMS normal, ou SMS marketing.

### Saldo para disparo

Ao disparar um SMS, o valor será descontado da sua carteira Hyperflow, que pode ser consultada na tela "Gerenciar créditos" da sua organização. **A carteira funciona de forma pré-paga**. Basta fazer uma recarga via pix ou cartão de crédito para utilizar o SMS.

Para ver mais informações sobre a recarga, veja este vídeo curto: <https://www.youtube.com/watch?v=hvljlbLnUtQ&list=PLyG28GgXFuLmbhfq0i4hMPDd3AC7xHzoE&index=4>

<figure><img src="/files/gZxUNc8wHgaAVA231crD" alt=""><figcaption><p>Tela de gerenciar créditos da Hyperflow</p></figcaption></figure>

### Criando a sua chave de API

Para realizar o disparo de SMS, é necessário primeiro criar uma chave de API, que será utilizada para chamar a requisição que faz o envio.

Entre no menu **"SMS"**, e em seguida clique em **"Chaves"** no canto superior direito.

Nesta tela, você poderá consultar e gerenciar todas as chaves de API criadas. **Para criar a sua primeira chave**, basta clicar no botão **"+ Chave de API"**

<figure><img src="/files/Zx7b12aHoaoRn8aMYNgp" alt=""><figcaption><p>Tela de gerenciamento de chaves de API</p></figcaption></figure>

Ao clicar para criar uma chave de API, insira um nome para a sua chave, e clique em "Criar". Em seguida, você receberá a sua chave de API.

{% hint style="danger" %}
**Por razões de segurança, você não poderá ver esta chave novamente**. Se você perder esta chave, você precisará gerar uma nova. **Salve esta chave em algum lugar seguro e acessível.**
{% endhint %}

<figure><img src="/files/bDfye4gZqrWkHlBmwVy1" alt=""><figcaption><p>Confirmação da geração de uma nova chave de API</p></figcaption></figure>

### Realizando o disparo de um SMS

Agora que temos saldo carteira Hyperflow, e uma chave de API criada, nós podemos realizar o disparo do nosso primeiro SMS.

{% hint style="danger" %}
**Caso a sua mensagem contenha algum tipo de link, será necessário primeiro "aprovar" o link junto as operadoras.** Caso contrário, **a sua mensagem não será entregue!**

Isso é uma forma de combater golpes e envio de spam. Para solicitar aprovação de um link, entre em contato com o suporte da Hyperflow.
{% endhint %}

## Enviar SMS para um destinatário

<mark style="color:green;">`POST`</mark> `https://runtime.hyperflowapis.global/sms`

Use este método para enviar um SMS para um destinatário.

**Importante:** Caso você envie um texto com mais de 160 caracteres, será enviada 2 mensagens, uma vez que o limite por SMS é de 160 caracteres.

#### Headers

| Name                                            | Type   | Description                                             |
| ----------------------------------------------- | ------ | ------------------------------------------------------- |
| access\_token<mark style="color:red;">\*</mark> | String | Insira aqui a sua chave de API criada no passo anterior |

#### Request Body

| Name                                   | Type   | Description                                                                                                                           |
| -------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| to<mark style="color:red;">\*</mark>   | String | Telefone que será enviado o SMS. Atualmente é suportado apenas para números brasileiros, e não é necessário incluir o código de país. |
| text<mark style="color:red;">\*</mark> | String | Texto a ser enviado no SMS. Caso passe de 160 caracteres, será enviado 2 SMS's para o destinatário.                                   |

{% tabs %}
{% tab title="200: OK " %}
Ao enviar o SMS com sucesso, você receberá um status 200 OK, com o seguinte body de resposta. **O parâmetro messages será o array de todas as mensagens enviadas**. (Caso ultrapasse 160 caracteres, será enviada 2 mensagens para o destinatário, e ai você receberá 2 itens no array "*messages*")

```json
{
    "messages": [
        "527d1da8-7365-424c-9067-0a146d19193d"
    ]
}
```

{% endtab %}

{% tab title="404: Not Found A sua rota, ou chave de API está inválida" %}

{% endtab %}
{% endtabs %}

Se preferir, copie o curl abaixo 👇

```
curl --location --request POST 'https://runtime.hyperflowapis.global/sms' \
--header 'Content-Type: application/json' \
--header 'access_token: SEU_API_TOKEN' \
--data-raw '{
    "to": "34999999999",
    "text": "Mensagem teste"
}'
```

Pronto! Agora basta verificar o seu celular, para ver a mensagem entregue ✅

<figure><img src="/files/aq3aWAp12pBytVONgptS" alt=""><figcaption><p>Exemplo de mensagem entregue pela Hyperflow</p></figcaption></figure>

## Enviar SMS para múltiplos destinatários

<mark style="color:green;">`POST`</mark> `https://runtime.hyperflowapis.global/sms/multiple`

Use este método para enviar **até 1000 SMS** para diferentes usuários de uma única vez. É possível customizar o texto para cada um dos destinatários

**Importante:** Caso você envie um texto com mais de 160 caracteres, **a mensagem será rejeitada**, para evitar a cobrança de dois SMS's neste envio.

#### Headers

| Name                                            | Type   | Description                                             |
| ----------------------------------------------- | ------ | ------------------------------------------------------- |
| access\_token<mark style="color:red;">\*</mark> | String | Insira aqui a sua chave de API criada no passo anterior |

#### Request Body

| Name                                               | Type             | Description                                                                                                                                                                                                |
| -------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| messages<mark style="color:red;">\*</mark>         | Array de objetos | Array de objetos contendo em cada posição, um disparo a ser efetuado.Telefone que será enviado o SMS. Atualmente é suportado apenas para números brasileiros, e não é necessário incluir o código de país. |
| messages\[].to<mark style="color:red;">\*</mark>   | String           | Telefone que será enviado o SMS. Atualmente é suportado apenas para números brasileiros, e não é necessário incluir o código de país.                                                                      |
| messages\[].text<mark style="color:red;">\*</mark> | String           | Texto a ser enviado no SMS. Caso passe de 160 caracteres, a mensagem não será enviada.                                                                                                                     |

**Exemplo de payload**

```json
{
    "messages": [
        {
            "to": "34999999991",
            "text": "Mensagem a ser enviada via SMS."
        },
        {
            "to": "34999999992",
            "text": "Outra mensagem a ser enviada via SMS."
        }
    ]
}
```

{% tabs %}
{% tab title="200: OK " %}
Ao enviar o SMS com sucesso, você receberá um status 200 OK, com o seguinte body de resposta. **O parâmetro "success" será o array de todas as mensagens enviadas**. As mensagens inválidas, ou destinatários inválidos serão exibidos no array "failed".

```json
{
    "success": [ //Array contendo as mensagens que foram enviadas.
        {
            "id": 6346686788,
            "to": "34999999991",
            "text": "Mensagem a ser enviada via SMS."
        },
        {
            "id": 6346686789,
            "to": "34999999992",
            "text": "Outra mensagem a ser enviada via SMS."
        }
    ],
    "failed": [] //Array contendo as mensagens que falharam (Número inválido, texto com mais de 160 caracteres, outros...)
}
```

{% endtab %}

{% tab title="404: Not Found A sua rota, ou chave de API está inválida" %}

{% endtab %}
{% endtabs %}

Se preferir, copie o curl abaixo 👇

```
curl --location 'https://runtime.hyperflowapis.global/sms/multiple' \
--header 'Content-Type: application/json' \
--header 'access_token: SEU_API_TOKEN' \
--data '{
    "messages": [
        {
            "to": "34999999991",
            "text": "Mensagem a ser enviada via SMS."
        },
        {
            "to": "34999999992",
            "text": "Outra mensagem a ser enviada via SMS."
        }
    ]
}'
```

Pronto! Agora basta verificar o seu celular, para ver a mensagem entregue ✅

### Acompanhando o resultado dos disparos

Agora que você já realizou o seu disparo, você pode acompanhar pelo portal da Hyperflow o resultados dos seus disparos.

<figure><img src="/files/znhZEvJEcFg2e25RY1tK" alt=""><figcaption><p>Tela para verificar o status dos SMS's disparados</p></figcaption></figure>

Nesta tela é possível filtrar por data, e você receberá uma visão consolidada por chave de API, do status dos envios realizados.

Também é possível realizar uma consulta detalhada, tendo uma resposta exata de cada envio realizado.

Para isso, basta entrar em **"Detalhes"** e filtrar o período desejado. Você pode baixar um relatório em .csv, clicando no botão **"Exportar"**

<figure><img src="/files/QzfbakJBKnNRVA6JubjQ" alt=""><figcaption><p>Detalhes dos SMS enviados</p></figcaption></figure>

Caso tenha qualquer outra dúvida, favor acionar o nosso suporte.
