# Menu

Para auxiliar na navegação de ajuda.

## Sessão Inicial - SMS

{% hint style="info" %}

* [**Introdução ao Messaging**](/sms/introducao-ao-messaging-sms)
* [**Tela inicial da plataforma** ](/sms/introducao-ao-messaging-sms/tela-inicial-da-plataforma)
* [**Meu perfil | Idioma** ](/sms/introducao-ao-messaging-sms/meu-perfil-or-idioma)
* [**Como montar sua base de clientes para envio** ](/sms/introducao-ao-messaging-sms/envio-com-arquivo)
* [**Campanhas**](/sms/introducao-ao-messaging-sms/campanhas)&#x20;
* [**Acentos e caracteres especiais**](/sms/introducao-ao-messaging-sms/acentos-e-caracteres-especiais)
* [**Envio rápido de SMS** ](/sms/introducao-ao-messaging-sms/envio-rapido-de-sms)
* [**Template SMS** ](/sms/introducao-ao-messaging-sms/template-sms)
* [**Contatos**](/sms/introducao-ao-messaging-sms/contatos)
* [**Grupos**](/sms/introducao-ao-messaging-sms/grupos)
* [**Como enviar uma mensagem** ](/sms/introducao-ao-messaging-sms/como-enviar-uma-mensagem)
* [**Envio e cancelamento de mensagens** ](/sms/introducao-ao-messaging-sms/envio-e-cancelamento-de-mensagens)
* [**Acompanhar o envio** ](/sms/introducao-ao-messaging-sms/mensagens)
* [**Relatório Consolidado** ](/sms/introducao-ao-messaging-sms/relatorio-consolidado-legado)
* [**Relatório Detalhado** ](/sms/introducao-ao-messaging-sms/relatorio-detalhado-legado)
* [**Configuração de limite de Caracteres**](/sms/introducao-ao-messaging-sms/configuracao-de-limite-de-caracteres)
  {% endhint %}

### BOT DE SMS

{% hint style="info" %}

* [**BOT SMS**](https://docs.wavy.global/permissoes/subcontas-e-usuarios)
  {% endhint %}

### Permissões

{% hint style="info" %}

* [**Subcontas e Usuários**](/permissoes/subcontas-e-usuarios)&#x20;
* [**Níveis de permissão** ](/permissoes/subcontas-e-usuarios/niveis-de-permissao)
* [**Verificação em duas etapas** ](/permissoes/verificacao-em-duas-etapas)
* [**Restrição de IP's**](/permissoes/restricao-de-ips)
* [**Usuários do sistema**](/permissoes/usuarios-do-sistema)
  {% endhint %}

### Sessão Inicial - WhatsApp

{% hint style="info" %}

* [**Introdução ao Messaging - WhatsApp** ](/whatsapp/introducao-ao-messaging-whatsapp)
* [**Tela inicial da plataforma** ](/whatsapp/introducao-ao-messaging-whatsapp/tela-inicial-da-plataforma)
* [**Meu perfil | Idioma** ](/whatsapp/introducao-ao-messaging-whatsapp/meu-perfil-or-idioma)
* [**Edição de conta**](/whatsapp/introducao-ao-messaging-whatsapp/sua-conta-whatsapp)
* [**Informações importantes para o primeiro envio**](/whatsapp/introducao-ao-messaging-whatsapp/informacoes-importantes-para-o-primeiro-envio)
* [**Template WA - O que é?** ](/whatsapp/introducao-ao-messaging-whatsapp/template)
* [**Cadastro de Template** ](/whatsapp/introducao-ao-messaging-whatsapp/cadastro-de-template)
* [**Excluindo um Template WA** ](/whatsapp/introducao-ao-messaging-whatsapp/excluindo-um-template-wa)
* [**Template pronto?** ](/whatsapp/introducao-ao-messaging-whatsapp/template-pronto)
* [**Como montar sua base de clientes para envio**](/whatsapp/introducao-ao-messaging-whatsapp/envio-com-arquivo)
* [**Realizando um envio WhatsApp** ](/whatsapp/introducao-ao-messaging-whatsapp/realizando-um-envio-whatsapp)
* [**Vinculando seu disparo a uma campanha** ](/whatsapp/introducao-ao-messaging-whatsapp/vinculando-seu-disparo-a-uma-campanha)
* [**Agendando um envio** ](/whatsapp/introducao-ao-messaging-whatsapp/agendando-um-envio)
* [**Envio e resumo** ](/whatsapp/introducao-ao-messaging-whatsapp/envio-e-resumo)
* [**Mensagens enviadas**](/whatsapp/introducao-ao-messaging-whatsapp/mensagens-enviadas)
* [**Introdução aos Relatórios** ](/whatsapp/introducao-ao-messaging-whatsapp/visualizar-relatorios)
* [**Relatório Consolidado** ](/whatsapp/introducao-ao-messaging-whatsapp/relatorio-consolidado-legado)
* [**Relatório Detalhado** ](/whatsapp/introducao-ao-messaging-whatsapp/relatorio-detalhado-legado)
* [**Relatório de Opt-out** ](/whatsapp/introducao-ao-messaging-whatsapp/relatorio-de-opt-out-legado)
* [**Relatórios de Conversas Consolidado** ](/whatsapp/introducao-ao-messaging-whatsapp/relatorios-de-conversas-consolidado-legado)
* [**Relatórios de Conversas Detalhado**](/whatsapp/introducao-ao-messaging-whatsapp/relatorios-de-conversas-consolidado-legado)
  {% endhint %}

### Contact PRO - Agentes

{% hint style="info" %}

* [**Como acessar a plataforma** ](/contactproagentes/inbox/como-acessar-a-plataforma-1)
* [**Tela de configurações**](/contactproagentes/inbox/tela-de-configuracoes)&#x20;
* [**Status | Perfil de presença** ](/contactproagentes/inbox/perfil-de-presenca)
* [**Tela de atendimentos**](/contactproagentes/inbox/tela-de-atendimentos)&#x20;
* [**Como fazer um atendimento**](/contactproagentes/inbox/como-fazer-um-atendimento)&#x20;
* [**Histórico de atendimentos**](/contactproagentes/inbox/historico-de-atendimentos)
  {% endhint %}

## Contact PRO - Supervisores

{% hint style="info" %}

* [**O que é o painel do supervisor?** ](/contactprosupervisores/todas-as-integracoes)
* [**Acessando a plataforma | Configurações pessoais**](/contactprosupervisores/todas-as-integracoes/acessando-a-plataforma-or-configuracoes-pessoais)
* [**Dashboards** ](/contactprosupervisores/todas-as-integracoes/dashboards)
* [**Descrições de Dashboards** ](/contactprosupervisores/todas-as-integracoes/descricoes-de-dashboards)
* [**Agentes**](/contactprosupervisores/todas-as-integracoes/agentes)
  {% endhint %}

### Documentação Técnica - API's e Integrações

{% hint style="info" %}

* [**Introdução - Tipos de integração**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/introducao)
* [**Atlas API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/atlas-api)
* [**S**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/sms-api)[M**S API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/sms-api)
* [**E-mail API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/e-mail-api)
* [**Fallback API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/fallback-api)
* [**WhatsApp API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/whatsapp-api)
* [**Grupos de WhatsApp API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/grupos-de-whatsapp-api)
* [**Listas WhatsApp via API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/listas-whatsapp-via-api)
* [**Envio WhatsApp via FTP**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/envio-whatsapp-via-ftp)
* [**Campanhas API**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/campanhas-api)
* [**TTL - Time to live**](https://docs.wavy.global/documentacao-tecnica/todas-as-integracoes/ttl-time-to-live)
  {% endhint %}


# Introdução

Tire todas as suas dúvidas sobre a utilização das nossas plataformas.

Documentação:

[Idioma: Espanhol - LATAM ](https://support-latam.wavy.global/)<img src="/files/-Llcvj7dmuRi759McvES" alt="" data-size="line">&#x20;

[Idioma: Inglês](https://docs.sinch.com/)

### Links importantes:

[**Documentação Técnica em inglês (English Technical Documentation)**](https://doc-messaging.wavy.global/)<img src="/files/-MglC29BylccAIlwM-1K" alt="" data-size="line">&#x20;

[**Documentação Técnica sobre integrações**](https://doc-messaging.wavy.global/)\
Tire todas as suas dúvidas sobre opções de integração, termos, fluxos, envios, status, respostas, acentos, e mais detalhes

[**Status em tempo real dos serviços que prestamos** ](https://status.wavy.global/)\
Status Page - visualize e receba em tempo real os status dos serviços que sua empresa utiliza. Integrações, operadora

#### Guia rápido - Documentações

{% file src="/files/w9qNeWdSr4QcWxfbfX1p" %}

{% file src="/files/XZM3Q7eY8FKGLqPAXEj7" %}


# Melhores práticas e dicas de Segurança – Security LATAM

Nossa missão principal é garantir a **Confidencialidade, Integridade, Disponibilidade e Privacidade de Dados** nas nossas ferramentas, então, recomendamos que alguns pontos de atenção sejam considerados ao longo do uso das nossas ferramentas:&#x20;

* **Acesso à ferramenta:** Sempre utilize redes confiáveis ao se conectar em suas contas. Garanta que não esteja utilizando redes vulneráveis de locais públicos, onde existam vulnerabilidades para pessoas mal-intencionadas. &#x20;
* **Credenciais de acesso:** As suas credenciais serão recebidas conforme descrito nessa documentação. Quando for defina-las, esteja atento quanto a quantidade de caracteres numéricos, maiúsculos e especiais. Não utilize credenciais repetidas ou de fácil adivinhação como por exemplo, **datas de aniversário, números sequenciais ou informações presentes em suas redes.** &#x20;
* **MFA:** Sempre que possível, habilite o segundo fator de autenticação (2FA) em suas contas para tornar mais difícil a ação de pessoas mal-intencionadas.&#x20;
* **Anormalidades:** Confira regularmente o uso da sua conta em nossas plataformas e comunique nosso time responsável sobre qualquer anormalidade identificada como por exemplo, acessos não reconhecidos ou disparos não programados. &#x20;
* **Cofre de senhas:** É recomendado que você utilize um dispositivo de armazenamento de senhas para evitar o uso de senhas fáceis e garantir que não irá reutilizar nenhuma das senhas anteriores. &#x20;

Em casos de dúvidas, entre em contato: **<security-latam@sinch.com>.**


# Onboarding

Tudo o que você precisa saber para sua ativação de contas.


# Business Manager

### O que é um Business Manager?​

O Business Manager é o Gerenciador de negócios da Meta, que a sua empresa precisar ter uma conta criada para conseguir conectar um número de Whatsapp Business API.​

Link: [Gerenciador de negócios](https://business.facebook.com/settings) ​​

Este é o principal requisito para conseguir conectar uma conta de Whatsapp Business API.

### Como criar e verificar seu Business Manager?​

O primeiro passo é saber se sua empresa já possui um gerenciador de negócios, para acessar clique nesse link: [Gerenciador de negócios](https://business.facebook.com/settings) , entre com suas credenciais da meta (corporativas), selecione qual gerenciador de negócios você vai utilizar.​

<figure><img src="/files/CskpQwpIxtoZkl7gsX3d" alt=""><figcaption></figcaption></figure>

Se você for direcionado para uma página como essa, significa que você não tem um gerenciador de negócios ativo, nesse caso, você precisa criar um, Clique em Criar conta e preencha o nome da sua empresa, seu nome e seu endereço de email comercial:​

<figure><img src="/files/b72TQCLxtIt3BNnWGkdS" alt=""><figcaption></figcaption></figure>

### Como verificar meu Business Manager?​

Após a criação da Conta, você vai precisar verificar a sua empresa para que não tenha ações limitadas com a ferramenta, para isso clique no centro de segurança da ferramenta: [Centro de segurança](https://business.facebook.com/settings/security?).

{% hint style="danger" %}
**Informações necessárias para verificar sua empresa:​**

* Comprovante de registro comercial: Você pode enviar um contrato social, alvará de funcionamento, inscrição no CNPJ, etc.​
* Comprovante de endereço e número de telefone comercial: pode ser enviado uma conta de luz, conta de telefone, extrato bancário, contrato social, etc.​
* Seu vínculo com a empresa: Você precisa enviar um documento que comprove que você é um representante oficial da marca.​

**Importante:** Depois de concluir a verificação da sua empresa, não é possível alterar a razão social, endereço, telefone comercial, site ou número de identificação fiscal da empresa com o Facebook.​
{% endhint %}

<figure><img src="/files/S25otbjvbS9ogaZ5v7QA" alt=""><figcaption></figcaption></figure>

### Como acompanhar o processo de verificação?​​

​​Depois de enviar as informações necessárias, basta aguardar a verificação. Este processo pode levar até 15 dias para ser finalizado, e ele acontece somente entre você cliente e o Facebook, a Sinch não tem ações nessa etapa.​

Depois que sua conta for verificada, você receberá uma notificação no Facebook sinalizando que o processo foi concluído.​

Caso não receba nenhum alerta, você pode clicar aqui e ser redirecionado para a página correta: [Informações da empresa.](https://business.facebook.com/settings/info?)

<figure><img src="/files/ENu9f6iSaTB6tdZw64G7" alt=""><figcaption></figcaption></figure>

### Porque devo ter minha empresa verificada?​

Veja abaixo as diferenças de funcionalidades entre uma empresa verificada e uma empresa não verificada:​ ​

| Empresa não verificada                                                  | Empresa verificada                                                                                 |
| ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| A conta está limitada a enviar apenas 250 mensagens diariamente.        | Conseguimos chegar até o tier ilimitado do WhatsApp, onde você não tem um limite diário de envios. |
| Não é possível solicitar o Greencheck para a conta.                     | Podemos solicitar ao facebook o Greencheck. (Lembre-se que a aprovação depende da meta)​           |
| Só é possível adicionar 2 números de telefone ao seu Business Manager.​ | Conseguimos adicionar até 25 números de telefone ao seu Business Manager.​                         |


# Abertura de chamado

<figure><img src="/files/lXnGIlyeWSz5PXpEgFfO" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Principais informações:

1. Ée necessário ter um Business Manager da Empresa (Gerenciador de negócios);​
2. ​O número a ser conectado não pode estar vinculado a uma conta ativa de WhatsApp e deve estar apto a receber o código de verificação via SMS ou Ligação (se a conta estiver conectada a um outro BSP avisar para que seja realizado um processo de migração);​
3. É necessário ter acesso administrador ao Business Manager da empresa;​
4. No momento da ativação, precisar estar com as informações que irão aparecer na conta, como: Nome da conta no Whatsapp e descrição;​
5. No momento da ativação, ter acesso a conta da plataforma da Sinch para realizar a ativação (você terá o acesso liberado durante a jornada da ativação).​
6. Importante informar se irá precisar de apoio para integração.​<br>
   {% endhint %}

### Vamos começar?

Para a primeira ativação o ticket é aberto automaticamente após assinatura de contrato, então fique tranquilo que vamos te contatar para iniciar.​

Para as demais ativações , é necessário abrir um ticket na nossa plataforma de Customer Service: [LATAM / ](https://tickets.sinch.com/plugins/servlet/desk/portal/3?requestGroup=103)[GLOBAL Applications | Help Center (sinch.com)](https://tickets.sinch.com/plugins/servlet/desk/portal/3?requestGroup=103).

Ao entrar no Customer Service, cadastre-se;​

2\. Após o cadastro, selecione Onboarding;​

3\. Na sequência, clique em "[**I Want to connect with Sinch**](https://tickets.sinch.com/plugins/servlet/desk/portal/3?requestGroup=149)"​

4\. Preencha o formulário;​

5\. Clique em criar;​

6\. Acompanhe o ticket na plataforma ou por email para ser informado dos próximos passos.​

<figure><img src="/files/SGfaTKU55YpVEpOyWywv" alt=""><figcaption></figcaption></figure>


# WhatsApp Business Processo de ativação

<figure><img src="/files/dKe2uusUPK11SESvAlHi" alt=""><figcaption></figcaption></figure>

Para iniciar o processo de Provisionamento da sua conta de Whatsapp, é muito importante a sua participação durante o processo.&#x20;

Compartilhamos as principais informações:​

1. Você precisa ter acesso de Admin do Business Manager da sua Empresa;​
2. O número a ser usado para conectar não pode nenhuma conta de Whatsapp ativa;​
3. Você precisa realizar o processo de conexão do número direto na nossa plataforma Sinch.​

### Iniciando sua ativação

A primeira ativação vamos fazer em conjunto, então durante o processo vamos oferecer uma agenda para que possamos acompanhar a ativação com você.​

Nos próximos slides, tem o passo a passo que será realizado, então é importante que vejam para que o processo fique mais fácil durante a execução. ​

Esta etapa é rápida irá durar **15 minutinhos ou até menos**!

Importante lembrar que você precisa ser Admin do BM da sua empresa e estar com o número pronto para receber o PIN.​

Conte conosco e vamos!​

### Acessando o Messaging​

[Acesse o Messaging](https://messaging.wavy.global/) com as credenciais que o time de Onboarding encaminhou.&#x20;

Na página inicial, clique em “Ativar meu número” no canto superior esquerdo​:

<figure><img src="/files/StGBszK20zD1PWWQNXlc" alt=""><figcaption></figcaption></figure>

### Conectando-se ao Facebook​

Clique em “Ativar número”​:

<figure><img src="/files/pvHqWgCq7EYdnw8Ps0qe" alt=""><figcaption></figcaption></figure>

Leia as informações que aparece no card apresentado na tela e clique em **“Entrar com o Facebook”​:**

<figure><img src="/files/Q8uHyVzdHpXpbarIDpoM" alt=""><figcaption></figcaption></figure>

Se você já estiver logado, será direcionado para essa página e basta clicar em **“Continuar como”​:**

<figure><img src="/files/bhoebs92DkQevx6xLVn7" alt=""><figcaption></figcaption></figure>

Se não estiver logado, você será direcionado para essa página e basta inserir o seu usuário e senha do Facebook​ e em seguida clique em **“entrar”:**

<figure><img src="/files/cSAP4WKMP4meRRhdrRVf" alt=""><figcaption></figcaption></figure>

### Aprovando a Sinch como BSP

Clique em "**Começar**"​

<figure><img src="/files/NNu08wxbdIczOQ8sgBms" alt=""><figcaption></figcaption></figure>

Leia as informações do card e clique em **"Continuar"** para autorizar a Sinch como BSP​:

<figure><img src="/files/dMdjQMu4EOXjVBCYWCf7" alt=""><figcaption></figcaption></figure>

Escolha o seu Gerenciador de Negócios que deseja conectar a Sinch e em seguida clique em **"Continuar"​**

<figure><img src="/files/LblqyGmj8PbGbAhESYdO" alt=""><figcaption></figcaption></figure>

Se você já tem um WABA criado, selecione-o e clique em **"Continuar"​**

<figure><img src="/files/jheMSYXSCTXzNEuDBQXF" alt=""><figcaption></figcaption></figure>

Se você quiser criar um novo, clique em **"Criar nova conta do WhatsApp Business"​**

<figure><img src="/files/4e6danjLzhqD9JYcAOiW" alt=""><figcaption></figcaption></figure>

Defina um novo nome para o novo WABA e clique em **"Continuar"​**

<figure><img src="/files/B9DgwJYRPzbP0C3KO6Q3" alt=""><figcaption></figcaption></figure>

### Próxima etapa​

Depois de selecionar ou criar o novo WABA, clique em "Ir para a etapa 2"​:

<figure><img src="/files/KFanCJiQz5j1Tfkp38Bj" alt=""><figcaption></figcaption></figure>

### Configurando a conta​

Digite o nome que você deseja utilizar na conta (essa informação será pública) e em seguida clique em "Continuar"​

<figure><img src="/files/7eua2Tkgd4Wx7cYAn6JW" alt=""><figcaption></figcaption></figure>

Selecione a categoria do seu negócio e, se quiser, adicione uma descrição. Em seguida clique em​ **"Ir para etapa 3":**

<figure><img src="/files/iAwPNc276x0NEzURgGxp" alt=""><figcaption></figcaption></figure>

Escolha o código país e informe número de telefone que será ativado​:

<figure><img src="/files/fnSGUY9eqJ0K6St0LiOB" alt=""><figcaption></figcaption></figure>

Escolha como deseja receber o número do Pin: **SMS ou Ligação**.&#x20;

Em seguida clique em **"Enviar código"** e dentro de poucos minutos você receberá uma mensagem ou chamada no número de telefone informado. ​ ​

<figure><img src="/files/rIgK91IEBoXB2hFpSBXm" alt=""><figcaption></figcaption></figure>

Digite o código recebido e em seguida clique em **"Verificar"​:**

<figure><img src="/files/JUsXtoaOWHpGLQoqkz2w" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**​Importante: O envio do código é de responsabilidade da Meta. Caso o código não chegue em seu telefone, poderá solicitar novamente após o horário que será exibido na tela.​**
{% endhint %}

Clique em "OK" para finalizar o processo de ativação da conta.​ ​ ​

<figure><img src="/files/XB2xlssDKU6mg6ALX9gQ" alt=""><figcaption></figcaption></figure>

### **Confirmando a ativação**

Ao finalizar o processo, o pop-up do Facebook fechará automaticamente e você voltará à página do Messaging com uma confirmação da ativação realizada; Selecione o número que você acabou de ativar e clique em "Confirmar"

<figure><img src="/files/mmJuMSqeKGHptO7yWOMi" alt=""><figcaption></figcaption></figure>

Se neste passo o número que foi configurado não aparecer, por favor **reinicie o processo.**&#x20;

Em caso de dúvidas, contate o nosso time de **Onboarding.​**

Clique em **"OK"​ ​ ​**

<figure><img src="/files/m0O1AHWEGHsKYXOvWEIQ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

* Nesta etapa o número já está configurado na WABA. ​
* O nome de exibição aparecerá como “pendente revisão”
  {% endhint %}

### Acompanhando o status​

No menu à esquerda, clique em "Whatsapp" > "Conta" e verifique o status da ativação da conta:​

<figure><img src="/files/jeTWcbIKzlLVZg09jc2p" alt=""><figcaption></figcaption></figure>

Caso o nome seja reprovado, você receberá a seguinte notificação​:

<figure><img src="/files/P0Ol5EvKQSVh9dM47gEO" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Se isso acontecer, entre em contato com nosso time de Onboarding o quanto antes.
{% endhint %}

Com todas as etapas concluída, o número estará pronto para disparar mensagens:

<figure><img src="/files/5i3JecyjaosgZjq7LshM" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Chegamos ao fim da ativação!​**

Agora, para entender melhor sobre as funcionalidades da plataforma e do produto, vamos enviar o seu ticket para a equipe de treinamento agendar uma sessão com o especialista.​

Em caso de dúvidas, não hesite em contatar o time de Onboarding pelo email (<onboarding-latam@sinch.com>) ou pelo ticket.
{% endhint %}


# Green Check | OBA

As contas comerciais oficiais têm o ícone verde do WhatsApp ao lado de seu nome no perfil.​

Além disso, o nome de uma conta comercial oficial é exibido mesmo que o número não esteja salvo como um contato no WhatsApp. ​

A Meta é quem avalia cada pedido de conta oficial e não garante que a empresa irá recebê-lo. A avaliação para saber se sua empresa recebe um selo verde depende de vários fatores.​

Para solicitar o Green Check de sua conta, é importante que alguns passos já tenham sido realizados: ​

* Verificação da empresa concluída. ​
* Conta de Whatsapp já conectada via Embedded ​
* Nome de exibição do perfil aprovado. ​
* Verificação em duas etapas ativada.&#x20;

### Solicitando o Green Check:​

1. Acesse o Gerenciador do WhatsApp no seu Gerenciador de Negócios. Na seção Visão geral, clique no número de telefone para o qual deseja solicitar uma OBA. ​

<figure><img src="/files/pR3jY7z8vJ1f0DD3i7Nu" alt=""><figcaption></figcaption></figure>

&#x20;2\. Ative a confirmação em duas etapas para esse número de telefone para se candidatar à OBA. ​

(Se precisar de ajuda, siga as instruções na documentação [Confirmação em duas etapas](https://developers.facebook.com/docs/whatsapp/api/settings/two-factor))

<figure><img src="/files/oqkdePo53bx2NZTPBTed" alt=""><figcaption></figcaption></figure>

3. Clique no botão "Enviar solicitação" e preencha as informações necessárias. ​
4. Inclua o link do site e no item Reason for request (motivo do pedido) inclua todas as informações que você considerar importante para auxiliar no processo com o time de Suporte da Meta. ​

* É possível enviar até 5 links de apoio para comprovar a existência da empresa. ​
* Sugerimos sempre incluir um link da empresa no wikipedia, caso você tenha.​

Quando a Meta concluir a análise da solicitação, você receberá uma notificação informando se a conta foi aprovada para ter o Green Check ou não. ​

Se a solicitação for rejeitada, será possível enviar um novo pedido **após 30 dias.**


# Migração de número

### O que é a migração entre BSP's?​

BSPs (provedores de soluções empresariais) e empresas diretamente integradas à Plataforma WhatsApp Business podem migrar um número de telefone cadastrado de uma conta WhatsApp Business (WABA) para outra, a qualquer momento.​

A migração de telefone significa que uma empresa pode manter o mesmo número de telefone se:​

1. Está usando a plataforma com um BSP e deseja mudar para outro provedor.
2. Está usando implementação própria e quer mudar para um BSP.​

{% hint style="danger" %}
**Somente Provedores de Soluções Empresariais (BSPs) e empresas diretamente integradas à Plataforma WhatsApp Business podem realizar a migração de números de telefone.​**
{% endhint %}

### Informações que serão mantidas após a migração

* Nome de exibição (vname);
* Classificação de qualidade da conta​;
* Limites de envio da conta (Tier);
* Status oficial da conta de negociação​;
* Qualquer mensagem de alta qualidade previamente aprovada (Template);​

### Visão Geral​

O processo de migração do telefone envolve 3 ativos principais:​

| WABA Atual​                                                     | Número de telefone​       | WABA Final​               |
| --------------------------------------------------------------- | ------------------------- | ------------------------- |
| A conta onde o número de telefone está previamente registrado.​ | Número que será migrado.​ | Número que será migrado.​ |

A migração do telefone é sempre iniciada pelo BSP ou pela empresa proprietária do WABA final. ​

Para isso, é necessário informar o Business Manager ID.​

### Como a migração funciona​

Até que a migração do telefone seja concluída no BSP final, a conta pode continuar recebendo e enviando mensagens sem interrupção no serviço.&#x20;

Após a conclusão da migração, o BSP final começará a enviar mensagens imediatamente, sem tempo de inatividade.&#x20;

A migração leve cerca de **1 à 3 horas** após o cliente realizar o aceite da nossa notificação e tenha disponibilidade para receber o pincode.​

Se existir mais de um número, a migração será realizada número por número, não é possível fazer uma migração única para vários números. Mas, é possível ser realizado em uma única chamada com o cliente, considerando que o cliente precisará receber o pin de todos os números a serem migrados.​

### Migração de templates​

Templates de alta qualidade previamente aprovados no BSP inicial serão copiados para o novo BSP automaticamente. Caso exceda o limite de templates, para criar um novo será necessário excluir alguns dos que foram copiados.​

Templates de baixa qualidade, recusados ou pendentes <mark style="color:red;">**não serão migrados.**</mark>

{% hint style="danger" %}
Histórico de mensages e chats **não são migrados**.&#x20;

Também **não é possível migrar vários números ao mesmo tempo**.&#x20;

É possível agendar um horário e fazer todos os números na sequência, mas o cliente precisará receber o pin de todos os números a serem migrados.​
{% endhint %}

### Migração de Faturamento​

As mensagens enviadas antes da migração são cobradas no BSP atual. ​

As mensagens enviadas após a migração serão cobradas no BSP final. ​

As mensagens enviadas antes da migração serão sempre cobradas no BSP inicial, mesmo se forem entregues após a migração.

**Para ser elegível para migração, é necessário atender aos seguintes critérios:**

* Número de telefone​;
* Se a autenticação de dois fatores **(2FA) foi habilitada** para esse número, ela deve ser desabilitada.​
* Para isso, o cliente deve solicitar ao BSP atual que desative a autenticação de dois fatores (2FA) em sua conta.​

### Conta de Origem​

​Deve ter a verificação comercial concluída e aprovada.​

O status da conta deve ser aprovado.​

<figure><img src="/files/rMaciQt5MzdlIYD4qudu" alt=""><figcaption></figcaption></figure>

### Passos Finais​

Quando o BSP atual desativar a 2FA, será necessário criar um ticket no Sinch Service Center.​

Preencha o formulário com todas as informações necessárias. Elas são importantes para que o nosso time de Onboarding consiga realizar o processo de migração corretamente. ​

E nos envie as seguinte informações no ticket: ​

* Qual o BSP atual? ​
* A Conta a ser migrada está Verificada? (Business Verification) ​
* A conta atual está conectada em uma infraestrutura One-premisse ou Cloud API? (validar com o atual provedor) ​
* Qual o status que aparece neste instante no seu antigo BSP (broker)? (Ex. conectada, pendente) ​
* Qual o Waba ID da conta conectada atualmente (perguntar para o broker atual)? ​
* Qual o Business Manager ID? ​

Assim que o ticket for criado, nosso time de Onboarding entrará em contato para finalizar a migração. ​

<figure><img src="/files/SGfaTKU55YpVEpOyWywv" alt=""><figcaption></figcaption></figure>

Link: [LATAM / GLOBAL Applications | Help Center ](https://tickets.sinch.com/plugins/servlet/desk/portal/3?requestGroup=103)[(sinch.com)](https://tickets.sinch.com/plugins/servlet/desk/portal/3?requestGroup=103)​


# Primeiros passos

Olá!​

Vamos te ajudar com a sua jornada na Sinch!  Nosso maior desejo neste momento é te entregar a melhor experiência e para isso, precisamos alinhar alguns pontos:​

1. Para conectar uma conta de Whatsapp Business, é essencial que a sua empresa tenha uma conta no Facebook Business Manager.​
2. A pessoa que será responsável por conectar a conta e acompanhar o Onboarding com a Sinch, precisará ter o acesso de Admin ao Business Manager da Empresa e a conexão deve acontecer em até 48 horas após liberarmos os acessos.​
3. O número que vamos conectar não pode ter nenhuma conta de Whatsapp ativa.​
4. Business Manager Verificado – Preciso ou não verificar a minha conta?​
5. Como solicitar o Green Check.​
6. Como solicitar uma conta adicional de Whatsapp?​

Não se preocupe! Vamos te auxiliar com todos esses pontos...

### Como sei se minha empresa tem uma conta no Facebook Business Manager?​

Acesse este link: <https://business.facebook.com/settings> , entre com suas credenciais do facebook (corporativas), selecione qual gerenciador de negócios você vai utilizar.​

Se você for direcionado para essa página, já possuem a conta que precisaremos​:

<figure><img src="/files/9linmPgUhPwygUi7iDtt" alt=""><figcaption></figcaption></figure>

Se for direcionado para essa página, vocês ainda não possuem uma conta, basta clicar em “criar conta” e seguir os passos solicitados pela Meta.​

<figure><img src="/files/v936QtLtTzsHRQIDqINY" alt=""><figcaption></figcaption></figure>

### Por que preciso ter o acesso de Admin ao Business Manager da Empresa?​

O processo de conectar o seu número no Whatsapp Business se tornou muito mais simples! A Meta criou uma nova funcionalidade chamada Embedded, em que você cliente realiza a conexão do seu próprio número de maneira mais rápida e com maior autonomia. Para a realização do Embedded, é necessário que o perfil Admin do Business Manager realize essa conexão.​

| Empresa não verificada                                                  | Empresa verificada                                                                                 |
| ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| A conta está limitada a enviar apenas 250 mensagens diariamente.        | Conseguimos chegar até o tier ilimitado do WhatsApp, onde você não tem um limite diário de envios. |
| Não é possível solicitar o Greencheck para a conta.                     | Podemos solicitar ao facebook o Greencheck. (Lembre-se que a aprovação depende da meta)​           |
| Só é possível adicionar 2 números de telefone ao seu Business Manager.​ | Conseguimos adicionar até 25 números de telefone ao seu Business Manager.​                         |

### Como saber se minha empresa já foi verificada?​

No gerenciador de negócios, você pode clicar neste link: [Informações da empresa](https://business.facebook.com/settings/info?), e visualizar o status do seu gerenciador de negócios:

Se a sua página está com o selo verde e verificado, sua empresa já possui a verificação.​

<figure><img src="/files/tFB366UjlKZw9O5ghkBE" alt=""><figcaption></figcaption></figure>

Se não estiver verificado, clique em: Centro de segurança > Iniciar verificação​

<figure><img src="/files/2hpoov0Q0ig3knUwTdYp" alt=""><figcaption></figcaption></figure>

### Quais são os próximos passos para verificar a minha conta?

Você precisará enviar a Meta alguns documentos que comprovem a existência da Empresa.&#x20;

Lembre-se de enviar documentos atualizados, pois algumas informações como Razão Social, endereço, telefone comercial, site e outros não poderão ser alterados.

Principais documentos solicitados pela Meta:​

* **Comprovante de registro comercial:** Você pode enviar um contrato social, alvará de funcionamento, inscrição no CNPJ, etc.​
* **Comprovante de endereço e número de telefone comercial:** pode ser enviado uma conta de luz, conta de telefone, extrato bancário, contrato social, etc.​
* **Seu vínculo com a empresa:** Você precisa enviar um documento que comprove que você é um representante oficial da marca.​

{% hint style="danger" %}
Depois do envio da documentação aguarde o retorno da Meta, que pode ocorrer em até 15 dias. (Por essa razão, indicamos que você solicite a verificação da conta antes de iniciar o Onboarding)​

Se desejar verificar o status de sua solicitação clique em: Centro de segurança > Verificação da Empresa​
{% endhint %}

**O número que vamos conectar não pode ter nenhuma conta de Whatsapp ativa.​**

A Meta não nos permite conectar uma conta que já tenha uma conta de Whatsapp ativa. Se o número que você deseja conectar já tem uma conta de Whatsapp ativa particular ou comercial, é necessário que você apague esta conta para seguirmos com a sua solicitação.​

Neste link você encontra o passo a passo para apagar a conta:​

[Como apagar sua conta | Central de Ajuda do WhatsApp](https://faq.whatsapp.com/2138577903196467/?cms_platform=android\&cms_id=2138577903196467%5d)​

É importante que você saiba que após apagar a conta, não será mais possível acessar o histórico e nem mesmo visualizar as conversas pelo aplicativo, ou seja, o histórico será perdido.​

Se você já tem uma conta de Whatsapp Business e deseja migrar o número para a Sinch, fale com o seu Consultor Comercial, para mais detalhes.​

### ​Como solicitar uma conta adicional de Whatsapp?

Se você já tem um ou mais números conectados e deseja conectar um novo número de Whatsapp ou sms o primeiro passo é ter um contrato do serviço solicitado com a Sinch.​

Após isso, abra um ticket para o time de Onboarding.​

1\. Entre no [Service Center](https://tickets.sinch.com/plugins/servlet/desk/portal/3) e selecione a opção, “Sinch Customers”​

​2. Em seu primeiro acesso, será necessário realizar o seu cadastro. \
Clique em: “Sign up for an account”

<figure><img src="/files/Zd3QdJKFdfrghsT6KSNz" alt=""><figcaption></figcaption></figure>

3. Insira o seu endereço de e-mail e em seguida clique em “Sign Up”. ​
4. Cheque o seu endereço de e-mail​

<figure><img src="/files/BvBxais09YKaFdqrmv8H" alt=""><figcaption></figcaption></figure>

### Como solicitar uma conta adicional de Whatsapp?​

​Você receberá um e-mail com o assunto:  ​

\[Sinch JIRA] Concluir a inscrição na Central de Ajuda do Sinch Tickets​

Ou em inglês: \[Sinch JIRA] Finish signing up to Sinch Tickets Help Center​

5\. Clique em se inscrever​

6\. Preencha as suas informações, crie uma senha e em seguida clique em “Salvar e continuar”

​

<figure><img src="/files/Ruv0G9NvEaha2vxjY9NB" alt=""><figcaption></figcaption></figure>

7. Selecione Latam / Global Applications​

8\. Selecione Onboarding > I Want to connect with Sinch ​

​

<figure><img src="/files/mbRPIArz5P5tQISXeeOJ" alt=""><figcaption></figcaption></figure>

9\. Preencha as informações solicitadas e clique em enviar. ​

Aguarde que o time de Onboarding entrará em contato.​​

​

​


# Idiomas

Para auxiliar na navegação de ajuda.

Acompanhe os idiomas em que nossa documentação está disponível.


# Documentação Técnica - SMS

Seja bem vindo a nossa documentação para desenvolvedores.&#x20;

Aqui você encontrará tudo que precisa para integrar sua empresa à nossa plataforma de mensagens.


# Possíveis integrações

É possível fazer a integração através das seguintes formas:

<table><thead><tr><th width="183"></th><th></th></tr></thead><tbody><tr><td><strong>API HTTPS</strong></td><td>Permite o envio e recebimento de mensagens e status através do protocolo HTTPS utilizando os métodos GET ou POST</td></tr><tr><td><strong>API SMPP</strong></td><td>Protocolo especifico para troca de mensagens SMS, permite manter uma conexão ativa constante com nosso servidor SMPP, e é indicado para clientes com tráfego superior a 5 milhões de mensagens por mês</td></tr><tr><td><strong>API SFTP</strong></td><td>Protocolo utilizado para transferência de arquivos, é indicado para envios de mensagens em massa (lote). Os arquivos são transferidos pelo cliente para nossos servidores, e são imediatamente processados</td></tr><tr><td><strong>Websphere MQ</strong></td><td>Utilizado para transferência de mensagens entre servidores Websphere MQ, é indicado para clientes com tráfego superior a 30 milhões de mensagens por mês, principalmente para bancos financeiros, onde o cliente já possui este sistema em funcionamento para mensagens internas. Esta opção de integração possui um valor de setup e manutenção de ambiente, fixados em R$50.000,00 e R$2.000,00 respectivamente</td></tr></tbody></table>

Conheça também nossa [**plataforma web**](https://mesaging.sinch.com), por ele sua empresa pode administrar usuários, projetos e configurações, enviar e receber mensagens, e obter relatórios, sem a necessidade de desenvolvimento e integração.


# Termos importantes

<table data-header-hidden><thead><tr><th width="160"></th><th width="210"></th><th></th></tr></thead><tbody><tr><td><strong>MT</strong></td><td>Mobile Terminated</td><td>É o termo utilizado para mensagens que possuem o usuário (aparelho) como destino. Ou seja, mensagens que foram originadas por sua empresa, com destino ao usuário (aparelho).</td></tr><tr><td><strong>Response</strong></td><td>Resposta sincrona da Sinch</td><td>É a resposta imediata de uma requisição feita em nossa API, onde informamos se a mensagem foi aceita ou não por nossa plataforma.</td></tr><tr><td><strong>Callback</strong></td><td>Sent status ou status de envio</td><td>É o primeiro status de envio que retornamos, onde informamos se foi possível, ou não, fazer a entrega da mensagem <strong>para a operadora</strong>.</td></tr><tr><td><strong>DR ou DLR</strong></td><td>Delivery Receipt</td><td>É o segundo status de envio que retornamos, onde informamos se foi possível, ou não, fazer a entrega <strong>para o aparelho</strong>. As operadoras enviam para a Sinch esta informação, e nós repassamos para o cliente. O tempo de entrega é variável, por exemplo, se o aparelho estava desligado no momento do envio, e o usuário ligou 2 horas depois, este status DLR será entregue para o cliente, com duas horas de atraso.<br><strong>Obs1:</strong> Esta confirmação de entrega no aparelho existirá somente para os casos em que a mensagem foi entregue com sucesso na operadora, ou seja, o primeiro status (callback) foi de sucesso.<br><strong>Obs2:</strong> É muito importante ressaltar, que, infelizmente, as operadoras OI e Sercomtel não possuem esta funcionalidade, ou seja, não nos retornam a informação de entrega no aparelho. Os envios feitos para números destas operadoras, terão somente a informação de entrega na operadora (callback)</td></tr><tr><td><strong>MO</strong></td><td>Mobile Originated</td><td>É o termo utilizado para mensagens que possuem sua empresa como destino. Ou seja, mensagens que foram originadas pelo usuário (aparelho). É utilizado por exemplo, em fluxos de pergunta e respostas via SMS, quando é necessário uma confirmação por parte do usuário.</td></tr><tr><td><strong>LA</strong></td><td>Short Code</td><td>Número curto de 5 ou 6 dígitos, utilizado para envio e recebimento de mensagens SMS. São designados pelas operadoras para integradores homologados (Sinch), e possuem regras anti-fraude e anti-spam</td></tr><tr><td>Retorno de chamada ou IDR</td><td>Status enviado</td><td>O primeiro status de entrega (ou Intermediate Delivery Status) que devolvemos, onde informamos se foi possível entregar a mensagem à transportadora, ou não.</td></tr></tbody></table>


# Fluxo de mensagem e API

## Fluxo de Mensagem

Fluxo simplificado: MT, Callback, DLR, MO

<figure><img src="/files/jCQiKBe0BtSjE9bpx67z" alt=""><figcaption></figcaption></figure>

## API HTTPS

Esta API permite que você automatize as requisições de envios de mensagens, únicas ou em lote, e a recuperação dos status de envio através de consultas. Ela utiliza o protocolo HTTP com TLS e aceita os métodos GET, com a passagem de parâmetros na query string, ou POST, com parâmetros em [JSON](http://json.org/).

#### Autenticação <a href="#autentica-o" id="autentica-o"></a>

Para efetuar envios e consultas em nossa API é necessária a autenticação por meio de usuário ou e-mail, em conjunto com um token.

<table data-header-hidden><thead><tr><th width="152" align="center">Campo</th><th width="446" align="center">Detalhes</th><th align="center">Data Type</th></tr></thead><tbody><tr><td align="center">Campo</td><td align="center">Detalhes</td><td align="center">Data Type</td></tr><tr><td align="center"><strong>UserName</strong></td><td align="center">Seu usuário ou email</td><td align="center">String</td></tr><tr><td align="center"><strong>Authentication Token</strong></td><td align="center">Seu token de autenticação. Adquira o seu aqui (<a href="/pages/5FYNrsD4rd62iyMzF2GS"><strong>mesmo link</strong></a>).</td><td align="center">String</td></tr><tr><td align="center"><strong>TemplateID</strong></td><td align="center">Identificador de modelo de SMS. O texto da mensagem será recuperado e deve ser criado primeiro por meio do Portal do Messaging.</td><td align="center">Long</td></tr><tr><td align="center"><strong>TemplateName</strong></td><td align="center">Nome do modelo de SMS. Pode não ser exclusivo, resultando em erro se mais de um modelo for encontrado para o nível de acesso do usuário. O texto da mensagem será recuperado e deve ser criado primeiro por meio do <a href="https://messaging.sinch.com"><strong>Portal do Messaging</strong></a><strong>.</strong></td><td align="center">String</td></tr></tbody></table>

## Detalhes de conexão <a href="#detalhes-de-conex-o" id="detalhes-de-conex-o"></a>

<table><thead><tr><th width="180" align="center">Campo</th><th>Detalhes</th></tr></thead><tbody><tr><td align="center"><strong>Hostname</strong></td><td>api-messaging.wavy.global</td></tr><tr><td align="center"><strong>API's</strong></td><td>Envios individuais /v1/send-sms<br>Envios em lote /v1/send-bulk-sms</td></tr><tr><td align="center"><strong>Porta</strong></td><td>443 (https)</td></tr><tr><td align="center"><strong>Protocolo</strong></td><td>HTTPS (encriptação TLS)</td></tr><tr><td align="center"><strong>Autenticação</strong></td><td><a href="/pages/sERt8eKNs3ODiudrDpmC">username + token</a></td></tr><tr><td align="center"><strong>Portal</strong></td><td>messaging.wavy.global</td></tr></tbody></table>

{% hint style="danger" %}
**Para enviar mensagens e obter status por meio da API, é necessário autenticar usando uma combinação de nome de usuário ou e-mail e token de autenticação. Os parâmetros abaixo deverão estar presentes em cabeçalhos específicos da sua solicitação**
{% endhint %}

## Codificação (encoding) <a href="#codifica-o-encoding" id="codifica-o-encoding"></a>

O Padrão de codificação utilizado é o UTF-8, todo conteúdo das mensagens deve seguir esse padrão.

É possível escapar os caracteres caso deseje ou codificar utilizando o formato HTTP.

Ao lado estão alguns exemplos de codificação:

```
“messageText”:“A combinação foi perfeita :)”
```

Ou você pode escapar os caracteres caso queira:

```
“messageText”:“A combina\u00e7\u00e3o foi perfeita :)"
```


# Envio de mensagens (MT)

### URL para envios unitários com método POST <a href="#url-para-envios-unit-rios-com-m-todo-post" id="url-para-envios-unit-rios-com-m-todo-post"></a>

`POST https://api-messaging.wavy.global/v1/send-sms - Content-Type: application/json`

#### Parametros da Requisição <a href="#parametros-da-requisi-o" id="parametros-da-requisi-o"></a>

\* Campo obrigatório

<table><thead><tr><th width="173">Campo</th><th width="440">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>destination*</td><td>Telefone para qual será enviada a mensagem (incluido código de país). Exemplo: 5511900000000</td><td>String</td></tr><tr><td>messageText*</td><td>Texto da mensagem que será enviada (max 1280 chars).</td><td>String</td></tr><tr><td>correlationId</td><td>Um ID único definido por você para batimento com os status de envio (callback e DLR). Este parâmetro é opcional, e você pode utilizar o ID gerado pela Wavy para este batimento (max 64 chars).</td><td>String</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra que você deseja adicionar a mensagem (max 255 chars).</td><td>String</td></tr><tr><td>timeWindow</td><td>Mensagens serão enviadas apenas no horário especificado. Por exemplo, Se você configurar uma janela [11, 12, 18], as mensagens serão enviadas entre 11:00 e 11:59, 12:00 e 12:59 e 18:00 e 18:59, este parâmetro deve ser definido na raiz do objeto JSON</td><td>Integer[]</td></tr><tr><td>expiresAt</td><td>A mensagem não será enviada após esta data. O formato utilizado é o <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a> . Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>expiresInMinutes</td><td>A mensagem será expirada após o tempo informado neste campo. O tempo passa a ser ontabilizado assim que a mensagem é recebida pela Wavy.. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>expiresDate</td><td>A mensagem não será enviada após esta data. O campo aceita o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>String</td></tr><tr><td>scheduledAt</td><td>A mensagem não será enviada após esta data. IMPORTANTE! É possivel realizar o agendamento apenas em um periodo superior a 30 minutos, pois é processado por um fluxo diferenciado do envio sem agendamento. O formato utilizado é o <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a>. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>delayedInMinutes</td><td>Minutos depois que a requisição é feita que a mensagem será enviada. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>scheduledDate</td><td>A mensagem não será enviada antes desta data. O campo suporta o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>String</td></tr><tr><td>timeZone</td><td>Especifica o timezone que será utilizado diretamente nos campos: expiresDate, scheduledDate and timeWindow (que será modificado caso seja utilizado timezones dinamicos, como os com horário de verão). Se o timezone não estiver presente na requisição o sistema irá verificar o timezone do usuário - se presente - ou o timezone do país do usuário em último caso. Se nenhuma das opções estiverem presentes, o sistema irá utlizar o horário UTC</td><td>String</td></tr><tr><td>campaignAlias</td><td>Identificação de campanha criada previamente. <a href="https://messaging.wavy.global/dashboard/campaigns">Clique aqui</a> para registar uma nova campanha, este parâmetro deve ser definido na raiz do objeto JSON</td><td>String</td></tr><tr><td>flashSMS</td><td>Flash SMS, use esta opção para enviar uma mensagem pop-up no telefone do usuário. Para enviar uma mensagem Flash passe o parametro true.</td><td>Boolean</td></tr><tr><td>flowId</td><td>Identificador do fluxo de Bot. O texto da mensagem virá do fluxo selecionado</td><td>String</td></tr><tr><td>subAccount</td><td>Referência da subconta. Ela só pode ser utilizada por usuários Administradores</td><td>String</td></tr><tr><td>params</td><td>Mapa de placeholders que serão substituídos no texto da mensagem. Se um ou mais parâmetros estiverem incorretos, a mensagem será marcada como inválida, mas o envio não será cancelado. É necessário enviar o flowId para utilizar os parâmetros</td><td>Map</td></tr></tbody></table>

{% tabs %}
{% tab title="cURL" %}

```
curl -X POST \
  https://api-messaging.wavy.global/v1/send-sms \
  -H 'authenticationtoken: <authenticationtoken>' \
  -H 'username: <username>' \
  -H 'content-type: application/json' \
  -d '{"destination": "5511900000000" , "messageText": "linha\nquebrada"}'
```

{% endtab %}

{% tab title="Ruby" %}

```
require 'uri'
require 'net/http'

url = URI("https://api-messaging.wavy.global/v1/send-sms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["username"] = '<username>'
request["authenticationtoken"] = '<authenticationtoken>'
request["content-type"] = 'application/json'
request.body = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}"

response = http.request(request)
puts response.read_body
```

{% endtab %}

{% tab title="Python" %}

```
import requests

url = "https://api-messaging.wavy.global/v1/send-sms"

payload = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}"
headers = {
    'username': "<username>",
    'authenticationtoken': "<authenticationtoken>",
    'content-type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```
> sudo apt-get/yum install php5-curl

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-messaging.wavy.global/v1/send-sms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}",
  CURLOPT_HTTPHEADER => array(
    "authenticationtoken: <authenticationtoken>",
    "username: <username>",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

{% endtab %}

{% tab title="Java" %}

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
```

{% endtab %}
{% endtabs %}

Ao fazer o envio, você receberá um JSON informando o id que foi gerado para esta mensagem (Response ou Resposta síncrona da Wavy):

{% tabs %}
{% tab title="cURL" %}

```
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
```

{% endtab %}

{% tab title="Ruby" %}

```
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
```

{% endtab %}

{% tab title="Python" %}

```
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
```

{% endtab %}

{% tab title="PHP" %}

```
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
```

{% endtab %}

{% tab title="Java" %}

```
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
```

Via método GET, é possivel realizar o envio de uma mensagem passando todos os parâmetros como query string.

#### URL para envios unitários com método GET <a href="#url-para-envios-unit-rios-com-m-todo-get" id="url-para-envios-unit-rios-com-m-todo-get"></a>

`GET https://api-messaging.wavy.global/v1/send-sms?destination=..`

Via método POST, é possivel realizar o envio de uma mensagem passando todos os parâmetros no body.

#### URL para envios unitários com método POST <a href="#url-para-envios-unit-rios-com-m-todo-post" id="url-para-envios-unit-rios-com-m-todo-post"></a>

`POST https://api-messaging.wavy.global/v1/send-sms - Content-Type: application/json`

#### Parametros da Requisição <a href="#parametros-da-requisi-o" id="parametros-da-requisi-o"></a>

\* Campo obrigatório

| Campo            | Detalhes                                                                                                                                                                                                                                                                                                                                                                                                                                               | Tipo       |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- |
| destination\*    | Telefone para qual será enviada a mensagem (incluido código de país). Exemplo: 5511900000000                                                                                                                                                                                                                                                                                                                                                           | String     |
| messageText\*    | Texto da mensagem que será enviada (max 1280 chars).                                                                                                                                                                                                                                                                                                                                                                                                   | String     |
| correlationId    | Um ID único definido por você para batimento com os status de envio (callback e DLR). Este parâmetro é opcional, e você pode utilizar o ID gerado pela Wavy para este batimento (max 64 chars).                                                                                                                                                                                                                                                        | String     |
| extraInfo        | Qualquer informação extra que você deseja adicionar a mensagem (max 255 chars).                                                                                                                                                                                                                                                                                                                                                                        | String     |
| timeWindow       | Mensagens serão enviadas apenas no horário especificado. Por exemplo, Se você configurar uma janela \[11, 12, 18], as mensagens serão enviadas entre 11:00 e 11:59, 12:00 e 12:59 e 18:00 e 18:59, este parâmetro deve ser definido na raiz do objeto JSON                                                                                                                                                                                             | Integer\[] |
| expiresAt        | A mensagem não será enviada após esta data. O formato utilizado é o [Unix time](https://en.wikipedia.org/wiki/Unix_time) . Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                                                                                                                                                                                   | Long       |
| expiresInMinutes | A mensagem será expirada após o tempo informado neste campo. O tempo passa a ser ontabilizado assim que a mensagem é recebida pela Wavy.. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                                                                                                                                                                    | Long       |
| expiresDate      | A mensagem não será enviada após esta data. O campo aceita o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                                                                                                                                                                                                         | String     |
| scheduledAt      | A mensagem não será enviada após esta data. IMPORTANTE! É possivel realizar o agendamento apenas em um periodo superior a 30 minutos, pois é processado por um fluxo diferenciado do envio sem agendamento. O formato utilizado é o [Unix time](https://en.wikipedia.org/wiki/Unix_time). Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                         | Long       |
| delayedInMinutes | Minutos depois que a requisição é feita que a mensagem será enviada. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                                                                                                                                                                                                                                              | Long       |
| scheduledDate    | A mensagem não será enviada antes desta data. O campo suporta o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)                                                                                                                                                                                                                                      | String     |
| timeZone         | Especifica o timezone que será utilizado diretamente nos campos: expiresDate, scheduledDate and timeWindow (que será modificado caso seja utilizado timezones dinamicos, como os com horário de verão). Se o timezone não estiver presente na requisição o sistema irá verificar o timezone do usuário - se presente - ou o timezone do país do usuário em último caso. Se nenhuma das opções estiverem presentes, o sistema irá utlizar o horário UTC | String     |
| campaignAlias    | Identificação de campanha criada previamente. [Clique aqui](https://messaging.wavy.global/dashboard/campaigns) para registar uma nova campanha, este parâmetro deve ser definido na raiz do objeto JSON                                                                                                                                                                                                                                                | String     |
| flashSMS         | Flash SMS, use esta opção para enviar uma mensagem pop-up no telefone do usuário. Para enviar uma mensagem Flash passe o parametro true.                                                                                                                                                                                                                                                                                                               | Boolean    |
| flowId           | Identificador do fluxo de Bot. O texto da mensagem virá do fluxo selecionado                                                                                                                                                                                                                                                                                                                                                                           | String     |
| subAccount       | Referência da subconta. Ela só pode ser utilizada por usuários Administradores                                                                                                                                                                                                                                                                                                                                                                         | String     |
| params           | Mapa de placeholders que serão substituídos no texto da mensagem. Se um ou mais parâmetros estiverem incorretos, a mensagem será marcada como inválida, mas o envio não será cancelado. É necessário enviar o flowId para utilizar os parâmetros                                                                                                                                                                                                       | Map        |

#### Envio por método POST - Individual ou em lote <a href="#envio-por-m-todo-post-individual-ou-em-lote" id="envio-por-m-todo-post-individual-ou-em-lote"></a>

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-bulk-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }," +
                " { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }]," +
                " \"defaultValues\":{\"messageText\":\"Default message\" }}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
```

{% endtab %}
{% endtabs %}

### Envio por método POST - Individual ou em lote <a href="#envio-por-m-todo-post-individual-ou-em-lote" id="envio-por-m-todo-post-individual-ou-em-lote"></a>

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

{% hint style="danger" %}
**Existe um limite de 1000 mensagens por requisição**
{% endhint %}

### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

`POST https://api-messaging.wavy.global/v1/send-bulk-sms Content-Type: application/json`

O corpo da requisição precisa conter o objeto JSON com as informações conforme campos abaixo:

\* Campo obrigatório

<table><thead><tr><th width="163">Campo</th><th width="485">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>destination*</td><td>Telefone para qual será enviada a mensagem (incluido código de país). Exemplo: 5511900000000</td><td>String</td></tr><tr><td>messageText*</td><td>Texto da mensagem que será enviada (max 1280 chars).</td><td>String</td></tr><tr><td>correlationId</td><td>Um ID único definido por você para batimento com os status de envio (callback e DLR). Este parâmetro é opcional, e você pode utilizar o ID gerado pela Wavy para este batimento (max 64 chars).</td><td>String</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra que você deseja adicionar a mensagem (max 255 chars).</td><td>String</td></tr><tr><td>timeWindow</td><td>Mensagens serão enviadas apenas no horário especificado. Por exemplo, Se você configurar uma janela [11, 12, 18], as mensagens serão enviadas entre 11:00 e 11:59, 12:00 e 12:59 e 18:00 e 18:59</td><td>Integer[]</td></tr><tr><td>expiresAt</td><td>A mensagem não será enviada após esta data. O formato utilizado é o <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a> . Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>expiresInMinutes</td><td>A mensagem será expirada após o tempo informado neste campo. O tempo passa a ser ontabilizado assim que a mensagem é recebida pela Wavy.. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>expiresDate</td><td>A mensagem não será enviada após esta data. O campo aceita o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>String</td></tr><tr><td>scheduledAt</td><td>A mensagem não será enviada após esta data. O formato utilizado é o <a href="https://en.wikipedia.org/wiki/Unix_time">Unix time</a>. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>delayedInMinutes</td><td>Minutos depois que a requisição é feita que a mensagem será enviada. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>Long</td></tr><tr><td>scheduledDate</td><td>A mensagem não será enviada antes desta data. O campo suporta o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)</td><td>String</td></tr><tr><td>timeZone</td><td>Especifica o timezone que será utilizado diretamente nos campos: expiresDate, scheduledDate and timeWindow (que será modificado caso seja utilizado timezones dinamicos, como os com horário de verão). Se o timezone não estiver presente na requisição o sistema irá verificar o timezone do usuário - se presente - ou o timezone do país do usuário em último caso. Se nenhuma das opções estiverem presentes, o sistema irá utlizar o horário UTC</td><td>String</td></tr><tr><td>campaignAlias</td><td>Identificação de campanha criada previamente. <a href="https://messaging.wavy.global/dashboard/campaigns">Clique aqui</a> para registar uma nova campanha</td><td>String</td></tr><tr><td>flashSMS</td><td>Flash SMS, use esta opção para enviar uma mensagem pop-up no telefone do usuário. Para enviar uma mensagem Flash passe o parametro true.</td><td>Boolean</td></tr><tr><td>flowId</td><td>Identificador do fluxo de Bot. O texto da mensagem virá do fluxo selecionado</td><td>String</td></tr><tr><td>subAccount</td><td>Referência da subconta. Ela só pode ser utilizada por usuários Administradores</td><td>String</td></tr><tr><td>params</td><td>Mapa de placeholders que serão substituídos no texto da mensagem. Se um ou mais parâmetros estiverem incorretos, a mensagem será marcada como inválida, mas o envio não será cancelado. É necessário enviar o flowId para utilizar os parâmetros</td><td>Map</td></tr></tbody></table>

{% hint style="danger" %}
**IMPORTANTE! Para cada subconta existe um usuário de sistema único.**
{% endhint %}

{% tabs %}
{% tab title="cURL" %}

```
curl --request POST \
  --url https://api-messaging.wavy.global/v1/send-bulk-sms \
  --header 'authenticationtoken: <Token de autenticação>' \
  --header 'username:<Usuário Wavy Messaging>' \
  --header 'content-type: application/json' \
  --data "{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}"
```

{% endtab %}

{% tab title="Ruby" %}

```
require 'uri'
require 'net/http'

url = URI("https://api-messaging.wavy.global/v1/send-bulk-sms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["username"] = '<username>'
request["authenticationtoken"] = '<authenticationtoken>'
request["content-type"] = 'application/json'
request.body = '{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}'

response = http.request(request)
puts response.read_body
```

{% endtab %}

{% tab title="Python" %}

```
import requests

url = "https://api-messaging.wavy.global/v1/send-bulk-sms"

payload = '{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}'
headers = {
    'username': "<username>",
    'authenticationtoken': "<authenticationtoken>",
    'content-type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```
Mod: curl

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-messaging.wavy.global/v1/send-bulk-sms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }, { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }], \"defaultValues\":{\"messageText\":\"Default message\" }}",
  CURLOPT_HTTPHEADER => array(
    "authenticationtoken: <authenticationtoken>",
    "content-type: application/json",
    "username: <username>"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

{% endtab %}

{% tab title="Java" %}

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-bulk-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }," +
                " { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }]," +
                " \"defaultValues\":{\"messageText\":\"Default message\" }}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
```

{% endtab %}
{% endtabs %}

Ao fazer o envio, será retornado um objeto JSON com o UUID do lote e das mensagens individuais :

{% tabs %}
{% tab title="cURL" %}

```
{
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}
```

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

&#x20;Existe um limite de 1000 mensagens por requisição

#### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

> Exemplo de JSON para envio em Lote:
>
> Exemplo 1:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 2:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 3:

```
{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}
```

> Exemplo 4, com flowId e params:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}
```

{% endtab %}

{% tab title="Ruby" %}

```
 {
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}
```

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

&#x20;Existe um limite de 1000 mensagens por requisição

#### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

> Exemplo de JSON para envio em Lote:
>
> Exemplo 1:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 2:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 3:

```
{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}
```

> Exemplo 4, com flowId e params:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}
```

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

&#x20;Existe um limite de 1000 mensagens por requisição

#### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

> Exemplo de JSON para envio em Lote:
>
> Exemplo 1:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 2:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 3:

```
{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}
```

> Exemplo 4, com flowId e params:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}
```

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

&#x20;Existe um limite de 1000 mensagens por requisição

#### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

> Exemplo de JSON para envio em Lote:
>
> Exemplo 1:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 2:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 3:

```
{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}
```

> Exemplo 4, com flowId e params:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}
```

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

&#x20;Existe um limite de 1000 mensagens por requisição

#### Requisição HTTP Method POST <a href="#requisi-o-http-method-post" id="requisi-o-http-method-post"></a>

> Exemplo de JSON para envio em Lote:
>
> Exemplo 1:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 2:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}
```

> Exemplo 3:

```
{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}
```

> Exemplo 4, com flowId e params:

```
{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Observe que nos exemplos acima, alguns campos “destination” não possuem um “messageText” atribuido direto a eles, nestes casos, o texto da mensagem será o “messageText” dentro de “defaultValues”. Essa função é útil quando é necessário o envio da mesma mensagem para vários números diferentes
{% endhint %}

### Respostas de mensagens em lote <a href="#respostas-de-mensagens-em-lote" id="respostas-de-mensagens-em-lote"></a>

A resposta do envio em lote conterá um arquivo JSON com as informações necessárias para rastreio, será gerado um id para o lote todo e um id e correlationId individual para cada mensagem:

<table><thead><tr><th width="141">Campo</th><th width="451">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado para este lote</td><td>String</td></tr><tr><td>messages</td><td>Este campo é um array com as respostas das mensanges individuais do lote, contém o id e o correlationId de cada mensagem enviada</td><td>SingleSMSResponse[]</td></tr></tbody></table>


# HTTP Status Code Response

Códigos de status HTTP mais comuns:

<table><thead><tr><th width="154">Grupo</th><th>Descrição</th></tr></thead><tbody><tr><td>2xx</td><td>Sucesso</td></tr><tr><td>4xx</td><td>Erro Cliente</td></tr><tr><td>5xx</td><td>Erro Servidor</td></tr></tbody></table>

<table><thead><tr><th width="153">Código</th><th>Descrição</th></tr></thead><tbody><tr><td>200</td><td>Sucesso</td></tr><tr><td>400</td><td>Requisição errada</td></tr><tr><td>401</td><td>Sem autorização</td></tr><tr><td>403</td><td>Proibido</td></tr><tr><td>404</td><td>Não encontrado</td></tr><tr><td>500</td><td>Erro Interno do Servidor</td></tr><tr><td>503</td><td>Serviço indiponível</td></tr><tr><td>504</td><td>Gateway Timeout</td></tr></tbody></table>


# Status de envio (Callback e DLR)

Existem duas maneiras de obter os status de envio das mensagens, são elas:

* **Webhook** - Receber os status em um webservice de sua empresa (recomendado)

Assim que entregamos a mensagem na operadora, ou assim que a operadora nos informa se entregou a mensagem no aparelho, a informação é repassada instantaneamente para você.

* **API de consulta** - Fazer requisições de consulta em nossa API sms-status.

Os status ficam disponíveis por 3 dias, e podem ser consultados pelo UUID que a Sinch retornou ao receber a mensagem de sua empresa, ou pelo ID que sua empresa recebeu ao entregar a mensagem para a Sinch.\
A desvantagem desta opção de consulta ao invés de webhook, é que você fará requisições de consulta de um ID que pode ainda não ter sido entregue na operadora ou no aparelho, neste caso, uma série de requisições desnecessárias serão feitas. Por exemplo, se um usuário estava com o aparelho desligado quando você enviou uma mensagem para ele, e ligou 2 horas depois, você ficará consultando este ID inúmeras vezes por duas horas. E no caso da utilização de um webhook, esta informação seria enviada para você assim que fosse entregue no aparelho, sem requisições vazias.

{% hint style="danger" %}
**IMPORTANTE! As consultas de status possuem rate-limit de 1 requisição por segundo por endereço IP. Requisições além deste limite são respondidas com o código de status HTTP 429.**
{% endhint %}

### Status via webhook (entrega em seu webservice) <a href="#status-via-webhook-entrega-em-seu-webservice" id="status-via-webhook-entrega-em-seu-webservice"></a>

Para configurar o envio dos Callbacks e DRs (dúvida sobre os termos consulte a aba [Termos Importantes](https://doc-messaging.wavy.global/pt.html?java#termos-importantes)) primeiramente é necessário logar no [**Sinch Messaging**](https://messaging.sinch.com) nas configurações da API, no formulário de configuração você poderá fornecer as URLs para onde serão enviado os status de envio (Callbacks) e os status de confirmação do aparelho (DRs)

Após a inclusão de seu webhook no portal acima, as configurações serão replicadas para nossa plataforma em até 10 minutos, e chamaremos sua URL quando as seguintes ações ocorrem:

| Ação                                                            | Status de retorno enviado         |
| --------------------------------------------------------------- | --------------------------------- |
| Depois que uma mensagem for entregue ou não, na operadora       | API de status de envio (callback) |
| Quando uma mensagem for entregue ou não, no aparelho do cliente | API de Delivery Report (DRs)      |

### Campos JSON resposta Callbacks (sent status) <a href="#campos-json-resposta-callbacks-sent-status" id="campos-json-resposta-callbacks-sent-status"></a>

<table><thead><tr><th width="209">Campo</th><th>Descrição</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado da mensagem</td></tr><tr><td>correlationId</td><td>Sua identificação desta mensagem</td></tr><tr><td>carrierId</td><td>Identificador da operadora</td></tr><tr><td>carrierName</td><td>Nome da operadora</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td></tr><tr><td>sentStatusCode</td><td>Código de status gerado pelo Sinch para mensagem indicando o status de envio. Verifique em <a href="https://doc-messaging.wavy.global/pt.html?java#c-digos-de-status-de-envio">códigos de status</a> para mais informações</td></tr><tr><td>sentStatus</td><td>Descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>sentDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>campaignId</td><td>Identificador de campanha caso exista</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra adicionada pelo cliente no envio da mensagem</td></tr><tr><td>multipartCount</td><td>Total de partes que teve o disparo</td></tr><tr><td>partId</td><td>O UUID da parte da mensagem enviada a operadora</td></tr><tr><td>part</td><td>O número da parte enviada a operadora</td></tr></tbody></table>

Exemplo JSON Status de Envio (callback - entrega na operadora)

{% tabs %}
{% tab title="cURL" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Ruby" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Python" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="PHP" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Java" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}
{% endtabs %}

### Campos JSON resposta Delivery Reports (DRs) <a href="#campos-json-resposta-delivery-reports-drs" id="campos-json-resposta-delivery-reports-drs"></a>

<table><thead><tr><th width="220">Campo</th><th>Descrição</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado da mensagem</td></tr><tr><td>correlationId</td><td>Sua identificação desta mensagem</td></tr><tr><td>carrierId</td><td>Identificador da operadora</td></tr><tr><td>carrierName</td><td>Nome da operadora</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td></tr><tr><td>sentStatusCode</td><td>Código de status gerado pela Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentStatus</td><td>descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>sentDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>deliveredStatusCode</td><td>Código de status gerado pelo Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>deliveredStatus</td><td>descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>deliveredAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>deliveredDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>campaignId</td><td>Identificador de campanha caso exista</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra adicionada pelo cliente no envio da mensagem</td></tr></tbody></table>

### Consulta Status via requisição HTTP <a href="#consulta-status-via-requisi-o-http" id="consulta-status-via-requisi-o-http"></a>

Para obter uma lista dos status ainda não consultados, você pode fazer uma solicitação GET para o URL abaixo:

`GET https://api-messaging.wavy.global/v1/sms/status/list`

Observe que este endpoint retorna apenas os status ainda não retornados por este endpoint.

#### Resposta <a href="#resposta" id="resposta"></a>

Campos JSON de resposta:

<table><thead><tr><th width="184">Campo</th><th width="421">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado na requisição para a mensagem</td><td>String</td></tr><tr><td>correlationId</td><td>Mesmo correlationId da requisição</td><td>String</td></tr><tr><td>carrierId</td><td>ID da operadora, para mais informações consulte código de erro</td><td>Long</td></tr><tr><td>carrierName</td><td>Nome da operadora</td><td>String</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td><td>String</td></tr><tr><td>sentStatusCode</td><td>Código de status enviado. Verifique os códigos de status enviados para obter mais informações</td><td>Long</td></tr><tr><td>sentStatus</td><td>Código de status enviado. Verifique os códigos de status enviados para obter mais informações</td><td>String</td></tr><tr><td>sentStatusAt</td><td>Quando a mensagem foi enviada. É uma data de época</td><td>Long</td></tr><tr><td>sentStatusDate</td><td>Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)</td><td>String</td></tr><tr><td>deliveredStatusCode</td><td>Código de status entregue. Verifique os códigos de status entregues para obter mais informações</td><td>Long</td></tr><tr><td>deliveredStatus</td><td>Código de status entregue. Verifique os códigos de status entregues para obter mais informações</td><td>String</td></tr><tr><td>deliveredAt</td><td>Quando a mensagem foi enviada. É uma data de época</td><td>Long</td></tr><tr><td>deliveredDate</td><td>Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)</td><td>String</td></tr><tr><td>campaignId</td><td>Identificador de campanha</td><td>Long</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra definida pelo usuário quando a mensagem foi enviada</td><td>String</td></tr></tbody></table>

Exemplo JSON Delivery Report (DR ou DLR - Entrega no aparelho do usuário)

{% tabs %}
{% tab title="cURL" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}
{% endtabs %}


# Resposta do usuário (MO)

A API de MO permite a automação do processo de recuperação de respostas enviadas pelos clientes em resposta as mensagens que voce enviou a eles. Todas as requisições usam o método GET e as respostas são enviadas no formato JSON.

{% hint style="danger" %}
**Entre em contato com o suporte para configurar sua conta para receber MOs.**
{% endhint %}

É possível também a configuração para que as MOs sejam encaminhadas conforme chegaram para uma API do cliente, essa é a forma mais eficiente pois não é necessário realizar nenhuma chamada, so tratar os envios conforme chegaram. Para que esta configuração seja realizada é necessário abrir um ticket com nosso time de suporte técnico através do nosso [Service Center](https://servicecenter.wavy.global/) passando a url que receberá os MOs.

{% hint style="success" %}
**Conseguimos enviar os MOs tanto via método GET (query string) como via método POST (Json)**
{% endhint %}

Cada requisição feita irá retornar os MOs dos ultimos 5 dias, até um limite de 1.000 MOs. Para datas anteriores ou quantidades maiores favor entrar em contato com nosso time de suporte através do nosso [Service Center](https://servicecenter.wavy.global/).

O comportamento da query List MO será diferente para cada usuário autenticado devido ao nivel de permissão de cada usuário.

Recomendamos o método de envio das MOs para API, toda MO enviada será automaticamente enviada para API pois desta forma as respostas podem ser tratadas imediatamente após o recebimento.

<table><thead><tr><th width="200">Perfil</th><th>Permissão</th></tr></thead><tbody><tr><td>Regular</td><td>cada requisição realizada na MO API só irá retornar os MOs correspondentes a subconta que o usuário pertence. Não é possível a um usuário regular recuperar MOs de outras subcontas.</td></tr><tr><td>Administrador</td><td>o comportamento padrão para o usuário administrador é recuperar todos os MOs de todas as subcontas. Se um administrador desejar recuperar os MOs de apenas uma das subcontas é necessário especificar a subconta no parametro subAccount com o id da subconta desejada.</td></tr></tbody></table>

Exemplo JSON enviado para sua API (método POST)

{% tabs %}
{% tab title="cURL" %}

```
{
     "id": "25950050-7362-11e6-be62-001b7843e7d4",
     "subAccount": "test",
     "campaignAlias": "teste",
     "carrierId": 1,
     "carrierName": "VIVO",
     "source": "55119999999",
     "shortCode": "28128",
     "messageText": "Eu quero pizza",
     "receivedAt": 1473088405588,
     "receivedDate": "2016-09-05T12:13:25Z",
     "mt": {
       "id": "8be584fd-2554-439b-9ba9-aab507278992",
       "correlationId": "1876",
       "username": "teste",
       "email": "customer.support@sinch.com"
     }
   }
```

{% endtab %}

{% tab title="Ruby" %}

```
{
     "id": "25950050-7362-11e6-be62-001b7843e7d4",
     "subAccount": "teste",
     "campaignAlias": "teste",
     "carrierId": 1,
     "carrierName": "VIVO",
     "source": "551199999999",
     "shortCode": "28128",
     "messageText": "Eu quero pizza",
     "receivedAt": 1473088405588,
     "receivedDate": "2016-09-05T12:13:25Z",
     "mt": {
       "id": "8be584fd-2554-439b-9ba9-aab507278992",
       "correlationId": "1876",
       "username": "teste",
       "email": "customer.support@sinch.com"
     }
   }
```

{% endtab %}

{% tab title="Python" %}

```
{
     "id": "25950050-7362-11e6-be62-001b7843e7d4",
     "subAccount": "teste",
     "campaignAlias": "teste",
     "carrierId": 1,
     "carrierName": "VIVO",
     "source": "551199999999",
     "shortCode": "28128",
     "messageText": "Eu quero pizza",
     "receivedAt": 1473088405588,
     "receivedDate": "2016-09-05T12:13:25Z",
     "mt": {
       "id": "8be584fd-2554-439b-9ba9-aab507278992",
       "correlationId": "1876",
       "username": "teste",
       "email": "customer.support@sinch.com"
     }
   }
```

{% endtab %}

{% tab title="PHP" %}

```
{
     "id": "25950050-7362-11e6-be62-001b7843e7d4",
     "subAccount": "teste",
     "campaignAlias": "teste",
     "carrierId": 1,
     "carrierName": "VIVO",
     "source": "551199999999",
     "shortCode": "28128",
     "messageText": "Eu quero pizza",
     "receivedAt": 1473088405588,
     "receivedDate": "2016-09-05T12:13:25Z",
     "mt": {
       "id": "8be584fd-2554-439b-9ba9-aab507278992",
       "correlationId": "1876",
       "username": "teste",
       "email": "customer.support@sinch.com"
     }
   }
```

{% endtab %}

{% tab title="Java" %}

```
{
     "id": "25950050-7362-11e6-be62-001b7843e7d4",
     "subAccount": "teste",
     "campaignAlias": "teste",
     "carrierId": 1,
     "carrierName": "VIVO",
     "source": "551199999999",
     "shortCode": "28128",
     "messageText": "Eu quero pizza",
     "receivedAt": 1473088405588,
     "receivedDate": "2016-09-05T12:13:25Z",
     "mt": {
       "id": "8be584fd-2554-439b-9ba9-aab507278992",
       "correlationId": "1876",
       "username": "teste",
       "email": "customer.support@sinch.com"
     }
   }
```

{% endtab %}
{% endtabs %}

### Formato de resposta padrões de MO <a href="#fomato-de-resposta-padr-es-de-mo" id="fomato-de-resposta-padr-es-de-mo"></a>

Tanto as requisições de listagem (list) e a função de busca (search) retornam um objeto JSON com os campos abaixo:

<table><thead><tr><th width="158">Campo</th><th width="464">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>total</td><td>O número total de MOs retornadas pela requisição</td><td>Integer</td></tr><tr><td>start</td><td>O limite minimo da query</td><td>String</td></tr><tr><td>end</td><td>O limite máximo da query</td><td>String</td></tr><tr><td>messages</td><td>Listagem dos objetos</td><td>List</td></tr></tbody></table>

Cada mensagem do campo messages possui a seguinte estrutura:<br>

**MTs tem a seguinte estrutura**

<table><thead><tr><th width="195">Campo</th><th width="372">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>Id da MT</td><td>String</td></tr><tr><td>correlationId</td><td>CorrelationID enviado na MT</td><td>String</td></tr><tr><td>username</td><td>Username do usuário responsável por enviar a MT</td><td>String</td></tr><tr><td>email</td><td>Email do responsavel por enviar a MT</td><td>String</td></tr></tbody></table>

Exemplo de JSON de resposta chamada API:

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "start": "2016-09-04T11:12:41Z",
  "end": "2016-09-08T11:17:39.113Z",
  "messages": [
    {
      "id": "25950050-7362-11e6-be62-001b7843e7d4",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 1,
      "carrierName": "VIVO",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Eu quero pizza",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "8be584fd-2554-439b-9ba9-aab507278992",
        "correlationId": "1876",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    },
    {
      "id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 5,
      "carrierName": "TIM",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Meu hamburguer está chegando?",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "302db832-3527-4e3c-b57b-6a481644d88b",
        "correlationId": "1893",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "start": "2016-09-04T11:12:41Z",
  "end": "2016-09-08T11:17:39.113Z",
  "messages": [
    {
      "id": "25950050-7362-11e6-be62-001b7843e7d4",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 1,
      "carrierName": "VIVO",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Eu quero pizza",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "8be584fd-2554-439b-9ba9-aab507278992",
        "correlationId": "1876",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    },
    {
      "id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 5,
      "carrierName": "TIM",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Meu hamburguer está chegando?",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "302db832-3527-4e3c-b57b-6a481644d88b",
        "correlationId": "1893",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "start": "2016-09-04T11:12:41Z",
  "end": "2016-09-08T11:17:39.113Z",
  "messages": [
    {
      "id": "25950050-7362-11e6-be62-001b7843e7d4",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 1,
      "carrierName": "VIVO",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Eu quero pizza",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "8be584fd-2554-439b-9ba9-aab507278992",
        "correlationId": "1876",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    },
    {
      "id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 5,
      "carrierName": "TIM",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Meu hamburguer está chegando?",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "302db832-3527-4e3c-b57b-6a481644d88b",
        "correlationId": "1893",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "start": "2016-09-04T11:12:41Z",
  "end": "2016-09-08T11:17:39.113Z",
  "messages": [
    {
      "id": "25950050-7362-11e6-be62-001b7843e7d4",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 1,
      "carrierName": "VIVO",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Eu quero pizza",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "8be584fd-2554-439b-9ba9-aab507278992",
        "correlationId": "1876",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    },
    {
      "id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 5,
      "carrierName": "TIM",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Meu hamburguer está chegando?",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "302db832-3527-4e3c-b57b-6a481644d88b",
        "correlationId": "1893",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="Pynthon" %}

```
{
  "total": 1,
  "start": "2016-09-04T11:12:41Z",
  "end": "2016-09-08T11:17:39.113Z",
  "messages": [
    {
      "id": "25950050-7362-11e6-be62-001b7843e7d4",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 1,
      "carrierName": "VIVO",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Eu quero pizza",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "8be584fd-2554-439b-9ba9-aab507278992",
        "correlationId": "1876",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    },
    {
      "id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
      "subAccount": "Sinch",
      "campaignAlias": "Sinch",
      "carrierId": 5,
      "carrierName": "TIM",
      "source": "5511123456789",
      "shortCode": "28128",
      "messageText": "Meu hamburguer está chegando?",
      "receivedAt": 1473088405588,
      "receivedDate": "2016-09-05T12:13:25Z",
      "mt": {
        "id": "302db832-3527-4e3c-b57b-6a481644d88b",
        "correlationId": "1893",
        "username": "Sinch",
        "email": "customer.support@sinch.com"
      }
    }
  ]
}
```

{% endtab %}
{% endtabs %}

### Requisição listar MO (list) <a href="#requisi-o-listar-mo-list" id="requisi-o-listar-mo-list"></a>

A Listagem irá retornar todos os MOs recebidos desde a última chamada de acordo com a resposta padrão descrita acima. Uma vez que esta chamada é realizada ela será consumida e não irá retornar as chamadas seguintes.

Como um usuário regular, para recuperar todas MOs de uma subconta use:

`GET https://api-messaging.wavy.global/v1/sms/receive/list`

Como usuário administrador, para recuperar TODAS as MOs de TODAS subcontas use:

`GET https://api-messaging.wavy.global/v1/sms/receive/list`

Como usuário administrador. para recuperar as MOs de uma subconta com a referencia “referencia\_subconta”, use:

`GET https://api-messaging.wavy.global/v1/sms/receive/list?subAccount=referencia_subconta`<br>


# Códigos de Status de Envio

Existem dois níveis de status, que são enviados independentemente.

1. Primeiro status (**sent\_status - Status de envio = Callback**)

Status de entrega **na operadora**, este é o primeiro status que retornamos, e todas as operadoras possuem.

<table><thead><tr><th width="163">Código</th><th width="260">Mensagem</th><th>Significado</th></tr></thead><tbody><tr><td>2</td><td>SENT_SUCCESS</td><td>Entregue na operadora com exito (Este é o status que deve ser considerado para efeito de cobrança.)</td></tr><tr><td>101</td><td>EXPIRED</td><td>Expirado antes de ser entregue na operadora.</td></tr><tr><td>102</td><td>CARRIER_COMMUNICATION_ERROR</td><td>Erro de comunicação com a operadora</td></tr><tr><td>103</td><td>REJECTED_BY_CARRIER</td><td>Operadora rejeitou a mensagem, e isso ocorre por diversos motivos como: Fila cheia da operadora, número inválido da operadora ou parâmetros ausentes.</td></tr><tr><td>202</td><td>INVALID_DESTINATION_NUMBER</td><td>O número de destino é inválido (Não é um número de celular válido).</td></tr><tr><td>203</td><td>BLACKLISTED</td><td>O número de destino está na lista bloqueada, e foi inserido manualmente por sua empresa.</td></tr><tr><td>204</td><td>DESTINATION_BLOCKED_BY_OPTOUT</td><td>O número de destino solicitou opt-out, e não quer receber mais mensagens desta sub conta. (Este status é específico para contas de mobile marketing).</td></tr><tr><td>207</td><td>INVALID_MESSAGE_TEXT</td><td>O texto da mensagem contém palavras que não são aceitas pela operadora. Estas palavras podem ser de baixo calão, ou, caso sua conta seja de Mobile Marketing, podem ser de grandes marcas.</td></tr><tr><td>213</td><td>COUNTRY_NOT_ALLOWED_FOR_CUSTOMER</td><td>O cliente não tem permissão para enviar mensagens para o país do número receptor desejado.</td></tr><tr><td>214</td><td>INVALID_CUSTOMER_CONFIGURATION</td><td>Algumas configurações do cliente estão inválidas ou faltando.</td></tr><tr><td>215</td><td>CUSTOMER_QUOTA_BLOCKED</td><td>O quota do cliente está bloqueado ou atingiu seu limite.</td></tr><tr><td>301</td><td>INTERNAL_ERROR</td><td>Um ou mais problemas ocorreram com a nossa plataforma, assim as mensagens não puderam ser processadas e enviadas.</td></tr></tbody></table>

2. Segundo status (delivered\_status - Delivery Report Callback)

Status de entrega **no aparelho**, este é o segundo status que retornamos e só existe para os casos em que o primeiro status acima foi de sucesso, ou seja, a mensagem foi entregue na operadora com sucesso.&#x20;

Neste status informamos se a mensagem foi ou não entregue no aparelho. As operadoras Oi e Sercomtel não possuem este segundo nível de status, para estas operadoras, o máximo de informação que existe, é o primeiro status, ou seja, se a operadora aceitou a mensagem ou não.

<table><thead><tr><th width="133">Código</th><th width="226">Mensagem</th><th>Significado</th></tr></thead><tbody><tr><td>4</td><td>DELIVERED_SUCCESS</td><td>Mensagem enviada com sucesso para operadora (contêiner), mas não entregue ao dispositivo do usuário. Pode ser que o dispositivo esteja fora do alcance, o número pode estar desativado ou bloqueado.</td></tr><tr><td>104</td><td>NOT_DELIVERED</td><td>A operadora aceitou a mensagem, mas não conseguiu entregar no aparelho. Possíveis causas:<br>Aparelho desligado ou fora de área de serviço por tempo determinado (normalmente 24 horas, mas algumas operadoras, como a Vivo, este tempo é de tentativa é de 8 horas).<br>Número válido, mas inativo (algumas operadoras retornam este tipo de erro somente neste segundo nível de status).</td></tr><tr><td>201</td><td>NOT_DELIVERED</td><td>A mensagem foi rejeitada porque não havia crédito suficiente na conta.</td></tr><tr><td>401</td><td>MESSAGE_SPLIT</td><td>Ocorre quando a mensagem de SMS atinge seu formato válido; de 160 caractéres sem acento ou 70 sem acentuação. A mensagem final será formatada de acordo com o limite de caracteres, e aparecerá nos relatórios finais de acordo com essa formatação.</td></tr></tbody></table>


# API SMPP

Todos os serviços providos pela Sinch devem obrigatoriamente ser encriptados, e o protocolo [SMPP](https://doc-messaging.wavy.global/pt.html?java#termos-importantes) não possui encriptação nativa. Neste caso, disponibilizamos duas opções para integração:

#### Opção 1: SMPP over TLS + IP whitelist (**Opção recomendada**) <a href="#op-o-1-smpp-over-tls-ip-whitelist-op-o-recomendada" id="op-o-1-smpp-over-tls-ip-whitelist-op-o-recomendada"></a>

Esta é a opção que recomendamos. Caso seu sistema não possua esta funcionalidade, clique [AQUI](https://doc-messaging.wavy.global/pt.html?java#proxy-tls-linux) para obter ajuda na configuração de um proxy TLS.

Além da encriptação que será feita pelo TLS, o acesso será autorizado somente para o IP público de seu servidor. (Aceitamos múltiplos IPs e ranges) Esta informação deve ser enviada para o nosso time de suporte através do nosso [Service Center](https://servicecenter.wavy.global/).

Caso seja necessária a liberação de saída de tráfego em seu firewall, recomendamos que seja liberado qualquer IP de destino, na porta 2444, se isto não for possível, deve-se incluir regras com as liberações abaixo:\
`200.219.220.8:2444`\
`200.219.220.193:2444`\
`45.236.179.18:2444`\
`45.236.179.19:2444`

#### Opção 2: SMPP over VPN <a href="#op-o-2-smpp-over-vpn" id="op-o-2-smpp-over-vpn"></a>

A encriptação e a liberação de acesso será feita via VPN.

Caso escolha esta opção, configure as VPNs utilizando os peers e hosts abaixo, já com as propostas de fase 1 e 2 que deseja. Envie o formulário de VPN de sua empresa preenchido para para o nosso time de suporte através do nosso [Service Center](https://servicecenter.wavy.global/).

`peer 200.155.0.250`\
`hosts 200.219.220.8 e 200.219.220.193`\
`port 2443`

`peer 45.236.178.12`\
`hosts 45.236.179.18 e 45.236.179.19`\
`port 2443`

Obs: Por razões de alta disponibilidade e balanceamento de carga, é obrigatório o estabelecimento das **2** VPNs acima, e a utilização do domínio smpp-messaging.wavy.global como destino de seu cliente SMPP, ao invés de IPs.


# Detalhes de conexão

<table><thead><tr><th width="259">Informação</th><th>Detalhes</th></tr></thead><tbody><tr><td>Hostname</td><td>smpp-messaging.wavy.global<br>Ao configurar seu sistema SMPP, é obrigatório a utilização do domínio como destino, ao invés de IPs.<br>Este domínio possui 4 proxies de entrada com round robin DNS e health check, e multiplos servidores backend. Baseado no volume de mensagens que sua empresa trafegará, vamos aumentar o número de binds(conexões) permitidos simultâneamente.</td></tr><tr><td>Porta</td><td>2444 (SMPP over TLS) ou 2443 (VPN)</td></tr><tr><td>Versão SMPP</td><td>3.4</td></tr><tr><td>Número de binds</td><td>Mínimo 4. O estabelecimento de pelo menos 4 binds é mandatório para obtenção de alta-disponibilidade e balanceamento de carga.</td></tr><tr><td>Codificação dos caracteres</td><td>GSM7 - Default (data_coding = 0) (GSM3.38 extended table is not supported by carriers.)<br>LATIN1 (data_coding = 1)<br>UCS2 (data_coding=8).<br><strong>Atenção:</strong> Verifique <a href="https://doc-messaging.wavy.global/pt.html?java#characters">AQUI</a> detalhes de caracteres e cobranças.</td></tr><tr><td>Flash SMS</td><td>Supported<br>data_coding=0x10 para GSM7 e data_coding 0x18 para UCS2<br>Quando recebemos mensagens flashSMS de nossos clientes, elas são enviadas para as operadoras como flahsSMS, se a operadora não suportar flashSMS, ela é entregue como um SMS normal.</td></tr><tr><td>Enquire-link</td><td>Minimo: 30 segundos / Máximo: 59 segundos.</td></tr><tr><td>Concatenação</td><td>UDH 8-bit e 16-bit são suportados / <a href="https://en.wikipedia.org/wiki/Concatenated_SMS">UDH Headers</a>.</td></tr><tr><td>Default addr_ton</td><td>1</td></tr><tr><td>Default addr_npi</td><td>1</td></tr><tr><td>window size</td><td>10</td></tr><tr><td>2way</td><td>Suportado</td></tr><tr><td>SMPP bind type</td><td>Transceiver(Recomendado). Binds transmit/receiver separados também são aceitos.</td></tr><tr><td>SMPP system_type</td><td>MovileSMSC</td></tr><tr><td>SMPP source addr (senderID)</td><td>Quando seu serviço necessitar respostas de usuários (MO), o source address <strong>deve</strong> ser igual ao system_id, ou seja, o nome do usuário. Quando o serviço não precisar de MOs, você pode utilizar qualquer coisa neste campo.</td></tr><tr><td>Max MO vazão</td><td>80 por bind</td></tr><tr><td>Max MT vazão</td><td>80 por bind</td></tr><tr><td>Server Timezone</td><td>UTC</td></tr><tr><td>Formato de ID</td><td>UUID</td></tr><tr><td>Default validity_period</td><td>24 hours</td></tr></tbody></table>


# Status de envio (Callback e DLR)

### Status de envio ([Callback e DLR](/documentacao-tecnica-sms/documentacao-tecnica-sms/termos-importantes)) <a href="#status-de-envio-callback-e-dlr" id="status-de-envio-callback-e-dlr"></a>

1. Primeiro status (sent\_status - Status de envio = Callback)

Status de entrega **na operadora**, este é o primeiro status que retornamos, e todas as operadoras possuem.

<table><thead><tr><th>stat</th><th width="96">err</th><th width="141">TLV (0x1403)</th><th width="155">TLV (0x1404)</th><th>Significado</th></tr></thead><tbody><tr><td>ACCEPTD</td><td>000</td><td>2</td><td>SENT_SUCCESS</td><td>Entregue na operadora com sucesso <strong>(Este é o status que deve ser considerado para efeito de cobrança.)</strong></td></tr><tr><td>EXPIRED</td><td>101</td><td>101</td><td>EXPIRED</td><td>Expirado antes de ser entregue ao aparelho.</td></tr><tr><td>REJECTD</td><td>102</td><td>102</td><td>CARRIER_COMMUNICATION_ERROR</td><td>Erro de comunicação com a operadora.</td></tr><tr><td>REJECTD</td><td>103</td><td>103</td><td>REJECTED_BY_CARRIER</td><td>Operadora rejeitou a mensagem.</td></tr><tr><td>REJECTD</td><td>201</td><td>201</td><td>NO_CREDIT</td><td>O limite de mensagens setado pelo administrador de sua empresa, para sua conta ou sub conta, foi excedido. Ou, caso sua empresa utilize o modelo pré-pago de créditos, ele terminou.</td></tr><tr><td>REJECTD</td><td>202</td><td>202</td><td>INVALID_DESTINATION_NUMBER</td><td>O número de destino é inválido (Não é um número de celular válido).</td></tr><tr><td>REJECTD</td><td>203</td><td>203</td><td>BLOCKLISTED</td><td>O número de destino está na lista bloqueada, e foi inserido manualmente por sua empresa.</td></tr><tr><td>REJECTD</td><td>204</td><td>204</td><td>DESTINATION_BLOCKED_BY_OPTOUT</td><td>O número de destino solicitou opt-out, e não quer receber mais mensagens desta sub conta. (Este status é específico para contas de mobile marketing).</td></tr><tr><td>REJECTD</td><td>205</td><td>205</td><td>DESTINATION_MESSAGE_LIMIT_REACHED</td><td>O número de destino já recebeu a quantidade máxima de mensagens que uma mesma empresa pode enviar, dentro de um período de tempo. (Este status é específico para contas de Mobile Marketing, e esta é uma regra das operadoras).</td></tr><tr><td>REJECTD</td><td>207</td><td>207</td><td>INVALID_MESSAGE_TEXT</td><td>O texto da mensagem contém palavras que não são aceitas pela operadora. Estas palavras podem ser de baixo calão, ou, caso sua conta seja de Mobile Marketing, podem ser de grandes marcas.</td></tr><tr><td>REJECTD</td><td>301</td><td>301</td><td>INTERNAL_ERROR</td><td>Ocorreu um erro na plataforma da Wavy.</td></tr><tr><td>UNKNOWN</td><td>301</td><td>301</td><td>INTERNAL_ERROR</td><td>Ocorreu um erro na plataforma da Wavy.</td></tr></tbody></table>

2. Segundo status (delivered\_status - Delivery Report Callback)

Status de entrega **no aparelho**, este é o segundo status que retornamos e só existe para os casos em que o primeiro status acima foi de sucesso, ou seja, a mensagem foi entregue na operadora com sucesso.&#x20;

Neste status informamos se a mensagem foi ou não entregue no aparelho. As operadoras Oi e Sercomtel não possuem este segundo nível de status, para estas operadoras, o máximo de informação que existe, é o primeiro status, ou seja, se a operadora aceitou a mensagem ou não.

<table><thead><tr><th width="126">stat</th><th>err</th><th width="140">TLV (0x1403)</th><th width="170">TLV (0x1404)</th><th width="157">TLV (0x1405)</th><th width="193">TLV (0x1406)</th><th>Significado</th></tr></thead><tbody><tr><td>DELIVRD</td><td>000</td><td>2</td><td>SENT_SUCCESS</td><td>4</td><td>DELIVERED_SUCCESS</td><td>Entregue no aparelho com sucesso.</td></tr><tr><td>UNDELIV</td><td>104</td><td>2</td><td>SENT_SUCCESS</td><td>104</td><td>NOT_DELIVERED</td><td>A operadora aceitou a mensagem, mas não conseguiu entregar no aparelho. Possíveis causas:<br>Aparelho desligado ou fora de área de serviço por tempo determinado (normalmente 24 horas, mas algumas operadoras, como a Vivo, este tempo é de tentativa é de 8 horas).<br>Número válido, mas inativo (algumas operadoras retornam este tipo de erro somente neste segundo nível de status).</td></tr></tbody></table>

{% hint style="danger" %}
**IMPORTANTE! os status de entrega no aparelho, operadora e MOs são enfileirados caso ocorra algum problema de conectividade, porém o prazo é de 8hs, após este periodo não será possivel obter os status por SMPP.**
{% endhint %}


# Proxy TLS - Linux

O proxy é necessário caso a conexão não seja via VPN. Como explicado anteriormente, o protocolo SMPP não possui encriptação TLS nativa, neste caso indicamos o proxy abaixo:

### HAProxy <a href="#haproxy" id="haproxy"></a>

#### Instalando HAProxy <a href="#instalando-haproxy" id="instalando-haproxy"></a>

**Debian Like**

Em distribuições Debian like através do repositorio: sudo apt-get install haproxy

**RedHat Like**

Como não há, até o momento, o pacote do HAProxy com suporte à TLS já no repositorio, é possível baixar atraés do site oficial: [**http://www.haproxy.org/**](http://www.haproxy.org/).

Ao lado um script para instalação

* Instalação haproxy servidores (red-hat / centos):

`$sudo yum install -y openssl-devel haproxy`

* Instalação haproxy servidores (debian / ubuntu)

`$sudo apt-get install -y openssl-devel haproxy`

* Após a instalação, substitua todo conteudo do arquivo /etc/haproxy/haproxy.cfg pelo o conteudo ao lado ->

{% hint style="danger" %}
**IMPORTANTE: Configure seu sistema (cliente SMPP) para utilizar como endereço destino 127.0.0.1:2444**
{% endhint %}

{% tabs %}
{% tab title="cURL" %}

```
sudo yum install wget gcc pcre-static pcre-devel -y

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.3.tar.gz -O ~/haproxy.tar.gz
tar xzvf ~/haproxy.tar.gz -C ~/

cd ~/haproxy-1.6.3
make TARGET=linux2628 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1
sudo make install
sudo cp /usr/local/sbin/haproxy /usr/sbin/
sudo cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo mkdir -p /etc/haproxy
sudo mkdir -p /run/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats

sudo useradd -r haproxy
sudo haproxy -vv
```

{% endtab %}

{% tab title="Ruby" %}

```
sudo yum install wget gcc pcre-static pcre-devel -y

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.3.tar.gz -O ~/haproxy.tar.gz
tar xzvf ~/haproxy.tar.gz -C ~/

cd ~/haproxy-1.6.3
make TARGET=linux2628 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1
sudo make install
sudo cp /usr/local/sbin/haproxy /usr/sbin/
sudo cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo mkdir -p /etc/haproxy
sudo mkdir -p /run/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats

sudo useradd -r haproxy
sudo haproxy -vv
```

{% endtab %}

{% tab title="Python" %}

```
sudo yum install wget gcc pcre-static pcre-devel -y

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.3.tar.gz -O ~/haproxy.tar.gz
tar xzvf ~/haproxy.tar.gz -C ~/

cd ~/haproxy-1.6.3
make TARGET=linux2628 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1
sudo make install
sudo cp /usr/local/sbin/haproxy /usr/sbin/
sudo cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo mkdir -p /etc/haproxy
sudo mkdir -p /run/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats

sudo useradd -r haproxy
sudo haproxy -vv
```

{% endtab %}

{% tab title="PHP" %}

```
sudo yum install wget gcc pcre-static pcre-devel -y

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.3.tar.gz -O ~/haproxy.tar.gz
tar xzvf ~/haproxy.tar.gz -C ~/

cd ~/haproxy-1.6.3
make TARGET=linux2628 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1
sudo make install
sudo cp /usr/local/sbin/haproxy /usr/sbin/
sudo cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo mkdir -p /etc/haproxy
sudo mkdir -p /run/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats

sudo useradd -r haproxy
sudo haproxy -vv
```

{% endtab %}

{% tab title="Java" %}

```
sudo yum install wget gcc pcre-static pcre-devel -y

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.3.tar.gz -O ~/haproxy.tar.gz
tar xzvf ~/haproxy.tar.gz -C ~/

cd ~/haproxy-1.6.3
make TARGET=linux2628 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1
sudo make install
sudo cp /usr/local/sbin/haproxy /usr/sbin/
sudo cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo mkdir -p /etc/haproxy
sudo mkdir -p /run/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats

sudo useradd -r haproxy
sudo haproxy -vv
```

{% endtab %}
{% endtabs %}

Configuração haproxy

{% tabs %}
{% tab title="cURL" %}

```
global
    #    local2.*                       /var/log/haproxy.log
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    ssl-server-verify       none
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

resolvers dns
    nameserver google 8.8.8.8:53
    hold valid 1s

defaults
    log                     global
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend movile
  bind *:2444
  mode tcp
  option tcplog
  use_backend movile

backend movile
    mode tcp
    server smpp-messaging.wavy.global smpp-messaging.wavy.global:2444 ssl resolvers dns check inter 15000
```

{% endtab %}

{% tab title="Ruby" %}

```
global
    #    local2.*                       /var/log/haproxy.log
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    ssl-server-verify       none
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

resolvers dns
    nameserver google 8.8.8.8:53
    hold valid 1s

defaults
    log                     global
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend movile
  bind *:2444
  mode tcp
  option tcplog
  use_backend movile

backend movile
    mode tcp
    server smpp-messaging.wavy.global smpp-messaging.wavy.global:2444 ssl resolvers dns check inter 15000
```

{% endtab %}

{% tab title="Python" %}

```
global
    #    local2.*                       /var/log/haproxy.log
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    ssl-server-verify       none
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

resolvers dns
    nameserver google 8.8.8.8:53
    hold valid 1s

defaults
    log                     global
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend movile
  bind *:2444
  mode tcp
  option tcplog
  use_backend movile

backend movile
    mode tcp
    server smpp-messaging.wavy.global smpp-messaging.wavy.global:2444 ssl resolvers dns check inter 15000
```

{% endtab %}

{% tab title="PHP" %}

```
global
    #    local2.*                       /var/log/haproxy.log
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    ssl-server-verify       none
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

resolvers dns
    nameserver google 8.8.8.8:53
    hold valid 1s

defaults
    log                     global
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend movile
  bind *:2444
  mode tcp
  option tcplog
  use_backend movile

backend movile
    mode tcp
    server smpp-messaging.wavy.global smpp-messaging.wavy.global:2444 ssl resolvers dns check inter 15000
```

{% endtab %}

{% tab title="Java" %}

```
global
    #    local2.*                       /var/log/haproxy.log
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    ssl-server-verify       none
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

resolvers dns
    nameserver google 8.8.8.8:53
    hold valid 1s

defaults
    log                     global
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend movile
  bind *:2444
  mode tcp
  option tcplog
  use_backend movile

backend movile
    mode tcp
    server smpp-messaging.wavy.global smpp-messaging.wavy.global:2444 ssl resolvers dns check inter 15000
```

{% endtab %}
{% endtabs %}


# Proxy TLS - Windows

É possível utilizar o nginx como proxy TLS em servidores windows para realizar a encriptação dos dados

Faça o download da versão abaixo (importante utilizar esta versão pois as versões antigas resolvem o nome apenas na primeira request)

<http://nginx.org/download/nginx-1.12.1.zip>

Extrai o arquivo .zip no local desejado e substitua o conteudo do arquivo conf/nginx.conf com os dados ao lado

**Configuração nginx**

{% tabs %}
{% tab title="cURL" %}

```
worker_processes  2;

events {
    worker_connections  1024;
}

stream {
  resolver 8.8.8.8 valid=1s;
  map $remote_addr $backend {
    default smpp-messaging.wavy.global;
  }
  server {
    listen 2444;
    proxy_pass $backend:2444;
    proxy_ssl  on;
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
worker_processes  2;

events {
    worker_connections  1024;
}

stream {
  resolver 8.8.8.8 valid=1s;
  map $remote_addr $backend {
    default smpp-messaging.wavy.global;
  }
  server {
    listen 2444;
    proxy_pass $backend:2444;
    proxy_ssl  on;
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
worker_processes  2;

events {
    worker_connections  1024;
}

stream {
  resolver 8.8.8.8 valid=1s;
  map $remote_addr $backend {
    default smpp-messaging.wavy.global;
  }
  server {
    listen 2444;
    proxy_pass $backend:2444;
    proxy_ssl  on;
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
worker_processes  2;

events {
    worker_connections  1024;
}

stream {
  resolver 8.8.8.8 valid=1s;
  map $remote_addr $backend {
    default smpp-messaging.wavy.global;
  }
  server {
    listen 2444;
    proxy_pass $backend:2444;
    proxy_ssl  on;
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
worker_processes  2;

events {
    worker_connections  1024;
}

stream {
  resolver 8.8.8.8 valid=1s;
  map $remote_addr $backend {
    default smpp-messaging.wavy.global;
  }
  server {
    listen 2444;
    proxy_pass $backend:2444;
    proxy_ssl  on;
  }
}
```

{% endtab %}
{% endtabs %}


# API SFTP

### Detalhes de conexão <a href="#detalhes-de-conex-o" id="detalhes-de-conex-o"></a>

<table><thead><tr><th width="229"></th><th></th></tr></thead><tbody><tr><td><strong>Hostname</strong></td><td>ftp-messaging.wavy.global</td></tr><tr><td><strong>Porta</strong></td><td>2222</td></tr><tr><td><strong>Protocolo</strong></td><td>SFTP (transferência sobre ssh, provendo criptografia entre cliente-servidor)</td></tr><tr><td><strong>Autenticação</strong></td><td>username + senha (fornecido pelo suporte)</td></tr><tr><td><strong>Portal</strong></td><td>messaging.wavy.global</td></tr></tbody></table>

{% hint style="danger" %}
**É necessária a liberação de seus IPs no firewalls da Wavy**\
**Se for necessário liberação de firewall para saída sentido a porta 2222, você deve liberar o DNS, ou os IPs 200.219.220.54, 200.189.169.53, 45.236.179.22.**

Se necessário entre em contato com nossa equipe para entender as diferentes possibilidades de configuração, caso o atual formato não seja compatível.
{% endhint %}


# Envio de SMS via SFTP

Envio de SMS enviando SFTP

## **Endereço de conexão:**

<table><thead><tr><th width="214">Nome</th><th>Host</th></tr></thead><tbody><tr><td><strong>Hostname</strong></td><td>ftp-messaging.wavy.global</td></tr><tr><td><strong>IPs</strong></td><td>IP primário: 200.219.220.54<br>IP secundário: 45.236.179.22</td></tr><tr><td><strong>Ports</strong></td><td>21 (ftps) <br>2222 (sftp)</td></tr><tr><td><strong>Authentication</strong></td><td>username + password</td></tr></tbody></table>

{% hint style="danger" %} <mark style="color:red;">**Atenção:**</mark>&#x20;

* <mark style="color:red;">**É necessário liberar o seu IP de saída em nossos firewalls!**</mark>
* <mark style="color:red;">**Se você precisar liberar em seu firewall, libere sempre os dois IPs 200.219.220.54 e 45.236.179.22**</mark>
  {% endhint %}

Para realizar o disparo de mensagens via SFTP é necessário gerar um arquivo em formato TXT, a formatação deve seguir o exemplo abaixo:

**numero;texto;correlationId(opcional);**\
**5511900000000;mensagem 1;;**\
**5519900000000;mensagem 2;;**\
**5521900000000;mensagem 3;;**\
**EOF**

O nome do arquivo a ser enviado deve seguir o seguinte formato:

```
<ID_SUBCONTA>.<DATA(YYYYMMDD)>.<SEQUENCIA> ou <NOME_DE_REFERÊNCIA_SUBCONTA>.<DATA(YYYYMMDD)>.<SEQUENCIA>
```

As subcontas(projetos) podem ser criadas pelo próprio cliente no [**Messaging**](https://messaging.wavy.global). Caso não seja seguida a nomenclatura acima, o envio será feito pela subconta padrão do cliente.

### **Exemplo:**

```
3486.20170101.01.txt ou PROJETO1.20170101.01.txt
```

É importante seguir a nomenclatura definida para que o envio seja as mensagens sejam debitadas da subconta correta.

Após deverá ser realizado o envio do arquivo para o servidor **SFTP** no diretório upload.&#x20;

O arquivo será movido para o diretório **SUCCESS** após o término, caso seja apresentando algum erro o arquivo será movido para o diretório **ERROR**.


# API de validação de número

API para validação de números de telefone, onde retornamos a operadora atual dos números consultados (incluindo números portados), ou se o número não é válido, ou seja, não é um número de celular.

{% hint style="danger" %}
**IMPORTANTE: As consultas de number lookup possuem uma tarifação diferenciada dos envios de SMS, antes de realizar a consulta verifique com o responsável do time comercial**
{% endhint %}

#### Autenticação <a href="#autentica-o" id="autentica-o"></a>

Para efetuar envios e consultas em nossa API é necessária a autenticação por meio de usuário ou e-mail, em conjunto com um token.

| Campo               | Detalhes                                                                                                                                               | Data Type |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- |
| UserName            | Seu usuário ou email                                                                                                                                   | String    |
| AuthenticationToken | Seu token de autenticação. Verifique [aqui](https://messaging.wavy.global/dashboard/profile/settings#profile) e leia as descrições de usuários abaixo. | String    |

#### Detalhes de conexão <a href="#detalhes-de-conex-o" id="detalhes-de-conex-o"></a>

|                  |                           |
| ---------------- | ------------------------- |
| **Hostname**     | api-messaging.wavy.global |
| **APIs**         | /v1/carrier/lookup        |
| **Porta**        | 443 (https)               |
| **Protocolo**    | HTTPS (encriptação TLS)   |
| **Autenticação** | username + token          |
| **Portal**       | messaging.wavy.global     |


# Acentos e caracteres especiais

Mensagens que possuem **somente** caracteres que estão na tabela abaixo, são cobradas a cada 160 caracteres.&#x20;

Caso a mensagem possua **um ou mais** caracteres que não estão na tabela abaixo, a cobrança é feita a cada 70 caracteres, conforme especificação do protocolo na rede das operadoras.

|       |    |   |   |   |   |   |    |    |   |   |    |
| ----- | -- | - | - | - | - | - | -- | -- | - | - | -- |
| Space | (  | 0 | 8 | @ | H | P | X  | \` | h | p | x  |
| !     | )  | 1 | 9 | A | I | Q | Y  | a  | i | q | y  |
| “     | \* | 2 | : | B | J | R | Z  | b  | j | r | z  |
| #     | +  | 3 | ; | C | K | S | {  | c  | k | s | \~ |
| $     | ,  | 4 | < | D | L | T | \\ | d  | l | t |    |
| %     | -  | 5 | = | E | M | U | }  | e  | m | u |    |
| &     | .  | 6 | > | F | N | V | ^  | f  | n | v |    |
| ‘     | /  | 7 | ? | G | O | W | \_ | g  | o | w |    |

**Observações**:

1. A habilitação do uso de acentos e caracteres especiais deve ser solicitada ao suporte.
2. No caso em que a operadora destino não aceita acentos e caracteres (Sercomtel), nossa plataforma faz automaticamente para os nossos clientes, a substituição dos mesmos, por exemplo: á para a, é para e, etc.


# Textos grandes (concatenação)

O protocolo utilizado na rede das operadoras possui os limites de 70 ou 160 caracteres, para mensagens com ou sem [**caracteres especiais**](https://doc-messaging.wavy.global/pt.html?java#acentos-e-caracteres-especiais), respectivamente. Mas é possível enviar mensagens maiores com a utilização de concatenação, onde o aparelho reagrupa as mensagens ao recebê-las.

Para os clientes integrados via HTTPS, SFTP, ou MQ, não existe nenhum indicador adicional para ativar a concatenação, bastando enviar o texto da mensagem grande em uma única requisição.

Para os clientes integrados via SMPP, deve-se utilizar a funcionalidade de concatenação com indicadores no header (UDH), [LINK](https://en.wikipedia.org/wiki/Concatenated_SMS).

É importante notar que, apesar de aparecerem no aparelho como uma única mensagem grande, as mensagens continuam trafegando na rede das operadoras individualmente, e neste caso, continuamos sendo cobrados e cobrando individualmente, a cada 63 ou 160 (dependendo dos [**caracteres**](https://doc-messaging.wavy.global/pt.html?java#acentos-e-caracteres-especiais) utilizados). Lembrando que ao utilizar concatenação parte dos caracteres (70 ou 160) são utilizados pelo header.

Observação: Nos casos de operadoras que não suportam a funcionalidade de concatenação (Exemplos: Sercomtel), a Sinch envia as mensagens separadamente, sem concatenar, e inclui indicadores de ordem automaticamente para nossos clientes. Ex:

Inicio do texto…. (½)

……fim do texto (2/2)

F—


# API Carrier Lookup

Essa API permite que você execute consultas em lote de números, retornando o operador ao qual esses números pertencem e se for um número inválido (se um número não pertencer a nenhum operador, portanto, é inválido). Ele usa o protocolo HTTP com TLS e o método POST com parâmetros em [JSON](http://json.org/). A consulta permite saber se um determinado número pertence ao operador, mas não é possível verificar se o número está ativo.

{% hint style="danger" %}
**IMPORTANTE: As consultas de consulta de operadoras possuem um preço diferenciado de SMS, entre em contato com a equipe comercial.**
{% endhint %}

#### Autenticação <a href="#authentication" id="authentication"></a>

Para enviar mensagens e obter status por meio da API, é necessário autenticar usando uma combinação de nome de usuário ou e-mail e token de autenticação.

| Campo               | Detalhes                                                                                                          | Tipo de dado |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------ |
| Nome de usuário     | Seu nome de usuário ou e-mail                                                                                     | Corda        |
| AuthenticationToken | Seu token de autenticação. Adquira [aqui](https://messaging.wavy.global/dashboard/profile/settings#profile) o seu | Corda        |

#### Detalhes da conexão <a href="#connection-details" id="connection-details"></a>

<table><thead><tr><th width="272"></th><th></th></tr></thead><tbody><tr><td><strong>Nome do host</strong></td><td>api-messaging.wavy.global</td></tr><tr><td><strong>Apis</strong></td><td>Solicitação de lote /v1/carrier/lookup</td></tr><tr><td><strong>Porta</strong></td><td>443 (https)</td></tr><tr><td><strong>Protocolo</strong></td><td>HTTPS (criptografia TLS)</td></tr><tr><td><strong>Autenticação</strong></td><td>nome de usuário + token</td></tr><tr><td><strong>Portal</strong></td><td>mensagens.wavy.global</td></tr></tbody></table>


# Solicitação HTTP POST

`POST https://api-messaging.wavy.global/v1/carrier/lookup Content-Type: application/json`

Para realizar a consulta basta adicionar no corpo da solicitação um json com a matriz de números. O formato de número deve conter o código do país. Ex-Brasil: 5519999999999

{% tabs %}
{% tab title="cURL" %}

```
curl --request POST \
  --url https://api-messaging.wavy.global/v1/carrier/lookup \
  --header 'authenticationtoken: <authenticationtoken>' \
  --header 'username: <username>' \
  --header 'Content-Type: application/json' \
  --data '{
    "destinations": ["+55(19)997712322", "5519997712322", "2312312"]
}'
```

{% endtab %}

{% tab title="Ruby" %}

```
require 'uri'
require 'net/http'

url = URI("https://api-messaging.wavy.global/v1/carrier/lookup")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authenticationtoken"] = '<authenticationtoken>'
request["username"] = '<username>'
request["Content-Type"] = 'application/json'
request.body = "{\n\t\"destinations\": [\"+55(19)997712322\", \"5519997712322\", \"2312312\"]\n}"

response = http.request(request)
puts response.read_body
```

<br>
{% endtab %}

{% tab title="Python" %}

```
import requests

url = "https://api-messaging.wavy.global/v1/carrier/lookup"

payload = "{\n\t\"destinations\": [\"+55(19)997712322\", \"5519997712322\", \"2312312\"]\n}"
headers = {
    'Content-Type': "application/json",
    'authenticationtoken': "<authenticationtoken>",
    'username': "<username>"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-messaging.wavy.global/v1/carrier/lookup",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n\t\"destinations\": [\"+55(19)997712322\", \"5519997712322\", \"2312312\"]\n}",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "authenticationtoken: <authenticationtoken>",
    "username: <username>"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

<br>
{% endtab %}
{% endtabs %}

### Solicitar resposta <a href="#request-response" id="request-response"></a>

A resposta de consulta em lote conterá um arquivo JSON com as informações individuais sobre cada número consultado:

| Campo        | Detalhes                                                                                                                           | Tipo                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| id           | UUID para referência de messge                                                                                                     | String                |
| destinations | Este campo é uma matriz com as respostas das consultas em lote individuais, contém o id e correlationId de cada número de consulta | IndividualResponse\[] |
| destination  | Número de telefone pesquisado                                                                                                      | Long                  |
| active       | status do número do operador (atualmente só verifique se o número pertence ao operador, não ativo / em uso)                        | Boolean               |
| carrier      | Operador e país ao qual pertence o número consultado                                                                               | array\[]              |
| name         | Nome da transportadora                                                                                                             | String                |
| countryCode  | código do país                                                                                                                     | String                |

Resposta chamada em formato JSON

{% tabs %}
{% tab title="cURL" %}

```
{
    "id": "aadb5130-7dd7-11e7-baac-a6aabe61edb5",
    "destinations": [
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "2312312",
            "active": false,
            "carrier": {
                "name": "UNKNOWN"
            }
        }
    ]
}
```

> The last number in the example is an invalid number to demonstrate how the query returns the JSON in these cases.
> {% endtab %}

{% tab title="Ruby" %}

```
{
    "id": "aadb5130-7dd7-11e7-baac-a6aabe61edb5",
    "destinations": [
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "2312312",
            "active": false,
            "carrier": {
                "name": "UNKNOWN"
            }
        }
    ]
}
```

> The last number in the example is an invalid number to demonstrate how the query returns the JSON in these cases.
> {% endtab %}

{% tab title="Python" %}

```
{
    "id": "aadb5130-7dd7-11e7-baac-a6aabe61edb5",
    "destinations": [
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "2312312",
            "active": false,
            "carrier": {
                "name": "UNKNOWN"
            }
        }
    ]
}
```

> The last number in the example is an invalid number to demonstrate how the query returns the JSON in these cases.
> {% endtab %}

{% tab title="PHP" %}

```
{
    "id": "aadb5130-7dd7-11e7-baac-a6aabe61edb5",
    "destinations": [
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "2312312",
            "active": false,
            "carrier": {
                "name": "UNKNOWN"
            }
        }
    ]
}
```

> The last number in the example is an invalid number to demonstrate how the query returns the JSON in these cases.
> {% endtab %}

{% tab title="Java" %}

```
{
    "id": "aadb5130-7dd7-11e7-baac-a6aabe61edb5",
    "destinations": [
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "5519997712322",
            "active": true,
            "carrier": {
                "name": "VIVO",
                "countryCode": "BR"
            }
        },
        {
            "destination": "2312312",
            "active": false,
            "carrier": {
                "name": "UNKNOWN"
            }
        }
    ]
}
```

> The last number in the example is an invalid number to demonstrate how the query returns the JSON in these cases.
> {% endtab %}
> {% endtabs %}


# Introdução ao Messaging - SMS

O messaging é nossa plataforma de gerenciamento de mensagens, é a partir dela que você consegue enviar e metrificar todos os seus disparos.

## Como acessar o Messaging?

Para acessar a plataforma, clique no link a seguir: [**Messaging - MM2**](https://messaging.wavy.global/)**,** você será direcionado para uma página como essa:

<figure><img src="/files/akb1QLIJtx1YZg59dxFM" alt=""><figcaption><p>Tela de login</p></figcaption></figure>

## Quais são minhas credenciais de acesso?

Nós sempre criamos seu login com seu endereço de email corporativo, não utilizamos contas pessoais para criação de novas contas.

Assim que seu ambiente estiver pronto você receberá um email com as informações de acesso.

<figure><img src="/files/SemstzAmBtQeLdgp2Sp0" alt=""><figcaption></figcaption></figure>

Não recebeu o email com as orientações de acesso? É simples acesse: [**Reset de senha**](https://messaging.wavy.global/password)**.**

## Esqueci a minha senha, e agora?

Em casos de esquecimento de senha, você pode clicar no botão [**esqueci minha senha**](#esqueci-a-minha-senha-e-agora) da página inicial, inserir seu endereço de email e as informações para troca de senha serão enviadas para você.

<figure><img src="/files/yyQKNoMbcofgBpWMzwJi" alt=""><figcaption><p>reset de senha</p></figcaption></figure>

Tudo pronto?&#x20;

Agora vamos aos próximos passos com a ferramenta.


# Glossário

Aqui estão listados alguns termos básicos que você precisa se familiarizar para usar o Messaging.

|          Palavra         |                                                                                                                                                                               Descrição                                                                                                                                                                               |
| :----------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|          **API**         |                                                                   É um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.                                                                  |
|       **Blocklist**      |                                                                                                                     São números que a empresa adiciona e classifica como números que não podem receber mensagens. Exemplo: número de concorrentes.                                                                                                                    |
|        **Carrier**       |                                                                                               Você também é cliente de uma Carrier! Denominamos por Carrier a Operadora que detém o número em questão. Ou seja, meu número é TIM, então a Carrier do meu MSISDN é a TIM.                                                                                              |
| **Conta ou Customer ID** |                                                                                                                                                           Cada um de nossos clientes possui um customer ID.                                                                                                                                                           |
|    **Conversion Rate**   | A taxa de conversão, ou conversion rate (principalmente usado por clientes internacionais) é a fórmula utilizada para medir a quantidade de mensagem trafegada VS o volume de entrega. Quando há queda de DR, os clientes são afetados diretamente na conversion rate, podendo direcionar o tráfego para outro broker de SMS que esteja com a conversion rate melhor. |
|        **Deploy**        |                                                                                       Um Deploy, ou lançamento, é toda atualização, lançamento ou nova versão de alguma feature. Podendo ser em homologação ou produção, todos os deploys incrementam ou retiram alguma feature.                                                                                      |
|       **DR ou DLR**      |                             DR, ou Delivery Report, é o status de confirmação de entrega com sucesso na operadora. Se o MT foi entregue com sucesso, a DR confirmará o horário de entrega desse SMS ao usuário. Importante, se no momento de envio do SMS, o aparelho estiver desligado ou fora de área, o horário da DR sofrerá atrasos.                             |
|          **FTP**         |                                                                                                              Esse sistema é muito utilizado na Sinch para envios em lotes grandes. Cada plataforma (WA ou SMS) deve respeitar um formato pré estabelecido                                                                                                             |
|          **LA**          |                                                                                           LA, ou Large Account, é um número curto (até 6 dígitos) que é utilizado para enviar o SMS. Os números pertencem às operadoras e só podem ser utilizados por parceiros homologados.                                                                                          |
|          **MO**          |                                                        MO, ou Mobile Originated, é toda mensagem que parte de um aparelho para a empresa em questão. É utilizado no caso de perguntas e respostas por mensagem, quando é necessária a confirmação do usuário. Verifique se sua conta está habilitada para isso.                                                       |
|          **MT**          |                                                                                                          MT, ou Mobile Terminated, é toda mensagem que tem com destino o aparelho do usuário. Ou seja, a empresa envia uma mensagem para o número em questão.                                                                                                         |
|        **MSISDN**        |                                                                                                                                        É um número que identifica exclusivamente uma assinatura em uma rede móvel GSM ou UMTS.                                                                                                                                        |
|        **Opt-in**        |                                                                               Opt-in é a permissão dada pelo usuário para que uma empresa possa entrar em contato com ela por determinado canal. Essa permissão pode ser, por exemplo, através do site da própria empresa, email ou SMS.                                                                              |
|        **Opt-out**       |                                                  Opt-out é quando o usuário opta por não receber mais mensagens daquele contato por um determinado canal. Quando um usuário opta por sair da lista de contato, o nosso sistema bloqueia qualquer tentativa de envio que possa ocorrer para o usuário daquele contato.                                                 |
|       **Subconta**       |                                                                          Dentro de uma Conta, é possível ter várias Subcontas com “departamentos” e configurações personalizadas, onde é possível realizar vários disparos diferentes, como atendimento, CRM, Status de pedido, entre outros.                                                                         |
|          **VPN**         |                                                                                                       Em resumo, cria uma conexão segura e criptografada, que pode ser considerada como um túnel, entre o seu computador e um servidor operado pelo serviço VPN.                                                                                                      |
|        **Webhook**       |                                                                      Um webhook é uma ponte de informação entre o nosso sistema Sinch e a empresa dona do Webhook. Essa ponte é feita através de uma URL onde trafegam informações entre o nosso sistema e o sistema desejado pelo nosso cliente.                                                                     |
|       **Whitelist**      |                                                                                 Os usuários que estão em Whitelist, são usuários que a empresa adiciona e classifica como usuários que podem receber mensagens. Isso não significa que esse usuário deu a permissão em algum momento.                                                                                 |


# Tela inicial da plataforma

Sua tela inicial para controle de dados da ferramenta

{% hint style="danger" %}
**O conteúdo das mensagens enviadas estão protegidos por criptografia.**
{% endhint %}

Sempre que realizar o acesso a ferramenta, essa será sua tela inicial.

Ela traz algumas informações importantes sobre a utilização da ferramenta. Nesse dashboard inicial você poderá metrificar a quantidade de envios realizados nos últimos 7, 15 ou 30 dias.

<figure><img src="/files/3zEDmrSD1WDmzzHh7vr7" alt=""><figcaption></figcaption></figure>

Nesse gráfico você terá apenas uma visão geral da plataforma para que possa mensurar a quantidade de disparos realizados durante o período.

Em campanhas você poderá visualizar cada uma das campanhas vinculadas aos seus envios e quantas mensagens estão relacionadas a cada uma delas.

<figure><img src="/files/smPas0pELOfeXVlYjurK" alt=""><figcaption></figcaption></figure>

A ferramenta lista o total de mensagens disparadas, o total de mensagens que foram enviadas e o total de mensagens apresentaram erros.

O gráfico listado será segmentado por dias e cores:

* <mark style="color:green;">**Barra verde:**</mark> Envios realizados com sucesso.
* <mark style="color:red;">**Barra vermelha**</mark>**:** Envios que apresentaram erros.

Em nossa central de relatórios você sempre poderá acompanhar o que aconteceu com cada uma das mensagens enviadas.

{% embed url="<https://youtu.be/0OnXTEPAOQk?si=rUa01tGblS8xoYPo>" %}


# Meu perfil | Idioma

Acesse informações sobre seu perfil de usuário na plataforma.

No topo superior direito da tela, expanda o menu de opções e selecione a função **meu perfil**.

<figure><img src="/files/KkSMTN8hXC2ECX8qtoMY" alt=""><figcaption></figcaption></figure>

Clicando neste campo, você terá algumas informações importantes sobre seu usuário na plataforma, caso você tenha qualquer problema com a ferramenta nossa equipe de suporte solicita algumas informações que estão listadas nesse campo.

<figure><img src="/files/Qbe4OXCaARrrsajhDoTh" alt=""><figcaption></figcaption></figure>

* **Usuário:** Este campo identifica quem é você dentro da plataforma, ele também aparece em nossa central de relatórios.
* **Cliente:** Este campo identifica a qual empresa o seu usuário responde dentro do sistema.
* **SubConta:** A qual subconta seu usuário responde, sempre que você realiza envios na ferramenta a subconta que realizou o disparo também fica registrada.\
  O uso de subcontas é interessante para as empresas que tem diversas áreas utilizando o mesmo ambiente, facilita a divisão por centro de custo.
* **Token de autenticação:** Este token é único e exclusivo para cada uma das contas criadas. Ele é utilizado caso faça o uso de integração com outras plataformas.

{% hint style="info" %}
Precisa saber mais sobre integrações?

[**Acesse nossa documentação técnica**](https://doc-messaging.wavy.global/#key-terms)
{% endhint %}

Logo abaixo você terá informações dos seus dados de email cadastrados na plataforma e alteração de senha se necessário.

<figure><img src="/files/1Omy2kgdL9GqjOI94RGN" alt=""><figcaption><p>dados de acesso</p></figcaption></figure>

{% hint style="info" %}
**Dica:** Você pode utilizar o username que aparece no campo meu perfil para fazer login na plataforma.

Ao acessar a plataforma digite seu nome de usuário e sua senha cadastrada.
{% endhint %}

Caso você não esteja visualizando o campo telefone na ferramenta é porque o administrador da plataforma ainda não habilitou a [**verificação em duas etapas para sua empresa.**](/permissoes/verificacao-em-duas-etapas)

## Idioma

Hoje a ferramenta suporta três idiomas nativos:

* Português;
* Inglês;
* Espanhol;

Você pode configurar a ferramenta no idioma mais confortável para você, para alternar o idioma da ferramenta:

No topo superior direito da tela expanda o menu e selecione idioma:

<figure><img src="/files/7ENBISvANnrVe2z01JAJ" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/0OnXTEPAOQk?si=rUa01tGblS8xoYPo>" %}


# Como montar sua base de clientes para envio

Você pode fazer o upload da sua base de clientes para plataforma, veja como utilizar variáveis e montar o arquivo de forma correta.

{% hint style="info" %}
**Requisito: O arquivo de contatos pode ser em, CSV ou TXT e devem ter no máximo 105 MB.**
{% endhint %}

<figure><img src="/files/h30C7hs0mCfk7MpVGiXN" alt=""><figcaption></figcaption></figure>

**A utilização do uso do DDI está disponível apenas para o envio por arquivo, você pode escolher em adicionar o DDI do país em sua base, ou permitir que a ferramenta faça isso de forma automática.**

## Como montar um arquivo .CSV

Para montar o arquivo no Excel ou no Google Spreadsheet, deve seguir-se algumas diretrizes:

* A **primeira linha** é composta por um **cabeçalho;**
* A **primeira coluna** deve ter o **números dos contatos;**
* As **demais colunas** são preenchidas por **variáveis | campos dinâmicos** que podem ser utilizadas no corpo da mensagem ou nas variáveis do texto.
* **Uma das colunas** pode ser usada como **Correlation ID** (com título de **`correlationid`**) para identificação de cliente pelos relatórios;

Exemplo:

<table data-header-hidden><thead><tr><th width="172">destination</th><th width="98">name</th><th width="82">info</th><th>correlationid</th></tr></thead><tbody><tr><td>destination</td><td>name</td><td>info</td><td>correlationid</td></tr><tr><td>5511987654321</td><td>André</td><td>Sinch</td><td>campanha_X</td></tr><tr><td>5511912345678</td><td>Mozart</td><td>Sinch</td><td>campanha_Y</td></tr></tbody></table>

## Como montar um arquivo CSV

Para montar o arquivo no Excel ou no Google Spreadsheet, siga o mesmo modelo acima do arquivo XLSX e salve em CSV.

**Excel:**

![Excel: Salvar como / Formato do Arquivo CSV](/files/-LQ0k3J2TSTFYAOjBMgq)

**Google Sheets:**

![Google Spreadsheet: Fazer download como / Valores separado por vírgula](/files/-LQ0kcarrScfX5np4AWI)

## **Como montar um arquivo TXT**

Para montar um arquivo TXT, basta preencher a primeira linha do arquivo com as informações:\
**destination:** reservado para todos os números de telefone\
separado por ";" as outras "colunas" do arquivo.

```
destination;name;info;correlationid
5511987654321;wavy;global;list1
5511912345678;movile;company;list2
```

{% hint style="danger" %}
**ATENÇÃO**:&#x20;

* A utilização do uso do DDI está disponível apenas para o **envio por arquivo.**
* Se os números do arquivo já tiverem código do país correspondente nada será adicionado.
* Por enquanto só fazemos a adição de código DDI de um único país por vez, se o seu disparo for para diversos países, realize disparos separadamente.
  {% endhint %}

{% embed url="<https://youtu.be/uVnjoVESxJE?si=pYMR_XEp90YAmsyq>" %}


# Erros mapeados

Possíveis erros que você pode encontrar ao fazer o upload da sua base de clientes.

### **Dicas:** &#x20;

Para compreender melhor o erro de um arquivo, a plataforma Messaging passou a acusar o que está de errado e em que linha do seu arquivo.&#x20;

Ao subir um arquivo com algum tipo de erro, aparecerá a mensagem abaixo com um hiperlink

<figure><img src="/files/ZVp4fmqjkuPOUC5dyJoI" alt=""><figcaption></figcaption></figure>

Ao clicar em: ![](/files/OvC8R5ClMZcz3nOpIByU), você será redirecionado para um arquivo **.txt** (**dependendo do navegador, irá abrir em uma aba à parte**) e você visualizará as informações assim:

<figure><img src="/files/W140H8YdDn0HxpsCQfnn" alt=""><figcaption></figcaption></figure>

Para ficar mais fácil de entender estes erros, leva em consideração a subida deste arquivo:

<figure><img src="/files/iXZqOzK1lbwmtXQOaIBj" alt=""><figcaption></figcaption></figure>

Dessa forma, fica mais fácil de entender onde está o problema!&#x20;

Caso haja dúvidas para interpretar essas informações, não hesite em chamar nosso Time de [**Suporte**](/suporte/introducao).

Porém, é importante saber que temos um erro que acontece antes da subida do arquivo que é o de Encoding, que é o erro **abaixo**.

### Erro no envio do arquivo relacionado à formatação

**Mensagem de erro:** O arquivo precisa estar escrito com caracteres em UTF-8. Por favor, verifique e corrija o tipo antes de tentar novamente. &#x20;

É obrigatório que o arquivo esteja escrito com os caracteres em UTF-8. É necessário que corrija antes de tentar novamente.&#x20;

<figure><img src="/files/HpmyyETGPG31jJaqZPlT" alt=""><figcaption></figcaption></figure>


# Arquivos salvos

Essa função traz a lista de todos os arquivos que foram enviados por você, ou seja, ao realizar um envio de mensagem sua base ficará salva de forma automática para futuros envios.

Para que você tenha visibilidade dos recursos que serão listados abaixo, é necessário que você tenha uma das permissões a seguir:

Criar novos arquivos na plataforma:

* **Administrador:** Poderá adicionar novos arquivos que ficarão disponíveis para todos da organização.
* **Analista:** Poderá adicionar novos arquivos que ficarão disponíveis para todos da organização.
* **Gerente:** Poderá adicionar novos arquivos que ficarão disponíveis para todos da organização.
* **Reseller:** Poderá adicionar novos arquivos que ficarão disponíveis para todos da organização.
* **Usuário:** Poderá adicionar novos arquivos e ficarão disponíveis apenas para sua visualização.

Visualizar lista de arquivos salvos:&#x20;

* **Administrador:** Terá visibilidade de todos os arquivos salvos na plataforma.
* **Analista:** Terá visibilidade de todos os arquivos que pertençam a mesma subconta.
* **Gerente:** Terá visibilidade de todos os arquivos salvos na plataforma.
* **Reseller:** Terá visibilidade de todos os arquivos salvos na plataforma.
* **Usuário:** Terá visibilidade apenas dos arquivos salvos **por ele** na plataforma.
* **Carregador de lotes:** Terá visibilidade de todos os arquivos que pertençam a mesma subconta.

Deletar lista de arquivos salvos:

* **Administrador:** O administrador poderá excluir qualquer arquivo salvo da plataforma.
* **Analista:** O analista poderá excluir apenas os arquivos criados por ele.
* **Gerente:** O gerente poderá excluir apenas os arquivos criados por ele.
* **Usuário:** O usuário poderá excluir apenas os arquivos criados por ele.

Enviar arquivos:

* **Administrador:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.
* **Analista:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.
* **Gerente:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.
* **Reseller:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.
* **Usuário:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.
* **Carregador de lotes:** Poderá enviar mensagens para qualquer arquivo salvo que esteja criado na plataforma.

{% hint style="info" %}
**Importante:**

* O administrador da plataforma terá visibilidade de todos os arquivos enviados.
* Acessos com permissão de usuário tem apenas a visibilidade dos arquivos enviados por ele, dos demais usuários não.
* Não é permitido selecionar mais de um arquivo para o envio de mensagens.
* **Os arquivos ficam disponíveis por 30 dias.**
  {% endhint %}

### Onde encontrar os arquivos salvos?

Para encontrar a funcionalidade, você precisa realizar o seguinte passo a passo:

Clique no botão nova mensagem:

<figure><img src="/files/fpd75hR0VKzAdDeURQOp" alt=""><figcaption></figcaption></figure>

Um menu será aberto, selecione a opção SMS:

<figure><img src="/files/pAmS2vGTjMUc0bVi3gJb" alt=""><figcaption></figcaption></figure>

A função ficará disponível na tela de destinatários:

<figure><img src="/files/ubwRFrdoKXnOoQlbaYE3" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Caso você tenha permissão de administrador todos os arquivos enviados estarão disponíveis para visualização.

Caso você tenha permissão de usuários você terá a visualização de todos os arquivos enviados por você.
{% endhint %}

Selecione a base de contatos que deseja utilizar e [**siga com seu envio.**](/sms/introducao-ao-messaging-sms/como-enviar-uma-mensagem)

## **Gerenciamento de arquivos - File Manager**

***

Ao realizar um disparo para uma base de clientes ela será salva automaticamente como explicado no tópico anterior, você terá a funcionalidade de gerenciamento dos arquivos enviados com outras funcionalidades como:

* Visualizar as bases já enviadas.
* Excluir bases defasadas ou desatualizadas.
* Enviar uma mensagem diretamente para aquele grupo de destinatários.
* Fazer apenas o upload de novas bases para que elas fiquem disponíveis para os usuários.

Para acessar a tela de gerenciamento de arquivos, no seu menu lateral esquerdo expanda a opção mensageria e [**clique em gestão de arquivos - SMS:**](https://messaging.wavy.global/dashboard/messages/v2/sms/file-manager)

&#x20;

<figure><img src="/files/UWD7zDFH8dUViy1Bi3mA" alt=""><figcaption></figcaption></figure>

Você será direcionado para uma tela como essa:

<figure><img src="/files/5Rkl1JSK0vUCtx7rBnwq" alt=""><figcaption></figcaption></figure>

### Upload de arquivos

Para fazer o upload de novos arquivos você pode [**montar a sua base de envios**](/sms/introducao-ao-messaging-sms/envio-com-arquivo) da forma padrão e utilizar a seguinte função para o upload:

<figure><img src="/files/oUyXZSAeRMdDbaWwX9XF" alt=""><figcaption></figcaption></figure>

No campo acima será necessário que sinalize se você adicionou o código do país ao seu envio, após selecionar uma das opções o botão **escolher arquivo** ficará disponível para que escolha a sua base.

{% hint style="info" %}
Fique atento, nessa etapa nós não estamos montando o disparo de uma mensagem, estamos apenas **fazendo o upload de uma base de clientes para envios futuros.**
{% endhint %}

**Selecione o arquivo da sua máquina e a plataforma fará o processamento:**

<figure><img src="/files/8Ru3Jo6VUHkI3jKvDa4n" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Não é possível visualizar os usuários que estão alocados no seu arquivo, você só terá essa visualização nos relatórios depois do seu arquivo enviado.**
{% endhint %}

Para enviar uma mensagem através do gerenciador de arquivos, basta clicar no SMS em ações, a opção estará disponível em todos os seus arquivos:

<figure><img src="/files/B3NPWHVlMRtRZVTtsCBm" alt=""><figcaption></figcaption></figure>

Esse sms que aparece em ações tem o nome de **Continuar Campanha:**

<figure><img src="/files/9KAhTUJzud2SJPF8nr5f" alt=""><figcaption></figcaption></figure>

Ao clicar sobre ele você será direcionado para a página de conteúdo de SMS:

<figure><img src="/files/mKPmpO3diLKLgdfg5gIk" alt=""><figcaption></figcaption></figure>

Escolha a melhor forma de montar seu arquivo e [**siga com seu envio**](/sms/introducao-ao-messaging-sms/como-enviar-uma-mensagem).

### Exclusão de bases

Também é possível excluir bases que não serão mais utilizadas, acesse a central [**de gestão de arquivos**](/sms/introducao-ao-messaging-sms/arquivos-salvos)**.**

Agora basta pesquisar por seu arquivo:

<figure><img src="/files/7ObrlAkRBEHojVYTekJR" alt=""><figcaption></figcaption></figure>

e utilizar a lixeira para a exclusão, você poderá visualizar a lixeira em **ações**.

<figure><img src="/files/jhdLGeXWk5sroc5gRk6x" alt=""><figcaption></figcaption></figure>


# Campanhas

Entenda como funciona a análise de envio de mensagens através de uma campanha.

## Como criar uma campanha na plataforma

No seu menu lateral esquerdo expanda o menu de mensageria e selecione campanhas:

<figure><img src="/files/F00UpQOnQRFTfsc1UIfS" alt=""><figcaption><p>campanhas</p></figcaption></figure>

Nessa tela você visualiza todas as campanhas que estão criadas na plataforma com as seguintes informações:

* Nome da campanha;
* Alias da campanha;
* Descrição;
* Criada em:
* Subconta;
* Status;
* Ações;

Para criar uma nova campanha você pode utilizar o botão: **Criar campanha.**

<figure><img src="/files/oxjQPWa8L8hcVjsqFUmQ" alt=""><figcaption></figcaption></figure>

Será necessário que adicione um nome a campanha e em seguida uma descrição que é opcional, clique em salvar.

Pronto, sua campanha está pronta para uso.

## Envio de mensagem com Campanha

Campanhas ajudam você a organizar suas mensagens e compara-las umas com as outras.&#x20;

![campanhas](/files/-MibQyU-9buX1EzJfsD-)

Hoje ao realizar um envio você tem três opções:

* Envio sem campanha;
* Selecionar uma campanha já existe;
* Criar uma nova campanha;

{% hint style="success" %}
Se você já enviou uma mensagem com campanha, é possível enviar novas mensagens utilizando uma campanha já existente.

Para desativar uma campanha clique no botão editar.
{% endhint %}

## Analisar Campanhas

Ao enviar uma mensagem com uma campanha, posteriormente podemos filtrar nos relatórios e analisar os dados da campanha, porcentagem de entrega, porcentagem de leitura e outras informações.


# Acentos e caracteres especiais

Fique atento ao uso de caracteres especiais na plataforma.

## Acentos e caracteres especiais

Mensagens que possuem **somente** caracteres que estão na tabela abaixo, são cobradas a cada 160 caracteres. Caso a mensagem possua **um ou mais** caracteres que não estão na tabela abaixo, a cobrança é feita a cada 70 caracteres, conforme especificação do protocolo na rede das operadoras.

<table data-header-hidden><thead><tr><th width="122"></th><th width="75"></th><th width="62"></th><th width="52"></th><th width="50"></th><th width="49"></th><th width="40"></th><th width="40"></th><th width="44"></th><th width="43"></th><th width="50"></th><th></th></tr></thead><tbody><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Space</td><td>(</td><td>0</td><td>8</td><td>@</td><td>H</td><td>P</td><td>X</td><td>`</td><td>h</td><td>p</td><td>x</td></tr><tr><td>!</td><td>)</td><td>1</td><td>9</td><td>A</td><td>I</td><td>Q</td><td>Y</td><td>a</td><td>i</td><td>q</td><td>y</td></tr><tr><td>“</td><td>*</td><td>2</td><td>:</td><td>B</td><td>J</td><td>R</td><td>Z</td><td>b</td><td>j</td><td>r</td><td>z</td></tr><tr><td>#</td><td>+</td><td>3</td><td>;</td><td>C</td><td>K</td><td>S</td><td>{</td><td>c</td><td>k</td><td>s</td><td>~</td></tr><tr><td>$</td><td>,</td><td>4</td><td>&#x3C;</td><td>D</td><td>L</td><td>T</td><td>\</td><td>d</td><td>l</td><td>t</td><td></td></tr><tr><td>%</td><td>-</td><td>5</td><td>=</td><td>E</td><td>M</td><td>U</td><td>}</td><td>e</td><td>m</td><td>u</td><td></td></tr><tr><td>&#x26;</td><td>.</td><td>6</td><td>></td><td>F</td><td>N</td><td>V</td><td>^</td><td>f</td><td>n</td><td>v</td><td></td></tr><tr><td>‘</td><td>/</td><td>7</td><td>?</td><td>G</td><td>O</td><td>W</td><td>_</td><td>g</td><td>o</td><td>w</td><td></td></tr></tbody></table>

{% hint style="info" %}

## **Observações:**

* A habilitação do uso de acentos e caracteres especiais deve ser solicitada ao suporte.
* No caso em que a operadora destino não aceita acentos e caracteres (Oi e Sercomtel), nossa plataforma faz automaticamente para os nossos clientes, a substituição dos mesmos, por exemplo: á para a, é para e, etc.
* Quando adicionamos um conteúdo no encode GSM-7 (160 caracteres), são contados como dois caracteres cada: \ ^ \~ \[ ] { } | €.
* Quando utilizamos o encode UCS-2/Unicode (70 caracteres), a contagem é feita normalmente.
  {% endhint %}

## Textos grandes (concatenação)

O protocolo utilizado na rede das operadoras possui os limites de 70 ou 160 caracteres, para mensagens com ou sem **caracteres especiais**, respectivamente. Mas é possível enviar mensagens maiores com a utilização de concatenação, onde o aparelho reagrupa as mensagens ao recebê-las.

É importante notar que, apesar de aparecerem no aparelho como uma única mensagem grande, as mensagens continuam trafegando na rede das operadoras individualmente, e neste caso, continuamos sendo cobrados e cobrando individualmente, a cada 63 ou 160 (dependendo dos **caracteres** utilizados). Lembrando que ao utilizar concatenação parte do caracteres (70 ou 160) são utilizados pelo header, pois é por ele que identificamos que uma mensagem está atrelada a outra.

Também é importante ressaltar que toda vez que mensagens são concatenadas a operadora desconta alguns caracteres da segunda mensagem, com isso a segunda mensagem ao invés de ter 160 ou 70 caracteres, passa a ter 153 ou 63 caracteres disponíveis para uso pelo usuário na hora do envio.

## Clientes que utilizam SMS para Marketing

No caso de clientes que utilizam a plataforma para envios de SMS Marketing, também é descontado o número de caracteres do header e do footer, pois ambas as identificações são **obrigatórias** para esse tipo de conteúdo.

**Header**: Nesse caso o header é o 'reference' da subconta utilizada no disparo.

**Footer**: é a mensagem de opt out, onde o destinatário tem a opção de parar de receber esse tipo de conteúdo.&#x20;

## Palavras não permitidas em envios SMS

Seguindo as diretrizes dos nossos serviços e afim de proteger os usuários finais de conteúdos impróprios, algumas palavras ou links precisam ser habilitados pelo nosso time de Suporte.\
\
Se a sua mensagem não foi enviada por **conter um link** ou **termo específico** que possa parecer ambíguo em alguns casos, entre em contato conosco acessando <https://servicecenter.sinch.com> informando o link ou termo a ser enviado e o nosso time fará uma análise do mesmo e a liberação para os seus futuros envios.


# Envio rápido de SMS

Disparos rápidos de SMS

Para enviar um SMS de forma mais rápida e simples, utilize o "**envio rápido**" disponível no menu "**Nova mensagem**".

<figure><img src="/files/zhaUJJxBmajn93qGPk2t" alt=""><figcaption></figcaption></figure>

Utilizando essa função você fará toda a configuração do seu SMS em uma única tela e não conseguirá utilizar alguns recursos como:

* Disparos para grupos;
* Disparos para contatos;
* O envio da sua base de clientes está limitado ao tamanho de 80MB.
* Não é possível utilizar template de SMS;
* Não é possível utilizar campos dinâmicos;
* Não é possível vincular campanhas ao envio;

### Fazendo upload de destinatários:

Você pode optar por adicionar os números de telefone de forma manual utilizando a função: **Digite números de telefone.**

Para segmentar os usuários é simples, adicione o DDI+DDD+Número que fará a conexão:

<figure><img src="/files/eq9f0rCHHGxw2h9O7anP" alt=""><figcaption><p>envio por número</p></figcaption></figure>

Se o disparo for realizado para mais de um destinatário separe os números por vírgula.

Está pensando se adicionou algum número repetido? Não se preocupe, a plataforma fará apenas uma entrega para esse número.

Logo abaixo a plataforma faz a contagem de destinatários anexados a mensagem:

<figure><img src="/files/qA9FCQCQ8CgfKwj4APDe" alt=""><figcaption><p>todos os números</p></figcaption></figure>

Caso opte por fazer o upload da sua base de clientes, clique em **enviar arquivo:**

![destinatários](/files/-MibGUQ49z_GZMloUyKc)

{% hint style="info" %}
**Dica: A plataforma permite que você faça o download de um modelo de dados, é obrigatório que seu arquivo esteja salvo no formato .CSV, .TXT ou .XLSX**
{% endhint %}

Caso não queira fazer o download do modelo, seu arquivo deve conter o seguinte formato DDI+DDD+Número de telefone:

| Destination       |
| ----------------- |
| **5511990335781** |

Liste todos os números de telefone que devem receber a mensagem.

Na plataforma, você terá a opção de adicionar automaticamente o DDI do país aos seus envios, basta selecionar a seguinte opção:

![](/files/4plYHUnafbYrXqBPMg3h)

Caso você queira que a ferramenta adicione o DDI do país de forma automática, sua base de clientes deve conter apenas o DDD+Número de telefone.

Basta habilitar o botão e selecionar o país do seu envio.

## **Conteúdo:**

Adicione o conteúdo da sua mensagem, você terá 160 caracteres para descreve-la.

{% hint style="danger" %}
**Nossa plataforma tem um padrão habilitado para remoção de qualquer acentuação utilizada no texto, entenda mais sobre como funciona as** [**acentuações clicando aqui.**](/sms/introducao-ao-messaging-sms/como-enviar-uma-mensagem)
{% endhint %}

![conteúdo](/files/-MibFxYYmLFKJAYNsyFz)

{% hint style="danger" %}
Caso você ultrapasse a quantidade máxima de 160 caracteres, sua mensagem será dividida em mais partes, você pode acompanhar em quantas partes será dividida no contador de caracteres:
{% endhint %}

![](/files/OGdyYUwkPYClqpri0Mve)

{% hint style="danger" %}
**Se atente em quantas partes sua mensagem será dividida para evitar cobranças adicionais.**

Caso você queira enviar um link em seu SMS, é necessário que envie para que nossa equipe avalie. Você pode acessar nosso [**Service Center**](https://servicecenter.wavy.global/) para isso.
{% endhint %}

Em uma nova atualização da plataforma os administradores podem ajustar a [quantidade máxima de caracteres a ser utilizado no SMS.](/sms/introducao-ao-messaging-sms/configuracao-de-limite-de-caracteres)

### Enviar mensagem

Você pode optar pelo envio imediato da mensagem ou agendar esse envio, se optar por agendar o envio da mensagem poderá escolher data e hora do disparo da mensagem.

<figure><img src="/files/qiaKIUHNi03ND0wUg2EQ" alt=""><figcaption></figcaption></figure>

Prontinho, agora clique em enviar.


# Template SMS

Saiba como criar um modelo de mensagem SMS.

No Messaging você pode criar e salvar modelos de mensagens para envios futuros!&#x20;

Adicione emojis e campos dinâmicos para personalizar sua mensagem. Você pode utilizar quantas vezes quiser o mesmo modelo de mensagem.

## Como criar Templates SMS

No seu menu lateral esquerdo, expanda a guia de **Mensageria** e clique na opção **template SMS:**

![template sms](/files/-Miv9bXV2xyyNItrcnk7)

Você será redirecionado para uma nova tela, onde poderá acompanhar todos os templates que já estão criados na plataforma, se este for seu primeiro template, clique na parte superior da tela em: **Criar template.**

![criar template](/files/-Miv9w-UuE1I19AknTla)

Primeiro, é necessário que adicione um nome ao seu template:

<figure><img src="/files/6Rr2dE0jGYeCm7nWdXDE" alt=""><figcaption><p>nome do template</p></figcaption></figure>

{% hint style="info" %}
**Dica:** Sempre aplique nomes relacionados ao texto utilizado, isso facilita o gerencimento da plataforma.
{% endhint %}

A seguir, você pode começar a digitar o texto da sua mensagem, podendo utilizar emojis (não são aceitos em todos os dispositivos) e também variáveis (campos dinâmicos):

<figure><img src="/files/LckGxQUL8Mm1aJkboFOr" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Dica:** Não se preocupe com as acentuações utilizadas a plataforma fará a remoção de forma automática.

Caso isso não esteja configurado por padrão, você poderá aplicar a configuração durante a criação da mensagem:
{% endhint %}

<figure><img src="/files/EuiLHkt9BcxbTVIyLeme" alt=""><figcaption></figcaption></figure>

Quando utilizamos variáveis (campos dinâmicos) em nossas mensagens, elas aparecem entre chaves {{1}}, e são chamadas de variáveis ou campos dinâmicos porque são os únicos campos que você consegue alterar no momento de disparo da sua mensagem **utilizando um template de SMS.**

Você pode substituir esses campos com as palavras que fizerem mais sentido no seu texto, vamos utilizar o exemplo acima:

**`Olá {{1}}, tudo bem?`**

**`Essa é uma mensagem de teste para sua empresa {{2}}.`**

**`Até mais {{3}}!`**

A variável ou campo dinâmico **número um {{1}}**, pode ser substituída pelo nome do meu cliente.

A variável ou campo dinâmico **número dois {{2}}**, pode ser substituída pelo nome da empresa do meu cliente.

A variável ou campo dinâmico **número três {{3}}**, pode ser substituída por um apelido.

## Formatação de campos dinâmicos

Ao adicionar uma base de clientes com campos dinâmicos, você poderá utilizar o cabeçalho da sua base no seu envio como dito anteriormente.

Mas você também poderá formatar como esses campos serão utilizados.

Imagine o seguinte cenário:

Acabamos de criar na plataforma um template de SMS com o seguinte conteúdo:

```
Ola {{1}}, tudo bom? Voce sabia que {{2}} e bem legal para quem gosta de {{3}}?
```

Nós sabemos que vamos precisar definir os campos {{1}}, {{2}} e {{3}}, para isso vamos precisar montar nossa base de clientes, nesse cenário vamos utilizar a seguinte base para o envio:

<table><thead><tr><th>Destination</th><th>Nome</th><th width="136">Produto</th><th>Empresa</th></tr></thead><tbody><tr><td>5511912345678</td><td>Renata Iaconelli</td><td>SMS</td><td>sinch</td></tr><tr><td>5511987654321</td><td>FULANA Ciclana</td><td>WhatsApp</td><td>SinCh</td></tr><tr><td>5511912345678</td><td>Ciclana MARIA</td><td>Sms</td><td>SINCH</td></tr></tbody></table>

{% hint style="info" %}
**Note que nossos campos dinâmicos não estão com uma formatação padrão, cada campo está configurado de uma forma.**
{% endhint %}

Ao utilizar os campos dinâmicos com os templates de SMS, no momento em que vamos definir como os campos dinâmicos serão preenchidos, você terá a visualização de um campo chamado **função** clique sobre ele:

<figure><img src="/files/oblgKfz8wSuNKrNlYpVM" alt=""><figcaption></figcaption></figure>

O campo será expandido com a seguinte visualização:

<figure><img src="/files/S7yki9X0KqGJC8mqeT2x" alt=""><figcaption></figcaption></figure>

Agora precisamos definir como o {{1}} será preenchido, nele escolha uma das colunas da sua base de clientes:

<figure><img src="/files/7WlThWuzCCUORfAP3UNL" alt=""><figcaption></figcaption></figure>

Com o campo dinâmico preenchido, nós vamos selecionar o seu tipo de formatação:

<figure><img src="/files/K8i5ZzJlpHPeGJJB7JlQ" alt=""><figcaption></figcaption></figure>

Você terá as seguintes formatações disponíveis:

* **Maiúscula:** A plataforma colocará todos os caracteres do seu campo dinâmico em letras maiúsculas.<br>

  <figure><img src="/files/lTmIPkPpydE6pagcEJXu" alt=""><figcaption></figcaption></figure>
* **Minúscula:** A plataforma colocará todos os caracteres do seu campo dinâmico em letras minúsculas.<br>

  <figure><img src="/files/rMPSsxlw9k3PGzqshu9Q" alt=""><figcaption></figcaption></figure>
* **Primeira palavra:** No nosso exemplo no campo dinâmico **nome** nós adicionamos o nome e sobrenome do usuário, neste caso a plataforma pegará apenas o primeiro nome listado na coluna:<br>

  <figure><img src="/files/euE28jpI2ht3b3fh9Ams" alt=""><figcaption></figcaption></figure>
* **Primeira palavra minúscula:** A plataforma manterá apenas a primeira palavra listada e manterá todo o texto em letras minúsculas.<br>

  <figure><img src="/files/vjo3RuuVDSILLIPWDL2i" alt=""><figcaption></figcaption></figure>
* **Data atual:** A plataforma adiciona o dia atual.<br>

  <figure><img src="/files/Y1QRFuxR2CqQViV7V6kP" alt=""><figcaption></figcaption></figure>
* **Hora atual:** A plataforma adiciona a hora atual.<br>

  <figure><img src="/files/taDdvJfn8abGUXlfENZo" alt=""><figcaption></figcaption></figure>
* **Número aleatório:** A plataforma adiciona um número aleatório para o seu envio.<br>

  <figure><img src="/files/ul41IKtqv9B904puETKN" alt=""><figcaption></figcaption></figure>

Você poderá adicionar um tipo de formatação para cada um dos campos dinâmicos que devem ser preenchidos na sua mensagem:

<figure><img src="/files/ZRg8F8D5JjezLUNL7EOi" alt=""><figcaption></figcaption></figure>

Depois de definir os campos, você poderá seguir com seu envio.

{% hint style="info" %}

### [Perguntas frequentes sobre variáveis:](#user-content-fn-1)[^1]

**É obrigatório o uso das variáveis no meu texto?**\
**Resposta:** Não, o uso de variáveis é opcional.

**Ao criar meu template de mensagens, eu já devo inserir o que deverá ser preenchido no campo variável?**\
**Resposta:** Não, o preenchimento da variável só é feito no momento de disparo da mensagem.

**Sempre devo utilizar as mesmas variáveis nos meus envios?**\
**Resposta:** Não, você pode adicionar o que fizer mais sentido no seu texto no momento do envio. Inclusive você pode optar por digitar uma palavra padrão ao seu envio, mas nesse caso, todos os destinatários receberão o mesmo texto.
{% endhint %}

## Pré-visualização

Você sempre terá a pré-visualização da sua mensagem ao lado direito da tela:

![pré-visualização](/files/-MivBSctrntpgAg-n3tL)

Ao final da tela, clique em **Criar mensagem**, e seu template já está pronto para uso.

![](/files/-MivBjmlX83PATgLXmOR)

## Enviar SMS com Templates

No conteúdo do SMS você pode digitar em texto livre ou selecionar entre os templates criados.&#x20;

Primeiro, clique em nova mensagem:

![nova mensagem](/files/-MivBuviCGRi-BrphvLy)

A seguir selecione opção SMS:

![sms](/files/-MivC1aLjY36GdsG6d4b)

Faça upload da sua base de clientes para a plataforma, ou escolha sua mensagem forma de disparo da mensagem.

Se utilizar a opção **enviar um arquivo**, a plataforma vai ler o cabeçalho do seu arquivo como variável (campos dinâmicos), e você poderá alterar qualquer campo entre chaves {{}} por essas palavras.

**Envio por arquivo:**

As variáveis são as últimas palavras que aparecem nessa tela:

![](/files/-MivCgOhBWybLbhFABZk)

Após clicar em Avançar, você poderá escolher a opção de **Template:**

![template](/files/-MivD4APbIX9UPFDcab0)

A plataforma vai solicitar o nome do seu template em: **Escolha um modelo**, basta digitar o nome do template que criou:

![escolha o modelo](/files/-MivDJ6CMn49HvyMjvzr)

A seguir, você visualiza o texto da sua mensagem:

![Mensagem](/files/-MivDaKWlon6EB7VJbUL)

Poderá optar por enviar a mensagem como um flash-sms, mas não são todas as operadoras que aceitam este tipo de envio. A mensagem aparece como um pop-up na tela do celular do seu usuário final.

![flash sms](/files/-MivDlVpqeav2gSz6GDg)

E por último você adiciona as variáveis (campos dinâmicos) em sua mensagem, você poderá optar por preencher o campo com uma coluna da sua base de clientes (chamando os clientes pelos nomes, por exemplo), ou, adicionar uma mensagem padrão:

![campo dinâmico](/files/-MivE4RFH0YRKYQicDvw)

Se optar pela função coluna do arquivo, você poderá escolher entre todas as colunas que seu arquivo possui:

![coluna do arquivo](/files/-MivED_LGw75pKNdrn0J)

Você terá um campo de preenchimento para cada uma das variáveis que sua mensagem possui, você só será direcionado para próxima tela, quando preencher todos:

![campos dinamicos](/files/-MivEVQpmZoXF1lFexRU)

Sua mensagem será aparecerá ao lado direito da tela, para que você acompanhe seu envio.

A seguir, basta clicar em avançar e realizar o envio normalmente, escolhendo a campanha, horário de envios e resumo.

{% embed url="<https://youtu.be/jDHnOjUP2DA?si=znWkvYrYQ8yy7nsw>" %}

[^1]:


# Contatos

Saiba como editar, remover ou criar novos contatos.

## Lista de Contatos

Em contatos você encontra toda sua base de clientes que já foi importada para a plataforma.&#x20;

{% hint style="info" %}
**É importante ressaltar que seus contatos não ficam salvos de forma automática a cada envio, esses contatos precisam ser cadastrados na ferramenta.**
{% endhint %}

### Adicionar um novo contato

No seu menu lateral esquerdo, expanda o menu de mensageria e busque por contatos, você será direcionado a uma nova tela como no gif abaixo:

Há duas possíveis formas de adicionar contatos na ferramenta:

**Adicionando um único contato:**

![Contato único](/files/-Mib935Z5xCL5VsvtAyj)

{% hint style="info" %}
Clique no botão **+ único contato** no menu **contatos** e preencha o formulário, os campos com **\*** são obrigatórios. **Você pode ou não adicionar esse novo contato a um grupo existente.** Clique em **salvar**. Pronto! Seu novo contato foi criado. Ou você pode **importar vários contatos** de uma só vez por meio do upload de uma planilha.
{% endhint %}

#### Adicionando contatos em massa:

Para adicionar vários contatos de uma só vez, utilize o botão IMPORTAR CONTATOS, ele fica disponível na parte superior da página:

![](/files/nY2EfKVOpTAHnGKYNeyl)

Será necessário que crie um arquivo com seus contatos para a importação, ao clicar em importar contatos você terá disponível a opção de baixar um modelo.

Este modelo deve ser salvo no formato de CSV e estar com o seguinte formato:

|  Destination  |  Nome  |
| :-----------: | :----: |
| 5511123465789 | Renata |
| 5511123456789 | Andrea |

Sempre adicione o DDI + DDD + Número de telefone para que a plataforma faça a importação da forma correta.

Com seu arquivo pronto, basta realizar o upload para a plataforma.

![Adicione os contatos em massa](/files/-Mib9oernIeiyQBND3bT)

### Editar um contato

{% hint style="warning" %}
Na coluna "ações", é possível editar as informações de cada contato.
{% endhint %}

![Editar contato](/files/-MibAEWWboR9iREyuFoH)


# Grupos

É possível criar grupos com base nos seus contatos e direcionar disparos seletivos para determinadas pessoas. Dessa forma, você envia apenas o que seu cliente deseja visualizar.

{% hint style="warning" %}

### Não estamos nos referindo a grupos de WhatsApp, apenas grupo de pessoas para envios.

{% endhint %}

### Como criar um grupo

Para criar grupos de envios, primeiro é necessário que já tenha cadastrado seus contatos na plataforma.

No seu menu lateral esquerdo, expanda o menu de mensageria e selecione a opção grupos. Você será direcionado para uma nova tela, neste campo você poderá visualizar todos os seus grupos já criados na plataforma, se for necessário criar um novo grupo utilize a opção Criar Grupo, na parte superior da página:

![](/files/TubN0PR6ny4pGUIS6yB8)

Insira um nome para facilitar seu gerenciamento e uma descrição e clique em avançar, pronto seu grupo foi criado.

![Criar grupo](/files/-MibBNkSvKJ53Ji9kcxk)

### Editar um Grupo e adicionar membros

Clicando em **Ações > Editar**, você pode editar o nome e descrição do grupo.

Clicando em **Apagar Grupo**, você exclui ele da sua lista.

Para adicionar membros, alterne a guia.

![editar grupo](/files/-MibEevvXVcbbEyykFnr)


# Como enviar uma mensagem

Aprenda como realizar o envio de um SMS.

Primeira etapa para o envio de mensagens

Para enviar uma nova mensagem você precisa passar por alguns passos:

{% hint style="warning" %}

* Subconta e destinatários
* Conteúdo
* Campanha
* Agendamento
* Resumo
* Envio
  {% endhint %}

Para acessar o envio no seu menu lateral esquerdo procure por **Nova mensagem:**

![nova mensagem](/files/-MibHlLtT9ThEaDemHD_)

Agora é necessário que selecione seu canal de envio, neste campo selecione a opção SMS.

{% hint style="danger" %}
Mesmo que você não tenha todos os recursos contratados, nossa plataforma lista por padrão os demais produtos.
{% endhint %}

<figure><img src="/files/Vpdi2Cl5o4HPV9TVJlIB" alt=""><figcaption><p>SMS</p></figcaption></figure>

Nessa etapa vamos precisar selecionar por qual subconta o envio será realizado, subcontas e destinatários são os primeiros passos de configuração para o seu envio. Essas definições são feitas tanto para envio SMS quanto para envio de mensagem WhatsApp.

<figure><img src="/files/bhz5vZHwvbUvuQrV4H91" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Dependendo do seu nível de permissão na plataforma, você terá apenas uma subconta segmentada para envio.

Leia mais sobre as [**permissões clicando aqui.**](/permissoes/subcontas-e-usuarios/niveis-de-permissao)
{% endhint %}

Em seguida vamos importar nossa base de clientes para plataforma, você poderá optar pelas seguintes funções:

* Enviar arquivo: Faça o upload da sua base de clientes para a ferramenta, [**não sabe como montar seu arquivo? Clique aqui.**](broken://pages/-LjaYLbmQx0gRinCpnQJ)
* **Contatos:** Nós podemos criar contatos na plataforma e apenas selecionar as pessoas que receberão o conteúdo no momento do envio. [Não sabe como criar contatos? Clique aqui.](/sms/introducao-ao-messaging-sms/contatos)
* **Grupos:** Não está relacionado a nenhum tipo de grupo de WhatsApp, é apenas um grupo específico de pessoas que estão acopladas em um mesmo envio, você pode ter um grupo de dicas e alimenta-lo semanalmente com novos usuários. Não sabe como criar um grupo? [Clique aqui.](/sms/introducao-ao-messaging-sms/grupos)
* **Telefone:** Essa função permite a adição de forma manual dos números de telefone, é mais utilizada para envios de testes. Basta adicionar: DDI+DDD+Número de telefone.

![Destinatários](/files/-MibK9b2Vo7Gjx7sNrex)

## Conteúdo SMS

Defina o conteúdo que os destinatários receberão. Para SMS você pode escolher entre **Texto** ou [**Template SMS**.](/sms/introducao-ao-messaging-sms/template-sms) Conheça também o envio via [**BOT SMS**](https://docs.wavy.global/sms/bot-sms)[.](/sms/bot-sms)

![Envio de sms](/files/-MibLdj0-eFby4iUx4VJ)

{% hint style="warning" %}

* **Texto**: digite o conteúdo que deseja enviar e veja a prévia de como ficará sua mensagem ao lado direito da tela.
* &#x20;Você pode selecionar enviar como **FLASH SMS** - mensagem tipo pop-up que aparece mesmo se o celular do usuário estiver bloqueado.
* **Template SMS:** selecione um template previamente criado. Para saber mais confira [**Template SMS**](/sms/introducao-ao-messaging-sms/template-sms) e saiba como criar um modelo de mensagem.
  {% endhint %}

## Regras de números de caracteres

No caso de SMS as operadoras tem algumas regras com relação ao número de caracteres das mensagens, como as que estão logo abaixo, então <mark style="color:red;">**FIQUE ATENTO**</mark> na hora de planejar o seu conteúdo no [**Messaging**](https://messaging.wavy.global).

[**Leia mais sobre acentuações e caracteres especiais.**](broken://pages/-LjaYLbmQx0gRinCpnQJ)

## Campanhas

Campanhas ajudam você a organizar suas mensagens e compara-las umas com as outras em em relatórios.

![campanhas](/files/-MibN5Rw9DwP1BIVHtxG)

{% hint style="success" %}
Você pode configurar Campanhas de 3 maneiras:

* Sem campanha.
* Selecionar uma campanha já existente.
* Criar uma nova campanha.
* O uso de campanhas não é obrigatório.
  {% endhint %}

## Agendamento de mensagens

O agendamento de mensagens permite que você agende a entrega da sua mensagem em outro dia e horário.

![](/files/-MibNlhp2UmU_VpPIyB-)

{% hint style="success" %}
O agendamento da sua mensagem pode ser feito de 2 maneiras:

* **Envio imediato:** Escolha data e hora.
* **Envie em partes:** Defina partições, data e horário de início e fim .
  {% endhint %}

Se escolher **enviar em partes** defina a porcentagem de cada parte com a soma total de **100%**, ao lado de cada parte que será enviada a plataforma informa a quantidade de destinatários que receberá a mensagem, entretanto, você não terá a visibilidade de quem são eles:

<figure><img src="/files/iwuRnuZXRZIVaHgwFimQ" alt=""><figcaption></figcaption></figure>

O Envio em partes ajuda a evitar sobrecarga no seu call center caso esteja enviando algo que induza o consumidor a entrar em contato com a sua empresa.

## Resumo

Ao clicar em avançar você será direcionado para tela de envio e resumo de mensagens, você terá listada as seguintes informações:

* Tipo de mensagem: Sinaliza se está utilizando um template de mensagem ou um texto livre.
* Totoal de mensagens: Sinaliza a quantidade de mensagens que serão enviadas.
* Número de destinatários: Sinaliza a quantidade de remetentes que seu arquivo contém, o ideal é que o número de destinatários seja igual ao total de mensagens.
* Agendamento: Mostra a data e hora que sua mensagem será enviada.
* Campanha: Mostra a campanha que seu envio está vinculado.

Ao clicar em enviar mensagem uma nova confirmação será listada na tela, se estiver tudo certo clique em confirmar envio.

![ENVIO E RESUMO](/files/-MibNzhs9AJEjQoPI9LQ)

{% hint style="danger" %}
Ao clicar em **enviar mensagem** uma nova tela de confirmação é exibida, você pode optar por realizar o envio ou não.
{% endhint %}

![confirmação de envio](/files/-MibO7EV394dVQOiG89e)

### Prontinho, sua mensagem foi enviada com sucesso.

{% embed url="<https://youtu.be/iWQLxh-Wtv4?si=coOpDthCeu8CiRBL>" %}


# Envio e cancelamento de mensagens

Entenda tudo sobre o envio e cancelamento de mensagens.

## Cancelamento de mensagens

Esteja atento ao disparo das suas mensagens, uma vez que ela sair para entrega não conseguimos parar a ação.

Nós conseguimos apenas cancelar o envio de uma mensagem que esteja com o <mark style="color:purple;">**status agendado**</mark>.

Para acompanhar suas mensagens enviadas:

No seu menu lateral esquerdo expanda o menu de mensageria e clique sobre **mensagens enviadas:**

<figure><img src="/files/wD8h0uGiWgVxcaQF6BJP" alt=""><figcaption><p>mensagens enviadas</p></figcaption></figure>

Você terá as seguintes informações na tela de **mensagens enviadas:**

* **ID:** Sempre que uma mensagem é enviada a plataforma gera um id (lote) para seu envio;
* **Subconta:** Sinaliza a subconta que realizou o disparo;
* **Nome do arquivo:** Caso você tenha utilizado uma base de clientes para fazer seu envio, o nome do arquivo que fez upload para plataforma aparece nesse campo;
* **Tipo:** Você terá informações de qual tipo de envio foi realizado, no caso: SMS ou WhatsApp;
* **Total:** Total de destinatários que continham na mensagem;
* **Estado:** Você terá 3 estados de mensagens:\
  \&#xNAN;**-** <mark style="color:green;">**Verde: Mensagem enviada com sucesso,**</mark>**&#x20;**<mark style="color:orange;">**não é possível cancelar esse envio.**</mark>\
  **-&#x20;**<mark style="color:purple;">**Roxo: Mensagem na fila para disparos ou agendada, aqui nós conseguimos fazer o cancelamento de uma mensagem, basta clicar nos três pontinhos laterais e cancelar o disparo:**</mark>\ <mark style="color:red;">**- Vermelho: Mensagem com erro.**</mark>

  <figure><img src="/files/oZfSnAgvq8iRbGHyBh2P" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Note que as únicas mensagens que mostram os três pontinhos no campo ação, são as mensagens com estado agendado.
{% endhint %}

* **Criado em:** Data e hora que a mensagem foi enviada.
* **Ações:** Clicando nos 3 pontinhos você consegue cancelar o envio da mensagem, caso tenha optado por agendar a mensagem para outra data, e clicando sobre o olho você visualiza a mensagem que foi enviada.

{% hint style="success" %}
[**Entenda mais sobre a tela de mensagens enviadas, status e acompanhe o envio das suas mensagens.**](https://docs.wavy.global/enviar-uma-mensagem/mensagens)
{% endhint %}


# Acompanhar o envio

Entenda mais sobre a tela de Mensagens enviadas, agendadas, status e mais.

### Menu Mensagens

Quando você realiza um disparo sua mensagem entra numa fila em nosso sistema para ser entregue ao seu usuário. Assim que você envia a mensagem você é redirecionado para o menu de **Mensagens**.

Para encontrar o menu de mensagens enviadas, ao lado esquerdo da tela expanda o menu de mensageria e clique em mensagens enviadas:

![mensagens enviadas](/files/-MibRS8idgooOu3D11sg)

Ao abrir a tela de mensagens enviadas, você poderá utilizar os filtros para fazer buscas dentro da plataforma por mensagens especificas:

![filtros](/files/-MibRx1PhF2kYhr2pe5g)

Filtrando por **Estado (status)**, você pode acompanhar apenas as mensagens que já foram enviadas, ou que ainda estão sendo processadas pela plataforma por exemplo.

Filtrando por **ID**, você pode buscar especificamente por um lote de mensagens enviadas, mas para isso é necessário que você saiba o **ID** das mensagens que disparou. Sempre que um novo disparo é realizado a plataforma gera um novo lote para suas mensagens, é o primeiro campo listado nas mensagens enviadas.

Filtrando por **Tipo**, caso você tenha contratado SMS e WhatsApp você pode filtrar ou por um tipo de mensagem ou pelo outro.

{% hint style="info" %}
Se você realizou um disparo por arquivo também é possível encontrar a mensagem através da coluna **nome do arquivo**
{% endhint %}

### Status da Mensagem

{% hint style="info" %}

* **Agendado:** Sua mensagem foi agendada e no horário definido irá ser processada.
* **Processando:** A mensagem está pronta para entrar na fila de envio.
* **Enviando:** As mensagens estão sendo enviadas para a fila de envio.
* **Cancelado:** O envio da mensagem agendada foi cancelado.
* **Erro:** Houve um erro durante o percurso de envio da mensagem.
* **Enviado:** A mensagem entrou na fila de entrega ao usuário.
* **Horário Bloqueado:** A Mensagem foi configurada para envio num horário não permitido pela subconta
  {% endhint %}

### Prévia da Mensagem enviada

Você pode ver uma prévia a mensagem enviada dentro do menu ações.

![ações](/files/-MibTOzpjImp9BTZdeyb)

{% hint style="info" %}
**Na prévia da mensagem você visualiza**

* **O conteúdo da mensagem;**
* **O canal de envio;**
* **Quantidade de mensagens enviadas;**
* **Quando foi feito o envio;**
* **Qual usuário e subconta realizou o disparo;**
  {% endhint %}


# Relatório Consolidado (legado)

Acompanhe seus envios e suas taxas de entrega para seus destinatários.

Nossa central de relatórios permite que você gerencie a quantidade de disparos realizados na plataforma e qual sua taxa de entrega para seus destinatários, no documento daremos alguns exemplos de uso para que consiga encaixar no seu dia a dia.&#x20;

## Como acessar o recurso:

No seu menu lateral esquerdo expanda o menu de mensageria e clique em relatórios.&#x20;

Você será direcionado para uma tela como essa, como vamos trabalhar com o SMS alterne a janela.

<figure><img src="/files/7IXtNsvsJgiOVdu0vCUR" alt=""><figcaption></figcaption></figure>

O **Relatório consolidado** é onde a ferramenta traz seu percentual de entrega baseada no filtro de data estipulado na ferramenta, por padrão a ferramenta traz os últimos 7 dias e você pode buscar até os últimos **90 dias**, qualquer período maior que é esse é necessário que entre em contato com nossa equipe de suporte. Os dados são metrificados por porcentagem de entrega.

## Relatório Consolidado:&#x20;

**Caso de uso:** Imagine que está acontecendo uma campanha que vai durar cerca de 3 dias e durante esses 3 dias você gostaria de acompanhar como está a taxa de entrega e erros nos aparelhos dos seus destinatários.&#x20;

Utilizando este relatório você poderá aplicar alguns filtros para deixar sua pesquisa ainda mais assertiva, você terá os seguintes filtros disponíveis:&#x20;

* **Filtro de data:** Este pode ser considerado o filtro mais importante a ser aplicado na pesquisa, por padrão a ferramenta sempre traz os dados dos últimos 7 dias de entrega. Ao utilizar o relatório certifique-se que está buscando o período de disparos, por exemplo: 01/03 a 03/03, inclusive também é possível metrificar por hora:&#x20;

<figure><img src="/files/GNCZ29VI2nBJ2ul9hwh8" alt=""><figcaption></figcaption></figure>

* **Tipo de mensagem:** Para este campo nós temos duas possíveis pesquisas e por isso você precisa saber qual tipo de configuração aplicada a sua conta:&#x20;

**Enviado (MT):** É tudo que você como empresa dispara para seu usuário final, contas configuradas como one-way tem apenas essa função aplicada a conta, ou seja, elas não esperam nenhum tipo de retorno do usuário final. \
\
**Caso de uso:** Realizamos uma campanha de envios e gostaria de acompanhar qual foi a taxa de entrega e de erros para meus destinatários.&#x20;

<figure><img src="/files/WgeOJPgQcDg8l4Wp5yFA" alt=""><figcaption></figcaption></figure>

**Recebido (MO):** É tudo que você recebe de retorno do seu usuário final, para que esse retorno seja recebido é necessário que você tenha a conta configurada como two-way, esse tipo de configuração permite que você tenha alguns insights do seu usuário final. \
\
**Caso de uso:** Estamos realizando uma pesquisa onde esperamos o retorno do usuário final, neste campo conseguimos acompanhar qual foi a taxa de respostas desses usuários.

<figure><img src="/files/ClE9l2eVm4y9IGBxSGHr" alt=""><figcaption></figcaption></figure>

**Geralmente para esse filtro é sempre aplicado o filtro de ENVIADO (MT).**&#x20;

* **Subconta:** Caso a sua empresa utilize a mesma plataforma por diversas áreas para comunicação com seus clientes e ao final do mês esse valor seja divido para que cada um pague sua quantidade de disparos, as subcontas facilitam seu gerenciamento permitindo que você escolha em qual subconta deseja buscar as informações de entrega. Caso não segmente nenhuma subconta a plataforma trará as informações relacionadas a todas as subcontas da ferramenta.&#x20;

**Caso de uso:** Dentro da empresa Sinch, nós temos 3 áreas diferentes utilizando a ferramenta para disparos, ao final do mês precisamos saber qual a quantidade de envios realizados por cada uma das subcontas para que o valor seja divido, vamos primeiro estipular o filtro de data do mês e depois segmentar a subconta que vamos buscar as informações.&#x20;

<figure><img src="/files/METk811N6j0TQovgOTKw" alt=""><figcaption></figcaption></figure>

* **Usuários:** Todas as pessoas que utilizam a ferramenta obrigatoriamente precisam ter um usuário criado, ao realizar qualquer disparo seu nome de usuário fica registrado junto a subconta que ele utilizou para fazer o disparo. Caso não segmente nenhum usuário a plataforma trará as informações relacionadas a todos os usuários da ferramenta.&#x20;

**Caso de uso:** Quero acompanhar quantos disparos foram realizados a partir da conta da usuária Renata para metrificar sua qualidade de entrega e seus totais semanais.

<figure><img src="/files/pKyUwgghdkgOR2kqQ6lT" alt=""><figcaption></figcaption></figure>

**Campanhas:** As campanhas facilitam o gerenciamento de envios dentro da plataforma. Caso de uso: Imagine que vamos realizar uma promoção relacionada ao Dia das Mães, ao configurar um disparo posso criar uma campanha chamada Dia das Mães, nos relatórios adiciono a campanha que criamos e a plataforma trará apenas as informações relacionadas àquela campanha para que você acompanhe a sua qualidade de entrega.

<figure><img src="/files/VEZTFQzmrIMDBex2aErx" alt=""><figcaption></figcaption></figure>

* **Operadora:** Operadora dos celulares dos destinatários, essa função possibilita que você acompanhe suas taxas de entrega de acordo com cada uma das operadoras dos seus destinatários.&#x20;

**Caso de uso:** Imagine que é necessário metrificar a porcentagem de entrega apenas para os números da VIVO, utilizando essa função é possível.

<figure><img src="/files/45jHtpeJZSqQyGAOHlG7" alt=""><figcaption></figcaption></figure>

* **Status:** Esse campo mostra todos os possíveis estados de mensagem dentro da plataforma, para SMS, nós temos os seguintes status disponíveis:

<table><thead><tr><th width="180" align="center">Status</th><th align="center">Descrição</th></tr></thead><tbody><tr><td align="center"><strong>Entregue</strong></td><td align="center">Mensagem entregue no aparelho</td></tr><tr><td align="center"><strong>Enviada com sucesso</strong></td><td align="center">Mensagem enviada com sucesso para a transportadora ou corretora. A operadora respondeu aceitando a mensagem.</td></tr><tr><td align="center"><strong>Tempo de vida expirada (TTL)</strong></td><td align="center">A mensagem expirou na plataforma Sinch, antes de ser enviada para a operadora. (Mensagem não enviada).</td></tr><tr><td align="center"><strong>Erro de comunicação com a operadora</strong></td><td align="center">Falha de comunicação com a operadora.</td></tr><tr><td align="center"><strong>Rejeitada pela operadora</strong></td><td align="center">Mensagem rejeitada pela operadora. A operadora pode rejeitar a mensagem por vários motivos. Os mais comuns são devido a instabilidade temporária ou destinatário incapacitado.</td></tr><tr><td align="center"><strong>Não entregue</strong></td><td align="center">A mensagem foi enviada com êxito para a operadora, mas não pode ser entregue ao dispositivo. Alguns dos motivos são dispositivo fora da rede e destinatário desabilitado.</td></tr><tr><td align="center"><strong>Não entregue por opt-out</strong></td><td align="center">Destino bloqueado por opt-out</td></tr><tr><td align="center"><strong>Erro interno</strong></td><td align="center">Erro interno, procure nossa equipe de suporte.</td></tr><tr><td align="center"><strong>Parâmetro/Contato inválido</strong></td><td align="center">Dados de destino inválidos</td></tr><tr><td align="center"><strong>Blocklist</strong></td><td align="center">A mensagem não é enviada porque o número do destinatário foi bloqueado pelo cliente na plataforma Sinch.</td></tr><tr><td align="center"><strong>Mensagem de texto inválida</strong></td><td align="center">O texto da mensagem contém algum conteúdo inválido, como palavras impróprias, fraude ou conteúdo falso.</td></tr><tr><td align="center"><strong>Conteúdo inválido</strong></td><td align="center">O conteúdo da mensagem é inválido porque os parâmetros de um modelo de texto estão ausentes ou incorretos.</td></tr><tr><td align="center"><strong>Expirada pela operadora</strong></td><td align="center">A mensagem expirou por operadora. Falha após a operadora tentar enviar a mensagem em 24 horas para o celular.</td></tr><tr><td align="center"><strong>Mensagem duplicada</strong></td><td align="center">Mensagem para o mesmo número com algum conteúdo foi rejeitada devido a repetições excessivas</td></tr></tbody></table>

**Identificado de BOT SMS:** Na plataforma é possível criar um fluxo inteligente de perguntas e respostas. \
\
**Caso de uso:** Imagine que você precisa aplicar uma pesquisa de NPS para seus clientes, você pode criar um fluxo inteligente e disparar as mensagens, nesse campo do relatório você pode buscar as informações relacionadas apenas aquele fluxo.

<figure><img src="/files/EjjArC8QIPq7HlNFnUTr" alt=""><figcaption></figcaption></figure>

**País:** Segmente os países de interesse para busca, mantendo o campo em branco a plataforma fará uma busca em todos seus disparos.

<figure><img src="/files/Y4iMXEGbbgMKikhCujB2" alt=""><figcaption></figcaption></figure>

Aplique os devidos filtros para sua pesquisa a plataforma carregará os dados e trará as informações listadas da seguinte forma:&#x20;

## Gráfico:&#x20;

A ferramenta gera os resultados da pesquisa em forma de gráfico para que acompanhe de forma visual inicialmente.&#x20;

<figure><img src="/files/ixQt1FyncK9wWDUaCKsQ" alt=""><figcaption></figcaption></figure>

A <mark style="color:red;">**linha vermelha**</mark> está relacionada a sua taxa de erros, a <mark style="color:green;">**linha verde**</mark> sinaliza as entregas realizadas com sucesso, passando o mouse sobre as bolinhas você consegue acompanhar a quantidade de disparos.&#x20;

É importante ressaltar que para essa visualização a plataforma leva em consideração seus filtros aplicados, por isso mantenha seu filtro de data correto.&#x20;

## Totalizadores:&#x20;

Em seguida a plataforma trará os dados de totalizadores, divido em 3 sessões:&#x20;

<figure><img src="/files/X5SiYDn7I5EIECOnsHYA" alt=""><figcaption></figcaption></figure>

* **Mensagens enviadas:** A quantidade de mensagens disparadas no período estipulado, esse campo não sinaliza a quantidade de mensagens entregues para seus destinatários, apenas a quantidade de envios realizados, lembre-se que para uma mensagem ser entregue no aparelho do usuário final nós precisamos de disponibilidade do usuário e da operadora.&#x20;
* **Enviadas com sucesso:** Esse campo sinaliza as mensagens que foram entregues com sucesso para seu usuário final, esse número pode diferir da quantidade de mensagens enviadas.&#x20;
* **Mensagens com erro**: Sinaliza a quantidade de mensagens que não foram entregues no aparelho do usuário final, lembre-se que no relatório consolidado não teremos as informações de status da mensagem, isso será listado apenas no relatório detalhado.&#x20;

Ao visualizar essas informações tenha em mente o seguinte exemplo:&#x20;

Imagine que os totalizadores da plataforma estão sendo listado da seguinte forma:&#x20;

**Mensagens enviadas:** 3000&#x20;

<mark style="color:green;">**Enviadas com sucesso:**</mark> 2950&#x20;

<mark style="color:red;">**Mensagens com erro: 50**</mark>&#x20;

Das **3000** mensagens enviadas, <mark style="color:green;">**2950**</mark> foram disparadas e entregues com sucesso no aparelho dos usuários finais e <mark style="color:red;">**50**</mark> mensagens não foram entregues.&#x20;

## Detalhes da mensagem:&#x20;

Aqui teremos listados todos os dias segmentados no período de data com suas informações de taxas de entrega.&#x20;

<figure><img src="/files/XS697QFQTizwHGCs0P2q" alt=""><figcaption></figcaption></figure>

* **Data:** Esse campo varia de acordo com o que você estipulou no filtro de visualização, podemos ter listado: data, hora ou mês.&#x20;
* **Filtros adicionais:** Se você selecionar um filtro adicional para pesquisa um novo campo será listado após a data trazendo as informações solicitadas, como operadora, subconta, campanha, ou se marcar todas as opções todas elas serão registradas uma ao lado da outra antes do campo entregue no aparelho.&#x20;
* **Entregue no aparelho:** Este campo traz as informações da porcentagem de entregas com sucesso nos aparelhos, os dados são apresentados da seguinte forma: \
  **86 – 24%,** isso sinaliza que **86** mensagens foram enviadas com sucesso e isso está relacionado a **24%** da sua base de envios.&#x20;
* **Erros:** Este campo mostra a quantidade e porcentagem de erro relacionada a sua base de envio, os dados são apresentados da seguinte forma: \
  **276 – 76%**, isso sinaliza que **276** mensagens não foram entregues, e isso está relacionado a **76%** da sua base de envios.&#x20;

Em um cenário como o listado acima o ideal é que revise seus disparos e números de comunicação, seus usuários realmente querem receber informações? Eles sabem que serão contatados?&#x20;

* **Total:** O total de mensagens que foram disparadas naquele dia para que mensure suas entregas.&#x20;
* **Confirmada pelo aparelho:** Essa é uma comunicação enviada diretamente da operadora para Sinch, ou seja, você acabou de enviar uma mensagem e a operadora do seu usuário final é da VIVO, assim que a mensagem for entregue a VIVO sinaliza a Sinch sobre a entrega.&#x20;

**Este relatório pode ser exportando para um PDF, CSV ou XLSX.**&#x20;

Você também poderá salvar este modelo para buscas futuras utilizando o botão: **Salvar Modelo.**

### Relatório Consolidado

{% hint style="info" %}
**NOVIDADE!!!**&#x20;
{% endhint %}

Adicionamos uma nova coluna chamada **Faturável,** onde traremos a informação do que será faturado, de acordo com cada status!&#x20;

Clique em cima do dado para abrir o descritivo dos status e para saber se será cobrado ou não

<figure><img src="/files/2FK0NWvzuf7FM5i8vFBq" alt=""><figcaption></figcaption></figure>

basta visualizar o símbolo de **cifrão ($)** ao lado:

<figure><img src="/files/p2qgqOidY5hBmzpb5dpR" alt=""><figcaption></figcaption></figure>


# Relatório Detalhado (legado)

Acompanhe seus envios e entenda o que aconteceu com cada uma das mensagens dos seus destinatários.

Nossa central de relatórios permite que você gerencie a quantidade de disparos realizados na plataforma e qual sua taxa de entrega para seus destinatários, no documento daremos alguns exemplos de uso para que consiga encaixar no seu dia a dia.&#x20;

## Como acessar o recurso:

No seu menu lateral esquerdo expanda o menu de mensageria e clique em relatórios.&#x20;

Você será direcionado para uma tela como essa, como vamos trabalhar com o SMS alterne a janela.

<figure><img src="/files/HKwo38QFfJaFlGYHY0iO" alt=""><figcaption></figcaption></figure>

O **Relatório Detalhado** é onde a ferramenta traz o que aconteceu com cada uma das suas entregas baseada no filtro de data estipulado na ferramenta, por padrão a ferramenta traz os últimos 7 dias e você pode buscar até os últimos **90 dias**, qualquer período maior que é esse é necessário que entre em contato com nossa equipe de suporte.&#x20;

O **relatório detalhado** inicialmente tem os mesmos filtros do relatório consolidado, entretanto ele possui alguns outros recursos e outras formas de visualização de dados, vamos primeiro aos campos de busca:&#x20;

* **Filtro de data:** Este pode ser considerado o filtro mais importante a ser aplicado na pesquisa, por padrão a ferramenta sempre traz os dados dos últimos 7 dias de entrega. Ao utilizar o relatório certifique-se que está buscando o período de disparos, por exemplo: 01/03 a 03/03, inclusive também é possível metrificar por hora:&#x20;

<figure><img src="/files/HDjz5HNkAQot8BcrjuKL" alt=""><figcaption></figcaption></figure>

* **Tipo de mensagem:** Para este campo nós temos duas possíveis pesquisas e por isso você precisa saber qual tipo de configuração aplicada a sua conta:&#x20;

**Enviado (MT):** É tudo que você como empresa dispara para seu usuário final, contas configuradas como one-way tem apenas essa função aplicada a conta, ou seja, elas não esperam nenhum tipo de retorno do usuário final. \
**Caso de uso:** Realizamos uma campanha de envios e gostaria de acompanhar qual foi a taxa de entrega e de erros para meus destinatários.&#x20;

<figure><img src="/files/VomNwzyLaa9Nq9fZSPut" alt=""><figcaption></figcaption></figure>

**Recebido (MO):** É tudo que você recebe de retorno do seu usuário final, para que esse retorno seja recebido é necessário que você tenha a conta configurada como two-way, esse tipo de configuração permite que você tenha alguns insights do seu usuário final. \
\
**Caso de uso:** Estamos realizando uma pesquisa onde esperamos o retorno do usuário final, neste campo conseguimos acompanhar qual foi a taxa de respostas desses usuários.

<figure><img src="/files/yJcArBOqKmnMViAS6SPG" alt=""><figcaption></figcaption></figure>

**Geralmente para esse filtro é sempre aplicado o filtro de ENVIADO (MT).**&#x20;

* **Subconta**: Caso a sua empresa utilize a mesma plataforma por diversas áreas para comunicação com seus clientes e ao final do mês esse valor seja divido para que cada um pague sua quantidade de disparos, as subcontas facilitam seu gerenciamento permitindo que você escolha em qual subconta deseja buscar as informações de entrega. Caso não segmente nenhuma subconta a plataforma trará as informações relacionadas a todas as subcontas da ferramenta. \
  \
  **Caso de uso:** Dentro da empresa Sinch, nós temos 3 áreas diferentes utilizando a ferramenta para disparos, ao final do mês precisamos saber qual a quantidade de envios realizados por cada uma das subcontas para que o valor seja divido, vamos primeiro estipular o filtro de data do mês e depois segmentar a subconta que vamos buscar as informações.&#x20;

<figure><img src="/files/aRddAWJm8p11brGzIgi6" alt=""><figcaption></figcaption></figure>

**Usuários:** Todas as pessoas que utilizam a ferramenta obrigatoriamente precisam ter um usuário criado, ao realizar qualquer disparo seu nome de usuário fica registrado junto a subconta que ele utilizou para fazer o disparo. Caso não segmente nenhum usuário a plataforma trará as informações relacionadas a todos os usuários da ferramenta. \
\
**Caso de uso:** Quero acompanhar quantos disparos foram realizados a partir da conta da usuária Renata para metrificar sua qualidade de entrega e seus totais semanais.

<figure><img src="/files/e7ihxlzmtiXJuUR4kzxj" alt=""><figcaption></figcaption></figure>

**Campanhas:** As campanhas facilitam o gerenciamento de envios dentro da plataforma. Caso de uso: Imagine que vamos realizar uma promoção relacionada ao Dia das Mães, ao configurar um disparo posso criar uma campanha chamada Dia das Mães, nos relatórios adiciono a campanha que criamos e a plataforma trará apenas as informações relacionadas àquela campanha para que você acompanhe a sua qualidade de entrega.

<figure><img src="/files/aUGXna5ETvwfQkWBtmix" alt=""><figcaption></figcaption></figure>

**Operadora:** Operadora dos celulares dos destinatários, essa função possibilita que você acompanhe suas taxas de entrega de acordo com cada uma das operadoras dos seus destinatários. \
\
**Caso de uso:** Imagine que é necessário metrificar a porcentagem de entrega apenas para os números da VIVO, utilizando essa função é possível.

<figure><img src="/files/6vFRFj9EIzW8ekOTUOvg" alt=""><figcaption></figcaption></figure>

**Status:** Esse campo mostra todos os possíveis estados de mensagem dentro da plataforma, para SMS, nós temos os seguintes status disponíveis:

<table><thead><tr><th width="180" align="center">Status</th><th align="center">Descrição</th></tr></thead><tbody><tr><td align="center"><strong>Entregue</strong></td><td align="center">Mensagem entregue no aparelho</td></tr><tr><td align="center"><strong>Enviada com sucesso</strong></td><td align="center">Mensagem enviada com sucesso para a transportadora ou corretora. A operadora respondeu aceitando a mensagem.</td></tr><tr><td align="center"><strong>Tempo de vida expirada (TTL)</strong></td><td align="center">A mensagem expirou na plataforma Sinch, antes de ser enviada para a operadora. (Mensagem não enviada).</td></tr><tr><td align="center"><strong>Erro de comunicação com a operadora</strong></td><td align="center">Falha de comunicação com a operadora.</td></tr><tr><td align="center"><strong>Rejeitada pela operadora</strong></td><td align="center">Mensagem rejeitada pela operadora. A operadora pode rejeitar a mensagem por vários motivos. Os mais comuns são devido a instabilidade temporária ou destinatário incapacitado.</td></tr><tr><td align="center"><strong>Não entregue</strong></td><td align="center">A mensagem foi enviada com êxito para a operadora, mas não pode ser entregue ao dispositivo. Alguns dos motivos são dispositivo fora da rede e destinatário desabilitado.</td></tr><tr><td align="center"><strong>Não entregue por opt-out</strong></td><td align="center">Destino bloqueado por opt-out</td></tr><tr><td align="center"><strong>Erro interno</strong></td><td align="center">Erro interno, procure nossa equipe de suporte.</td></tr><tr><td align="center"><strong>Parâmetro/Contato inválido</strong></td><td align="center">Dados de destino inválidos</td></tr><tr><td align="center"><strong>Blocklist</strong></td><td align="center">A mensagem não é enviada porque o número do destinatário foi bloqueado pelo cliente na plataforma Sinch.</td></tr><tr><td align="center"><strong>Mensagem de texto inválida</strong></td><td align="center">O texto da mensagem contém algum conteúdo inválido, como palavras impróprias, fraude ou conteúdo falso.</td></tr><tr><td align="center"><strong>Conteúdo inválido</strong></td><td align="center">O conteúdo da mensagem é inválido porque os parâmetros de um modelo de texto estão ausentes ou incorretos.</td></tr><tr><td align="center"><strong>Expirada pela operadora</strong></td><td align="center">A mensagem expirou por operadora. Falha após a operadora tentar enviar a mensagem em 24 horas para o celular.</td></tr><tr><td align="center"><strong>Mensagem duplicada</strong></td><td align="center">Mensagem para o mesmo número com algum conteúdo foi rejeitada devido a repetições excessivas</td></tr></tbody></table>

**Identificado de BOT SMS:** Na plataforma é possível criar um fluxo inteligente de perguntas e respostas. \
\
**Caso de uso:** Imagine que você precisa aplicar uma pesquisa de NPS para seus clientes, você pode criar um fluxo inteligente e disparar as mensagens, nesse campo do relatório você pode buscar as informações relacionadas apenas aquele fluxo.

<figure><img src="/files/g0HsT9q8tVh6k1u3RBY4" alt=""><figcaption></figcaption></figure>

**Contato ou número de telefone:** Busque por números de telefones específicos. \
\
**Caso de uso:** Sua empresa acaba de fazer uma campanha e um usuário reporta que não recebeu a comunicação, você não sabe em qual lote de mensagens esse usuário estava, este campo permite que você busque por uma pessoa específica, basta digitar o número de telefone no seguinte formato: DDI+DDD+Número (5511917612637). Lembre-se sempre de buscar pelo período do seu disparo.

<figure><img src="/files/AIwpmfIyMDc8BNHQlXtG" alt=""><figcaption></figcaption></figure>

**Lote ID:** Cada vez que você realiza um disparo de mensagens, independente da quantidade de destinatários a ferramenta gera um lote, esse lote pode ser encontrado no seu menu lateral > mensagens enviadas. \
\
**Caso de uso:** Imagine o mesmo cenário do caso de uso de contato ou número de telefone, mas agora você quer entender se todas as pessoas que estavam juntas no disparo do número 5511917612637, receberam a mensagem basta copiar o número de lote gerado nos detalhes da ferramenta e adicionar no campo lote ID.

<figure><img src="/files/2JDeunVwi3xfNsl5N86C" alt=""><figcaption></figcaption></figure>

**País:** Segmente os países de interesse para busca, mantendo o campo em branco a plataforma fará uma busca em todos seus disparos.

<figure><img src="/files/4uxB77K5H1WeQCPmVIZh" alt=""><figcaption></figcaption></figure>

**Correlation ID**: É um campo específico que pode ser adicionado na sua base de clientes sinalizando um número de [matrícula ou protocolo](/sms/introducao-ao-messaging-sms/correlation-id), esse dado não aparece no seu SMS.

<figure><img src="/files/5iUQffenrM5Fv9i2Ggwe" alt=""><figcaption></figcaption></figure>

**Texto da mensagem:** Você pode fazer a pesquisa por palavras específicas do texto.

<figure><img src="/files/PCW7DMl3EghTBATFRNSC" alt=""><figcaption></figcaption></figure>

Ao aplicar os filtros diferente do relatório consolidado a plataforma trará apenas o total de resultados relacionados a sua pesquisa, por exemplo:&#x20;

**Resultados 3000**&#x20;

**Mas, o que isso significa?**  \
Significa que de acordo com os filtros estipulados a plataforma encontrou 3000 resultados, esses resultados estão relacionados a qualquer tipo de status da sua mensagem, se ela foi entregue, se houve qualquer tipo de erro ou se está com o status de apenas enviado.&#x20;

Nos detalhes você terá as seguintes informações:&#x20;

* **Lote:** Número do lote da mensagem que aquele telefone está.&#x20;
* **Subconta:** Subconta que realizou o disparo para aquele telefone.&#x20;
* **Destinatário:** Número de telefone do destinatário enviado.&#x20;
* **Operadora:** Operadora de celular do seu destinatário.&#x20;
* **Shortcode:** Número que aparece no SMS no aparelho do seu usuário final.&#x20;
* **Campanha:** Campanha que seu envio está vinculado, caso apareça um traço (-), significa que o envio não foi vinculado a nenhuma campanha.&#x20;
* **Enviado em:** Data e hora que a mensagem foi disparada.&#x20;
* **Texto da mensagem:** Texto que foi enviado no SMS, este campo mostra inclusive os campos dinâmicos que foram utilizados.&#x20;
* **Agendado para:** Caso sua mensagem esteja programada para outro dia e horário será listado aqui, caso apareça um traço (-) significa que o disparo já foi realizado.&#x20;
* **Usuário:** Usuário que realizou o disparo.&#x20;
* **Entregue:** Este está ligado diretamente ao campo seguinte que é o de Status, ao aparecer um símbolo de checkin significa que sua mensagem foi entregue com sucesso, caso apareça com um traço (-), acompanhe no campo seguinte o que aconteceu com seu envio.&#x20;
* **Informação extra:** Informações que são adicionadas ao campo Correlation ID.&#x20;
* **Identificador de BOT SMS:** Caso você tenha um bot de sms configurado ele será listado.&#x20;
* **UUID:** Código único de mensagem vinculado ao seu envio, utilizado por nossa equipe de suporte quando há erros de entrega.&#x20;
* **Original\_UUID:** Código único de mensagem vinculado ao seu envio, utilizado por nossa equipe de suporte quando há erros de entrega.&#x20;

**Este relatório pode ser exportando para um PDF, CSV ou XLSX.**&#x20;

Você também poderá salvar este modelo para buscas futuras utilizando o botão: Salvar Modelo. \
&#x20;


# Status dos Relatórios (legado)

Esse campo mostra todos os possíveis estados de mensagem dentro da plataforma, para SMS, nós temos os seguintes status disponíveis:

<table><thead><tr><th width="227" align="center">Status</th><th align="center">Descrição</th></tr></thead><tbody><tr><td align="center"><strong>Entregue</strong></td><td align="center">Mensagem entregue no aparelho</td></tr><tr><td align="center"><strong>Enviada com sucesso</strong></td><td align="center">Mensagem enviada com sucesso para a transportadora ou corretora. A operadora respondeu aceitando a mensagem.</td></tr><tr><td align="center"><strong>Tempo de vida expirada (TTL)</strong></td><td align="center">A mensagem expirou na plataforma Sinch, antes de ser enviada para a operadora. (Mensagem não enviada).</td></tr><tr><td align="center"><strong>Erro de comunicação com a operadora</strong></td><td align="center">Falha de comunicação com a operadora.</td></tr><tr><td align="center"><strong>Rejeitada pela operadora</strong></td><td align="center">Mensagem rejeitada pela operadora. A operadora pode rejeitar a mensagem por vários motivos. Os mais comuns são devido a instabilidade temporária ou destinatário incapacitado.</td></tr><tr><td align="center"><strong>Não entregue</strong></td><td align="center">A mensagem foi enviada com êxito para a operadora, mas não pode ser entregue ao dispositivo. Alguns dos motivos são dispositivo fora da rede e destinatário desabilitado.</td></tr><tr><td align="center"><strong>Não entregue por opt-out</strong></td><td align="center">Destino bloqueado por opt-out</td></tr><tr><td align="center"><strong>Erro interno</strong></td><td align="center">Erro interno, procure nossa equipe de suporte.</td></tr><tr><td align="center"><strong>Parâmetro/Contato inválido</strong></td><td align="center">Dados de destino inválidos</td></tr><tr><td align="center"><strong>Blocklist</strong></td><td align="center">A mensagem não é enviada porque o número do destinatário foi bloqueado pelo cliente na plataforma Sinch.</td></tr><tr><td align="center"><strong>Mensagem de texto inválida</strong></td><td align="center">O texto da mensagem contém algum conteúdo inválido, como palavras impróprias, fraude ou conteúdo falso.</td></tr><tr><td align="center"><strong>Conteúdo inválido</strong></td><td align="center">O conteúdo da mensagem é inválido porque os parâmetros de um modelo de texto estão ausentes ou incorretos.</td></tr><tr><td align="center"><strong>Expirada pela operadora</strong></td><td align="center">A mensagem expirou por operadora. Falha após a operadora tentar enviar a mensagem em 24 horas para o celular.</td></tr><tr><td align="center"><strong>Mensagem duplicada</strong></td><td align="center">Mensagem para o mesmo número com algum conteúdo foi rejeitada devido a repetições excessivas</td></tr></tbody></table>


# Correlation ID

Envio do correlation id para conseguir identificar melhor as mensagens enviadas.

* O envio do “correlation ID” funciona para envio feito via **arquivos.**
* A informação do “correlation ID” **não** será incluída no texto da mensagem, fica oculta e será utilizada posteriormente pelo cliente para identificação da mensagem enviada.
* Para funcionar deve ser incluído uma coluna no arquivo destinada para o correlation ID.

| destination    | nome | info    | ... | correlationid |
| -------------- | ---- | ------- | --- | ------------- |
| 55199999999999 | João | empresa | ​   | campanha\_X   |
| 55199999999999 | Mari | empresa | ​   | campanha\_X   |
| 55199999999999 | José | empresa | ​   | campanha\_X   |

{% hint style="warning" %}
**Observação:** Todas as linhas da coluna Correlation ID precisam estar preenchidas.
{% endhint %}

### **Nomes que serão interpretados como correlation ID:** <a href="#nomes-que-serao-interpretados-como-correlation-id" id="nomes-que-serao-interpretados-como-correlation-id"></a>

"correlationid", "correlationId", "CorrelationId", "CorrelationID", "correlationID", "Correlationid", "CORRELATIONID","correlation\_id", "correlation\_Id", "Correlation\_Id", "Correlation\_ID", "correlation\_ID", "Correlation\_id", "CORRELATION\_ID"


# Configuração de limite de Caracteres

Você pode solicitar ao time de Suporte a configuração de uma limitação de caracteres, onde 1.500 caracteres é o máximo que uma mensagem pode ter.

Essa configuração é feita por subconta.

Uma vez que é feita essa configuração, ela aparece dessa forma:

<figure><img src="/files/PhdEjqtta1SToqTB0EaB" alt=""><figcaption></figcaption></figure>

Caso o usuário passe o mouse em cima da (nova) informação configurada, a seguinte mensagem aparece:

<figure><img src="/files/EGi44ed3GfHziVrmf1Mu" alt=""><figcaption></figcaption></figure>

Caso você faça o uso dos templates de SMS, a configuração também aparece:

<figure><img src="/files/oHhoz6Xm0lYTGPMHhZqp" alt=""><figcaption></figcaption></figure>

E quando for realizar o disparo, no caso da sua conta ter alguma limitação de configuração de caracteres, irá aparecer essa mensagem em amarelo:

<figure><img src="/files/HkIsEI3gkVGtPm2maEnr" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Quanto estiver utilizando templates com variáveis, esse box amarelo também será exibido sinalizando que a conta é configurada.

Caso queira saber para qual limitação de texto, basta selecionar a opção TEXTO para ver esta informação.
{% endhint %}

<figure><img src="/files/QOsRBQfPfX1jOOXjZ0cR" alt=""><figcaption></figcaption></figure>

Um fator importante é que mesmo tendo configurada a limitação de caracteres, quando se faz uso de template com variável e esta variável for ultrapassar a limitação, <mark style="color:red;">**a mensagem será enviada por inteiro.**</mark> Entende-se que à nível de experiência do cliente, é necessário que a mensagem seja entregue por completo. O aviso na caixa amarela serve justamente para alertar deste comportamento e revisar o <mark style="color:red;">**conteúdo ou o conteúdo do arquivo que será utilizado.**</mark>


# MM2: Novo Relatório: Chat (MT + MO) - legado

Relatório de Chats (MT+MO) é o novo relatório SMS do MM2, onde consolidamos as informações de MT+MO em um único lugar.

<figure><img src="/files/mI2l2aN8nP3dIXZIBZCN" alt=""><figcaption><p>image1</p></figcaption></figure>

<figure><img src="/files/D2Ws5VlidcpoKl4RTRgp" alt=""><figcaption><p>image2</p></figcaption></figure>

Relatório de Chats (MT+MO) é o novo relatório SMS do MM2, onde consolidamos as informações de MT+MO em um único lugar.

## Como funciona?

<mark style="color:red;">**2.1**</mark> A ideia deste relatório é consolidar as informações de mensagem enviada (MT) e mensagem recebida (MO) em um único local, de forma ordenada. Você pode usar esses filtros + calendário (para obter o período de informações que você precisa) e, em seguida, clicar em APLICAR&#x20;

<mark style="color:red;">**2.2**</mark> ID de Correlação: É um campo específico que pode ser adicionado à sua base de clientes indicando um número de cadastro ou protocolo, este dado não aparece no seu SMS.&#x20;

<mark style="color:red;">**2.3**</mark> Tipo (MT/MO): se for mensagem MT ou MO&#x20;

<mark style="color:red;">**2.4**</mark> Campanha: nome da campanha (se existir)&#x20;

<mark style="color:red;">**2.5**</mark> Mensagem: o conteúdo da mensagem&#x20;

<mark style="color:red;">**2.6**</mark> Select All: traz todas as informações&#x20;

<mark style="color:red;">**2.7**</mark> Telefone: se você deseja pesquisar algum número de telefone específico (deve preencher com o número completo)&#x20;

<mark style="color:red;">**2.8**</mark> Calendário: selecione o período para ver seus dados

<figure><img src="/files/1Q6AaTxgPGTBimfHga6v" alt=""><figcaption></figcaption></figure>

2. **Vá para Menu lateral > Relatórios > SMS > Chat (MT+MO)**

<figure><img src="/files/MxQkPrjsaTTferhdo8zh" alt=""><figcaption></figcaption></figure>

Como você pode ver, você poderá identificar o que é MT e o que é MO, de forma ordenada (começando do mais antigo para o mais novo). Outra coisa que nossos clientes poderão fazer é responder a um MO específico. Se ele optar por fazer isso, ele redirecionará para o Fast SMS. Após o envio, ele retornará a tela Report (primeira página).

<figure><img src="/files/1XOTkwBT2wPdG3awMEzX" alt=""><figcaption></figcaption></figure>

Nesta página, trazemos o número de telefone (vindo do MO) que o cliente decidiu responder.


# SMS Analytics

Aqui você vai encontrar o que é o SMS Analytics e o que muda deste relatório com o relatório legado.

{% hint style="info" %}
Esta página é dedicada para clientes que estão utilizando a nossa API chamada Conversation API (também chamada de **ConvAPI**).
{% endhint %}

O SMS Analytics tem um novo layout, mais moderno e atualizado. \
Ao contrário do relatório legado, que se encontra no Menu Lateral > Mensageria > Reports, o novo relatório você vai encontrar no **Menu Lateral > SMS > SMS Analytics**:\
\ <img src="/files/EkyOOTPxY9Ndx2ZbcSBk" alt="" data-size="original">

Importante reforçar que dados enviados pelo Legado vão continuar disponíveis para consulta na visualização aqui: **Menu Lateral > Mensageria > Reports** .

### Novo layout, novo design!

Atualizamos a interface do novo relatório, pensando na melhor experiência que podemos proporcionar aos nossos clientes.

### Relatório Consolidado

<figure><img src="/files/hDweQD0NMPM8CGW0aQwl" alt=""><figcaption></figcaption></figure>

Na área do **relatório Consolidado**, o que muda é o **filtro** de **Campanhas**, onde é possível selecionar mais de uma campanha.

Outra mudança é que você consegue selecionar períodos mensais, como visualizar os últimos 60 dias (2 meses), 90 dias (3 meses), 120 dias (4 meses) e até 180 dias (6 meses).\
\
Uma vez que realiza a busca, o novo layout está assim:<br>

<figure><img src="/files/ZRuOePfSEi5Ij00ajZW9" alt=""><figcaption></figcaption></figure>

A exportação tem 3 tipos: CSV, XLSX e PDF da página.

### Relatório Detalhado

Já a visualização do relatório Detalhado, temos os seguintes filtros:<br>

<figure><img src="/files/8Y8SYO7NTRQRCFsTvdE9" alt=""><figcaption></figcaption></figure>

Agora é possível personalizar ainda mais seu relatório: selecione as colunas que deseja visualizar, e arraste-as na ordem que quiser.&#x20;

Outra mudança é no filtro de Status. \
Agora disponibilizamos apenas estes status:\ <br>

* Mensagem enviada
* Erro no envio
* Entregue
* Não entregue
* Lido

Eles são simplificados para deixar a experiência mais fluída no universo das Campanhas. Caso tenha o interesse em saber mais informações, se atente ao campo de Status Description (ou descrição do status).

Aqui trouxemos alguns exemplos de status mais comuns que podem aparecer, para uma **mensagem não ter sido entregue**:

<table><thead><tr><th width="373" valign="bottom">STATUS DESCRIPTION</th><th width="464" valign="bottom">SIGNIFICADO DO STATUS</th></tr></thead><tbody><tr><td valign="bottom">Mensagem não entregue: endereço de destino inválido.</td><td valign="bottom">Endereço de destinatário inválido, verifique sua base e a mantenha limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: falha no envio do SMS pelo canal de origem.</td><td valign="bottom">Falha inesperada para processar o envio (possível intermitência).</td></tr><tr><td valign="bottom">Mensagem não entregue: limite de envio atingido.</td><td valign="bottom">Possível falha na comunicação entre a plataforma de envio e a operadora. Contate o time de Suporte para análise.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário ausente ou fora de cobertura.</td><td valign="bottom">Destinatário ausente ou fora de cobertura.</td></tr><tr><td valign="bottom">Mensagem não entregue: contém palavra bloqueada.</td><td valign="bottom">Mensagem não entregue por bloqueio de palavra. Verifique sua listagem de permissão de palavras. </td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário bloqueou o recebimento.</td><td valign="bottom">Seu destinatário bloqueou o recebimento da mensagem. Sempre que possível, garanta um fluxo de opt-in no canal de comunicação com seu cliente.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário bloqueado.</td><td valign="bottom">Destinatário bloqueado. Verifique o arquivo enviado e tente manter a sua base sempre limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: número de telefone inválido ou mal formatado.</td><td valign="bottom">Endereço de destinatário inválido, verifique sua base e a mantenha limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: conta bloqueada no canal de envio.</td><td valign="bottom">Conta bloqueada, contate seu Executivo da Conta para averiguar.</td></tr><tr><td valign="bottom">The underlying channel reported: Message: (#132012) Parameter format does not match format in the created template (type: OAuthException, code: 132012, details: header component parameter should not be empty)</td><td valign="bottom">Quando encontrar um erro similar a este, somente em inglês, significa que o erro está trazendo uma variável. O significado varia muito dependendo do caso, solicite ajuda de Suporte para um melhor entendimento.</td></tr><tr><td valign="bottom">Mensagem não entregue: remetente não autorizado pelo destinatário.</td><td valign="bottom">Remetente não autorizou o recebimento desta mensagem (ativação da configuração antispam pelo usuário).</td></tr><tr><td valign="bottom">Mensagem não entregue: serviço de mensagens não habilitado para o destinatário.</td><td valign="bottom">Serviço de mensagens não está habilitado para o destinatário, a linha não está configurada para receber mensagens de texto.</td></tr><tr><td valign="bottom">Mensagem não entregue: número de telefone inexistente ou inválido</td><td valign="bottom">Endereço de destinatário inválido, verifique sua base e a mantenha limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: recurso não suportado pelo destinatário.</td><td valign="bottom">Remetente fora da área de cobertura (em roaming). Você pode tentar reenviar a mensagem em outro momento.</td></tr><tr><td valign="bottom">Mensagem não entregue: problema na configuração do remetente.</td><td valign="bottom">Remetente não reconhecido. Verifique sua base e a mantenha limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário fora de alcance.</td><td valign="bottom">Destinatário indisponível para recebimento de mensagens no momento. Você pode tentar reenviar a mensagem em outro momento.</td></tr><tr><td valign="bottom">Mensagem não entregue: erro interno.</td><td valign="bottom">Falha interna que afetou o envio desta mensagem.</td></tr><tr><td valign="bottom">Mensagem não entregue: rejeitada pelo destinatário.</td><td valign="bottom">Instabilidade ao processar recebimento da confirmação da mensagem.</td></tr><tr><td valign="bottom">Mensagem não entregue: serviço bloqueado para o destinatário.</td><td valign="bottom">Operadora bloqueou o recebimento da mensagem.</td></tr><tr><td valign="bottom">Mensagem não entregue: bloqueio por localização do destinatário.</td><td valign="bottom">O destinatário encontra-se em uma área não configurada para envio.</td></tr><tr><td valign="bottom">Mensagem não entregue: endereço do remetente ou destinatário inválido.</td><td valign="bottom">Endereço de destinatário inválido, verifique sua base e a mantenha limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: erro permanente do destinatário.</td><td valign="bottom">Contate o time de Suporte para validação das configurações da sua conta.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário não identificado.</td><td valign="bottom">Destinatário não existe ou está inativo. Mantenha sua base sempre limpa e atualizada.</td></tr><tr><td valign="bottom">Mensagem não entregue: problemas na configuração.</td><td valign="bottom">Contate o time de Suporte para validação das configurações da sua conta.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário não é assinante do serviço de mensagens.</td><td valign="bottom">Problema de roteamento na rede de telefonia, provavelmente causado por portabilidade numérica. </td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário indisponível no momento.</td><td valign="bottom">Destinatário indisponível para recebimento de mensagens no momento. </td></tr><tr><td valign="bottom">Mensagem não entregue: remetente desativado ou não registrado.</td><td valign="bottom">Falha interna que afetou o envio desta mensagem. Se for um erro constante para este remetente, contate o time de Suporte para maiores esclarecimentos.</td></tr><tr><td valign="bottom">Mensagem não entregue: origem do remetente não corresponde à esperada.</td><td valign="bottom">Contate o time de Suporte para validação das configurações da sua conta.</td></tr><tr><td valign="bottom">Mensagem não entregue: falha na entrega do destinatário.</td><td valign="bottom">Falha na identificação da rota do destinatário. Verifique se o código de área e telefone estão certos.</td></tr><tr><td valign="bottom">Mensagem não entregue: destinatário fora da área.</td><td valign="bottom">Falha de compatibilidade entre a rede de telefonia e provedor. Contate o time de Suporte para saber mais.</td></tr><tr><td valign="bottom">Mensagem não entregue: erro desconhecido.</td><td valign="bottom">Falha da operadora de telefonia, contendo código de erro desconhecido (não documentado e não específico).</td></tr><tr><td valign="bottom">Mensagem não entregue: endereço do remetente inválido.</td><td valign="bottom">Endereço de destinatário inválido, verifique sua base e a mantenha limpa e atualizada.</td></tr></tbody></table>

### Relatório Chat MT + MO

<figure><img src="/files/GqspfI4bFoozpUmxMa81" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ewL8q3IMtgIPSVZqprMa" alt=""><figcaption></figcaption></figure>

A experiência continua a mesma do relatório Legado, adequada ao novo design do SMS Analtytics.\
Para esse tipo de relatório, a exportação é apenas via CSV e XLSX.

### Área de Relatórios Exportados

<figure><img src="/files/uWGmFYsTCEvfoZrGCGmW" alt=""><figcaption></figcaption></figure>

A nova área traz uma experiência que vai ajudar a saber quando o relatório estiver pronto para download. Deixamos uma notificação em vermelho, além de deixarmos em destaque a linha com o relatório pronto!


# Relatório SMS > RCS (legado)

> <mark style="color:$danger;">**ATENÇÃO!!! O produto SMS to RCS (ou SMS Upscale) será descontinuado em breve. Contate seu Executivo de Conta para mover sua conta para o RCS Nativo,  com SMS fallback e tenha acesso a uma experiência muito mais fluida!**</mark>

Na plataforma Messaging MM2, já é possível realizar disparo de SMS convertidos em RCS, ou como chamamos, **SMS to RCS**. \
&#x20;\
Aqui apresentamos um pouco mais de detalhes sobre a visualização de seus relatórios.

**Colunas Novas:** saiba o que este relatório tem a mais.\
\
**Lido:** contendo apenas **SIM/NÃO**\
**Lido em:** contendo data e hora que foi aberto \
**Tipo de faturamento:** indicando se a mensagem é Basic / Single e em casos onde possuir apenas um traço (-), significa que estamos falando de uma mensagem de SMS. \
**Enviado como SMS (se houve fallback para SMS):** Sim/Não\
**Partes da mensagem:** quantidade de partes que foram enviadas&#x20;

<figure><img src="/files/RteKe0yh8WO2Tc73pQlf" alt=""><figcaption></figcaption></figure>


# BOT SMS

Entenda mais sobre robôs de mensagem SMS

### **O que é um BOT?**

Os BOTs são robôs estruturados através de uma inteligência para automatizar e padronizar atendimentos humanos em uma tarefa ou exercício pré-determinado.&#x20;

### **Exemplo de BOT?**

Na própria plataforma é possível visualizar e utilizar alguns templates de BOTs para coletar o Opt-in do usuário via SMS ou fazer pesquisa de NPS, mas BOTs podem ser utilizados para vários outros objetivos de acordo com o seu negócio.

### **Como funciona um BOT SMS?**

O BOT SMS funciona de forma ativa, ou seja, é necessário enviar uma mensagem com o BOT desejado para que tudo comece.&#x20;

Após o envio, o BOT fica registrando e atuando nas mensagens respondidas pelos destinatários por até 7 dias, após isso é necessário realizar um novo envio do mesmo BOT ou de um BOT diferente para que os destinatários que não interagiram possam responder.&#x20;

(Caso um usuário estiver no meio do fluxo e você enviar para ele um novo BOT, o fluxo anterior será interrompido e o usuário passará para o fluxo do novo BOT.).

Temos aqui abaixo, alguns termos que são utilizados quando falamos de construção de um BOT SMS:

* Etapas são as mensagem diferentes que compõe o fluxo do BOT e que podem ou não serem enviadas para os destinatários, de acordo com as respostas recebidas pelo BOT.
* Texto da Mensagem é o texto que de fato a pessoa vai receber na mensagem, naquela etapa.
* Respostas são palavras chave que o bot reconhece nas respostas que recebe dos usuários e através delas dispara novas mensagens ou realiza ações no fluxo.
* Mnemônicos ou Sinônimos são grafias diferentes para a mesma resposta que uma etapa aceita. Por exemplo, se uma etapa aceita a resposta SIM, você pode configurar o BOT para reconhecer diferentes formas de escrever SIM, como S, Sin, Yes, Si, Yup, Y etc.
* "Nome no Relatório" é a forma como diferentes mnemônicos são agrupados para serem registrados nos relatórios. Você pode determinar o nome que desejar para que seja registrado nos relatórios um grupo de Mnemônicos aceitos em uma das respostas de uma etapa do fluxo do BOT.

### **Como construir um BOT SMS?**

Para criar um BOT SMS, é só acessar o **messaging** com o seu login e senha e seguir o passo a passo logo abaixo:

1. Expandir a opção **Construtor de fluxos** no menu à esquerda da tela e clicar em “BOT SMS”:

![bot](/files/-MivEzmdYl-ekoUXurp-)

2\. Para criar um novo BOT, clique no botão “+Novo Bot SMS”, que está no canto superior direito da tela

![](/files/-MivFCQSM-sdmfZOTi03)

3\. A seguir você visualiza uma tela como a que está na imagem abaixo, onde é possível usar os templates de Pesquisa de NPS, Opt-in e criar um novo BOT com o fluxo que você desejar:

![Fluxo](/files/-MivFlYPz9k0VvVkqtF1)

4\. Ao clicar para criar um fluxo em branco, você poderá realizar algumas configurações como: **adicionar uma etapa e as respostas esperadas dos usuários.**

* **Você terá 70 caracteres para montar suas mensagens.**
* **Lembre-se de não utilizar acentuações.**

***Ao lado também é possível visualizar um desenho de como está ficando a árvore de decisão do bot que você está criando.***

5\. Crie uma nova etapa e dê um nome para ela. Em seguida, inclua a pergunta que será enviada por SMS no campo “Texto da mensagem”.

<figure><img src="/files/MYwLFCXzsNvIwpFNMR6g" alt=""><figcaption></figcaption></figure>

No campo “**respostas**” deve ser incluído as possíveis respostas dos usuários.

<figure><img src="/files/dEGpeU79MeFcDWmQsAht" alt=""><figcaption></figcaption></figure>

No campo “**Termos para relatórios**” deve ser incluído um nome intuitivo que aparecerá no relatório sobre aquela resposta.

<figure><img src="/files/srsaNFrekQPqdKnonSnx" alt=""><figcaption></figcaption></figure>

No campo “**Ações**” deve ser incluído qual ação o bot deverá tomar caso a resposta do usuário seja a incluída acima.<br>

<figure><img src="/files/oXYk8O0w83XUsSqHSxqq" alt=""><figcaption></figcaption></figure>

&#x36;**.** Após esses passos, você poderá incluir quantas etapas achar necessário para que seu BOT cumpra o seu objetivo.&#x20;

É muito importante que após construir todo o fluxo desejado, você clique no botão “Criar” no canto inferior direito da tela, para salvar seu BOT.

{% hint style="warning" %}
**Importante: Ainda não é permitida a alteração de um BOT SMS após ser criado, portanto, caso seja necessária a edição de um BOT SMS é necessário que crie um NOVO BOT SMS com base no BOT já existente.**
{% endhint %}


# RCS (Nativo)

O RCS é um canal desenvolvido pela Google com integração nativa com o Android, não sendo necessário a pessoa instalar o aplicativo de mensagens.&#x20;

Permite enviar textos, imagens, GIFs, vídeos, arquivos, áudios, botões interativos e até carrosséis de produtos para uma pessoa ou grupo de usuários.

### Antes de começar, garanta que está tudo configurado!

Uma vez que você tiver contratado o RCS, o time de Provisionamento irá ajudar em sua jornada, fazendo todas as configurações necessárias para que possa estar pronto para uso!

### **Como enviar uma mensagem de RCS**

### **Vá em Nova Mensagem > Novos Canais > RCS**

<figure><img src="/files/4xfmDOcml8L1gSxnixHJ" alt=""><figcaption></figcaption></figure>

### **Escolha seus destinatários**

Você pode subir um arquivo de até 105MB ou escolher um arquivo de Arquivos Salvos, Contatos, Grupos de Contatos ou até mesmo enviar para poucos usuários.&#x20;

<figure><img src="/files/Q1xLnMETIenrMu3porke" alt=""><figcaption></figcaption></figure>

### **Criação de conteúdo: RCS**

Existem 3 formas de criar conteúdo de RCS: Texto Simples, Rich Card e Carrossel.

### **Texto Simples** <a href="#id-17.rcsnative-pure-02.1.simpletext" id="id-17.rcsnative-pure-02.1.simpletext"></a>

Se você escolher a opção **texto simples**, você poderá criar e enviar um texto para os seus usuários finais, sem qualquer tipo de mídia. \
É importante reforçar que dentro deste tipo, podemos criar conteúdos do tipo Basic e Single.<br>

**Regra para Basic:**

* até 160 caracteres&#x20;

**Regra para Single:**

* mais de 160 caracteres
* ou uso de botão

<figure><img src="/files/SKYNslamFGOsmgQYpoOJ" alt=""><figcaption></figcaption></figure>

No **texto simples**, você pode adicionar até 10 botões (botões são opcionais). Existem 2 tipos de botões:\
\
**Ação** → você pode adicionar um número de telefone ou uma URL (redirecionamento para um website) \
**Resposta rápida** → botão de seleção para alguma opção

### **Rich Card** <a href="#id-17.rcsnative-pure-02.2.richcard" id="id-17.rcsnative-pure-02.2.richcard"></a>

É uma mensagem contendo mídia. Mídia e conteúdo textual são obrigatórios.

<table data-header-hidden><thead><tr><th width="136">Tipo</th><th width="526">Característica</th></tr></thead><tbody><tr><td><strong>Imagem</strong></td><td>Até 2MB</td></tr><tr><td><strong>Vídeo</strong></td><td>Até 10MB</td></tr><tr><td><strong>URL (botão para website)</strong></td><td>URL de até 2.048 caracteres</td></tr></tbody></table>

Você pode escolher entre alturas Baixa / Média / Alta para mídia.\
Em Rich Card, você também pode adicionar até 4 botões (opcionais).

<figure><img src="/files/uNGaazM76boz2jyAx7k7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4bKAkaUsYZLlELNMq8NU" alt=""><figcaption></figcaption></figure>

Uma experiência possível dentro de Rich Card e Carrossel é a visualização do site através do **Webview**.\
\
Se você ativar este botão, vai possibilitar que seu cliente veja sua mensagem dentro da experiência do canal RCS. Isso ajuda a não ter abandono da experiência, trazendo maiores chances de engajamento com o canal!\ <br>

<figure><img src="/files/dRfqPsAUBXmw4k1KKJNS" alt=""><figcaption></figcaption></figure>

### **Carrossel**  <a href="#id-17.rcsnative-pure-02.3.carousel" id="id-17.rcsnative-pure-02.3.carousel"></a>

Carrossel é um conjunto de rich cards que compõe sua mensagem. Máximo de até 10 rich cards.

<table><thead><tr><th width="143">Tipo</th><th width="512">Característica</th></tr></thead><tbody><tr><td><strong>Imagem</strong></td><td>Até 1MB</td></tr><tr><td><strong>Vídeo</strong></td><td>Até 5MB</td></tr><tr><td><strong>URL</strong></td><td>URL de até 2048 caracteres</td></tr></tbody></table>

Você também pode escolher entre alturas Baixa / Média / Alta para mídia. \
No Carrossel, você pode adicionar até 2 botões (opcional) de Ações e/ou até 10 botões de Respostas Rápidas.\
Você pode mover seus rich cards na Pré-Visualização da mensagem, arrastar e mudar a ordem dos cards, até mesmo deletar algum se não gostar.

<figure><img src="/files/LIvotpjhLWmr8OMQySkP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/IQ0PLwR4BtYEiZ25h2Qr" alt=""><figcaption></figcaption></figure>

### **Outras configurações**

\
Esta tela só aparece se você tiver a configuração de SMS Fallback. \
Recomendamos ter essa configuração, de forma a cobrir uma comunicação em toda sua base.

<figure><img src="/files/3xv9b0Q3Ch3TiAO7uvwJ" alt=""><figcaption></figcaption></figure>

Você pode escolher o template de SMS para ser enviado, caso o seu cliente final não tenha suporte para receber uma mensagem de RCS.

<figure><img src="/files/19znmWwSCzJSyGfBjbZ6" alt=""><figcaption></figcaption></figure>

### **Escolha uma campanha**

Depois de criar seu conteúdo, você pode escolher sua campanha.

<figure><img src="/files/iVAAps75APinjxBkyerk" alt=""><figcaption></figcaption></figure>

### **Agende sua mensagem** <a href="#id-17.rcsnative-pure-4.choosewhenthemessagewillbesent" id="id-17.rcsnative-pure-4.choosewhenthemessagewillbesent"></a>

Escolha quando sua mensagem será enviada.

<figure><img src="/files/RjLWl6T0TWT9e7K1R2Fg" alt=""><figcaption></figcaption></figure>

### **Tudo pronto. Veja o resumo do seu envio!** <a href="#id-17.rcsnative-pure-4.choosewhenthemessagewillbesent" id="id-17.rcsnative-pure-4.choosewhenthemessagewillbesent"></a>

Todas as informações do seu envio para checar se está tudo certinho.

<figure><img src="/files/bsyGKTOnskMI0JW2utV4" alt=""><figcaption></figcaption></figure>

### **Uma vez que você clicar para enviar sua mensagem, você será redirecionado para esta tela:** <a href="#id-17.rcsnative-pure-6.onceyouclicktosendyourmessage-youwillberedirecttothispage" id="id-17.rcsnative-pure-6.onceyouclicktosendyourmessage-youwillberedirecttothispage"></a>

<figure><img src="/files/PbTWiCgShC9unzcij4VV" alt=""><figcaption></figcaption></figure>

### **Relatório** <a href="#id-17.rcsnative-pure-6.onceyouclicktosendyourmessage-youwillberedirecttothispage" id="id-17.rcsnative-pure-6.onceyouclicktosendyourmessage-youwillberedirecttothispage"></a>

O relatório atual do RCS está disponível na área de RCS > RCS Analytics.\
\
\
![](/files/uhOpJufwmeB80VUZsMyv)

\
Uma vez clicada nesta opção, você irá visualizar essa página abaixo.<br>

<figure><img src="/files/0q6UFEBgsXhW1kTNs91T" alt=""><figcaption></figcaption></figure>

\
Aqui vão alguns detalhes de como funciona cada tipo de relatório e seus respectivos filtros.<br>

### Relatório Consolidado

<figure><img src="/files/djb8KSDbvNOFfkcu1Gak" alt=""><figcaption></figcaption></figure>

**Principais Características:**\
\
**1.** Este relatório consolida as informações de RCS de MT com MO\
**2.** Você irá visualizar quantidade de volume Basic e Single\
**3.** Periodicidade: pode escolher tanto o período através do calendário ou através das opções de períodos fechados como: 60, 90, 120 e 180 dias.\
**4.** Pode exportar o relatório como CSV, XLSX ou PDF da página. Aqui não estamos considerando a imagem, apenas os dados da tabela apresentados.\
**5.** Este relatório é perfeito se você busca uma visão rápida e assertiva para acompanhar suas campanhas.

<figure><img src="/files/9WyWOmE0fPrqVXNrRAUA" alt=""><figcaption></figcaption></figure>

| Filtros Consolidado                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Tipo de Relatório:** Consolidado                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Origem:** MT + MO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Visualizar relatório com dados de fallback:** você pode escolher visualizar os dados **COM** ou **SEM** fallback, para facilitar o entendimento do engajamento do canal                                                                                                                                                                                                                                                                                                                                                      |
| **Periodicidade:** pode optar por selecionar o período a ser visualizado através do calendário ou através de períodos fixos sugeridos: 60, 90, 120, 180 dias.                                                                                                                                                                                                                                                                                                                                                                  |
| <p><strong>Filtros:</strong><br><br>- <strong>Subconta:</strong> possível selecionar mais de uma subconta. Digite o ID da subconta ou nome da subconta.<br>- <strong>Usuário:</strong> digite o userID ou nome do usuário<br>- <strong>Campanha:</strong> é possível selecionar mais de uma campanha. Digite o ID da campanha ou nome da campanha.<br>- <strong>País:</strong> digite o nome do país<br>- <strong>Status:</strong> pode selecionar entre Mensagem Enviada / Erro no Envio / Entregue / Não Entregue / Lido</p> |

### Relatório Detalhado

<figure><img src="/files/VckYiZxBQN6zGAY7tK7F" alt=""><figcaption></figcaption></figure>

**Principais Características:**<br>

**1.** Neste relatório, você conseguirá visualizar informações detalhadas de MT e de MO separadamente.\
**2.** Também é possível visualizar informações **COM** ou **SEM** fallback.\
**3.** A seleção da periodicidade acontece apenas via calendário.\
**4.** Por ser um relatório que proporciona mais informações, você pode personalizar da maneira que desejar. Ou seja, você pode selecionar apenas campos que deseja visualizar e a respectiva ordem deles.\
**5.** Pode exportar o relatório como CSV, XLSX ou PDF da página.&#x20;

| Filtros Detalhado                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Tipo de Relatório:** Detalhado                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| **Origem:** MT ou MO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Visualizar relatório com dados de fallback:** você pode escolher visualizar os dados **COM** ou **SEM** fallback, para facilitar o entendimento do engajamento do canal                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Periodicidade:** apenas via calendário                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Personalização de relatório:** escolha as colunas que deseja visualizar e altere sua respectiva ordem, arrastando o bloco. Quando você seleciona o que deseja visualizar, o bloco fica verde.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| <p><strong>Filtros:</strong><br><br>- <strong>Subconta:</strong> possível selecionar mais de uma subconta. Digite o ID da subconta ou nome da subconta.<br>- <strong>Usuário:</strong> digite o userID ou nome do usuário<br>- <strong>Campanha:</strong> é possível selecionar mais de uma campanha. Digite o ID da campanha ou nome da campanha.<br>- <strong>País:</strong> digite o nome do país<br>- <strong>Status:</strong> pode selecionar entre Mensagem Enviada / Erro no Envio / Entregue / Não Entregue / Lido<br>- <strong>Destinatário:</strong> digite o telefone com DDD + DDI + telefone<br>- <strong>Lote ID:</strong> campo aberto, corresponde ao ID do disparo<br>- <strong>Correlation ID:</strong> campo aberto<br>- <strong>Operadora:</strong> este campo só irá aparecer para cenário de SMS fallback.</p> |

Após efetuar a busca, personalizando seu relatório, as informações vão aparecer similares a esta:<br>

<figure><img src="/files/cbtKt5uBADfFdD3mWRm8" alt=""><figcaption></figcaption></figure>

Quando houver um envio de **Carrossel** ou **Rich Card**, você poderá visualizar sua mensagem clicando nesse ícone de "olho". Quando enviar um conteúdo somente com texto, ele virá escrito na **coluna** **de** **Mensagem** também.\
\
Para saber maiores informações do que aconteceu com o seu envio, você pode visualizar as informações da coluna **Descrição do Status**. É neste campo que vai saber o que aconteceu com a sua mensagem.

### Relatório Exportado

<figure><img src="/files/MtDSRkL3vIKhBdIHvBrz" alt=""><figcaption></figcaption></figure>

Uma vez que você clique para exportar um relatório, ele vai aparecer nesta aba de Relatórios Exportados. \
Quando seu relatório estiver pronto para download, uma notificação em vermelho aparecerá, conforme mostra a imagem acima.

Você irá encontrar os filtros para melhor buscar os relatórios gerados no passado, caso necessite.\
**Filtros** como:\
\
\- **tipo de Relatório:** Consolidado MT + MO / Detalhado MT / Detalhado MO / Chat MT + MO (para casos de SMS)\
\- **Formato:** CSV / XLSX (arquivos do tipo PDF são baixados automaticamente na máquina do usuário)\
\- **Status:** Pronto / Em Processamento / Erro\
\- **Subconta:** busca pelo ID ou por nome da subconta\
\- **Usuário:** busca pelo ID ou nome de usuário


# Insights Hub

O **Insights Hub** introduz uma nova experiência para nossos clientes de RCS, fornecendo insights rápidos e claros sobre o desempenho de suas campanhas.\
Isso permite que eles tomem decisões rápidas e orientadas por dados com base nos resultados de seus envios.

No menu lateral, você encontrará:

<figure><img src="/files/iJREz7BD1qlvUGyxuvUf" alt=""><figcaption></figcaption></figure>

\
Após clicar nessa nova opção no menu lateral, você irá se deparar com este dashboard:

<figure><img src="/files/ZZU5s00xrf1U3qVbzKFX" alt=""><figcaption></figcaption></figure>

Vamos detalhar abaixo como cada bloco deste dashboard funciona.<br>

### 1. Período&#x20;

<figure><img src="/files/ztkQaImY58UvAKDo5TFo" alt=""><figcaption></figcaption></figure>

Como padrão, o período é sempre vir o mês atual.<br>

| Período             | Significado                                                                                                                         |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Mês Atual**       | <p>Dados do mês atual, com exceção do dia atual.<br><br>Exemplo: se hoje é dia 08 de Abril, vai trazer dados de 1 à 7 de Abril.</p> |
| **Mês Anterior**    | <p>Mês anterior, com exceção do mês atual. <br></p><p>Exemplo: se estamos no mês de Abril, ele vai trazer Março.</p>                |
| **60 dias**         | <p>Últimos 2 meses, com exceção do mês atual.<br></p><p>Exemplo: se estamos no mês de Abril, ele vai trazer Fevereiro e Março.</p>  |
| **Últimos 15 dias** | Últimos 15 dias, com exceção do dia atual                                                                                           |
| **Ontem**           | D-1                                                                                                                                 |

### 2. Indicadores

<figure><img src="/files/1CGnHIXxmRS0e2RTFInA" alt=""><figcaption></figcaption></figure>

Estes indicadores trazem **dados somente do canal RCS**. Caso você tenha o SMS fallback configurado, pode visualizar informações de RCS + SMS Fallback no bloco do **funil**.

Trazendo apenas dados de RCS, você consegue enxergar melhor o potencial do canal para suas campanhas!\
\
Um lembrete importante ao analisar o indicador de **leitura**. Clientes que possuem **iOS**, em sua maioria, não possuem o indicador de leitura ativo como padrão, diferente dos clientes que possuem **Android**. Então podemos nos deparar com clientes que iOS que estão lendo suas mensagens, mas o indicador pode não subir por conta disso.&#x20;

### 3. Melhores Subcontas e Melhores Campanhas

<figure><img src="/files/tqrR1jPRyfuHPu0ILOeH" alt=""><figcaption></figcaption></figure>

Nesta visão acima, você terá acesso às **Melhores campanhas enviadas** no período selecionado. \
Caso não tenha uma campanha vinculada em seu disparo, não irá aparecer aqui, ok?\
\
Recomendamos enviar suas mensagens sempre associadas a uma campanha, de forma a organizar melhor seus envios e facilitar a busca em nossos relatórios!\
\
Você irá visualizar o nome da campanha embaixo de cada coluna, com dados de volumetria, taxa de leitura e taxa de resposta.\
\
Você também conseguirá visualizar as **Melhores subcontas do período**, com o nome da subconta embaixo da coluna, o total de mensagens enviadas e a porcentagem da taxa de entrega.

<figure><img src="/files/3IkZDGsUzKxBYtuuQgug" alt=""><figcaption></figcaption></figure>

### 4. Funil

<figure><img src="/files/ETEl53XLYOsHTWImtxzI" alt=""><figcaption></figcaption></figure>

O funil traz a informação completa do período selecionado (sempre se referenciando a RCS + SMS fallback, quando houver o fallback), informando a porcentagem do que foi como basic/single/fallback.\
\
Nos dados de interação, é importante saber o que estamos considerando.\
\
\- quando eu tenho um MT e recebo múltiplos MOs deste MT, nós vamos contabilizar como apenas **uma** interação. Porque o foco é visualizar a interação com a campanha.\
Para saber se houve outras interações, recomendamos o uso do relatório Analytics.\
\- é regra associarmos um MO com um MT dentro da janela de 7 dias. Se um usuário interage com a sua campanha após 7 dias, não conseguimos associar o MO ao MT da campanha.\
\ <br>


# RCS Analytics

O **RCS Analytics** é o relatório do canal RCS Nativo. Ele traz informações caso tenha o canal de SMS Fallback configurado.\
\
Quando comparamos com o relatório de SMS to RCS, vemos um layout totalmente repaginado, pensado em atender as suas necessidades e trazendo uma experiência muito mais fluida.\
\
Logo após clicar no menu lateral > RCS > RCS Analytics, vemos a área para você gerar seu **relatório Consolidado**. É possível escolher visualizar os dados com informações de SMS fallback ou não.\
\
No campo de calendário, é possível escolher algum período específico (dia, semana, mês) ou visualizar por blocos de meses (últimos 60, 90, 120 ou 180 dias).\
Repare que esta visão é o consolidado de MT + MO. Se desejar visualizar estas informações separadas, basta ir no **relatório** **Detalhado**.<br>

<figure><img src="/files/TRcz1G1gq58b55FNR1iE" alt=""><figcaption></figcaption></figure>

Após gerar seu relatório Consolidado, conseguirá visualizar este gráfico com todas essas informações abaixo:

<figure><img src="/files/lsrKpiXEbZPXkRhh2tRX" alt=""><figcaption></figcaption></figure>

Já esta visão traz os filtros do **relatório Detalhado**. \
Aqui trazemos muito mais campos e informações, onde você pode selecionar o que deseja visualizar e na ordem que quiser!

<figure><img src="/files/o0dvO65qLouFH7BL8i2p" alt=""><figcaption></figcaption></figure>

\
Caso você queira entender as principais diferenças entre este relatório e o que era disponibilizado para o canal SMS to RCS, seguem os principais pontos:<br>

* Praticamente todos os filtros se mantiveram
* O RCS Analytics traz novos filtros, como: **Descrição do Status** (trazendo maiores detalhes relativos ao status da sua mensagem), **Tipo de mensagem** (se é um richcard, carrossel, mensagem texto) e **Sender ID**.
* o filtro de **Shortcode** não existe mais, já que é possível configurar subcontas por shortcodes.
* filtros como: **Agendado para**, **Lido**, **Criado em** e **original\_UUID** não existem mais. As informações que eles traziam já estão contempladas nos filtros atuais do RCS Analytics!


# Documentação Técnica - WhatsApp

Esta documentação fornece informações sobre como sua aplicação poderá enviar as mensagens de Whatsapp via API.

Você também encontrará aqui informações sobre **Webhooks**, que são retornos de chamada HTTP definidos pelo usuário, que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, a API da Sinch coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) para URL fornecida pelo cliente, atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem do usuário final (MO).

A Sinch Messaging WhatsApp API permite o envio de mensagens únicas ou em lote. A API possui integração REST, utilizando o protocolo HTTP com TLS, suportando o método POST com os parâmetros enviados em formato JSON.


# Termos importantes

### Termos Importantes <a href="#termos-importantes" id="termos-importantes"></a>

<table><thead><tr><th width="162"></th><th width="245"></th><th></th></tr></thead><tbody><tr><td><strong>MT</strong></td><td>Mobile Terminated</td><td>É o termo utilizado para mensagens que possuem o usuário (aparelho) como destino. Ou seja, mensagens que foram originadas por sua empresa, com destino ao usuário (aparelho).</td></tr><tr><td><strong>Response</strong></td><td>Resposta síncrona da Sinch</td><td>É a resposta imediata de uma requisição feita em nossa API, onde informamos se a mensagem foi aceita ou não por nossa plataforma.</td></tr><tr><td><strong>Callback</strong></td><td>Sent status ou status de envio</td><td>É o status de envio que retornamos, onde informamos se foi possível, ou não, fazer a entrega da mensagem <strong>para o WhatsApp</strong>, se foi entregue para o <strong>Usuário</strong> e se a mensagem foi lida.</td></tr><tr><td><strong>MO</strong></td><td>Mobile Originated</td><td>É o termo utilizado para mensagens que possuem sua empresa como destino. Ou seja, mensagens que foram originadas pelo usuário (aparelho).</td></tr></tbody></table>


# Fluxo de mensagem e pré-requisitos

## Fluxo de Mensagem

Fluxo simplificado: MT, Callback, DLR, MO

<figure><img src="/files/X6kBENu3CEIHLF7es2kI" alt=""><figcaption></figcaption></figure>

### Pré-Requisitos <a href="#pr-requisitos" id="pr-requisitos"></a>

1. Para utilizar a API da Sinch Messaging, primeiro você deve ter uma conta ativa na plataforma Sinch messaging. Consulte a documentação sobre [Conta e Configurações](https://docs.wavy.global/getting-started/wavy-messaging-platform/conta-e-configuracoes) para obter mais informações sobre como fazer esse procedimento.
2. Você também deverá ter usuário e token válidos associados a essa conta. Saiba como criar seu usuário no nosso guia [Adicionar usuários](https://docs.wavy.global/permissoes/subcontas-e-usuarios#adicionar-usuarios).
3. Com as credenciais acima, você ja poderá começar a utilizar a API da Sinch Messaging.


# Autenticação de usuário

Para usar nossa API com sucesso, você deve apresentar um nome de usuário válido - ou e-mail - e o token de autenticação associado. Ao criar a solicitação, você precisa fornecer os seguintes parâmetros nos cabeçalhos:

<table><thead><tr><th>Campo</th><th width="317">Detalhes</th><th>Tipo de dado</th></tr></thead><tbody><tr><td>UserName</td><td>Nome ou e-mail válido para identificação do usuário no ChatClub.</td><td>String</td></tr><tr><td>AuthenticationToken</td><td>Token de autenticação gerado pela nossa plataforma. Encontre aqui ou consulte o suporte. <a href="https://messaging.wavy.global/dashboard/profile/settings#profile">aqui</a></td><td>String</td></tr></tbody></table>

### Detalhes da Conexão

<table data-header-hidden><thead><tr><th width="213"></th><th></th></tr></thead><tbody><tr><td><strong>Hostname</strong></td><td>api-messaging.wavy.global</td></tr><tr><td><strong>Porta</strong></td><td>443 (https)</td></tr><tr><td><strong>Protocolo</strong></td><td>HTTPS (TLS encryption)</td></tr><tr><td><strong>Autenticação</strong></td><td>UserName e AuthenticationToken</td></tr><tr><td><strong>Encoding</strong></td><td>UTF-8</td></tr></tbody></table>


# Envio de Mensagens

As chamadas para a API Sinch Messaging devem ser realizadas para a URL <https://api-messaging.wavy.global/v1/whatsapp/send> no formato **POST** independentemente do tipo de mensagem, no entanto, o conteúdo do corpo da mensagem JSON varia para cada tipo de mensagem.

Os campos de autenticação no header também seguirão o mesmo formato, independente do tipo de mensagem:

<table><thead><tr><th width="269"></th><th></th></tr></thead><tbody><tr><td><strong>POST</strong></td><td>/v1/whatsapp/send HTTP/1.1</td></tr><tr><td><strong>Host:</strong></td><td>api-messaging.wavy.global</td></tr><tr><td><strong>UserName:</strong></td><td>user_name</td></tr><tr><td><strong>AuthenticationToken:</strong></td><td>aaaaaa-bbbbbbbbbbbbbXXXXX12</td></tr><tr><td><strong>Content-Type:</strong></td><td>application/json</td></tr></tbody></table>

A requisição precisa conter um objeto JSON no corpo com os seguintes campos:

<table><thead><tr><th width="159">Campo</th><th width="141">Obrigatório</th><th width="253">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>destinations</td><td>Sim</td><td>Lista de Destinos</td><td>Destino[]</td></tr><tr><td>message</td><td>Sim</td><td>Mensagem de Texto que será enviada a todos os destinos</td><td>Mensagem</td></tr><tr><td>flowId</td><td>Não</td><td>Identificador de Fluxo do Bot</td><td>String</td></tr><tr><td>defaultExtraInfo</td><td>Não</td><td>Dados adicionais que identifiquem o envio, serão vinculados a todos os destinatários que receberão a mensagem</td><td>String</td></tr><tr><td>campaignAlias</td><td>Não</td><td>ID da campanha, é linkado com todas as mensagens enviadas</td><td>String</td></tr></tbody></table>

#### Destino: <a href="#destino" id="destino"></a>

<table><thead><tr><th width="160">Campo</th><th width="130">Obrigatório</th><th width="350">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>correlationId</td><td>Não</td><td>Id definido por voce que será retornado na configuração da mensagem (callback). Isto é útil em casos quando é necessário rastear os envios das mensagens, pois é possivel definir ids diferentes para diferentes mensagens.</td><td>String</td></tr><tr><td>destination</td><td>Sim</td><td>Número de telefone (código do país — 55 para Brasil — e DDD devem estar presentes) que receberá a mensagem. Exemplos:5519900001111, +5519900001111, +55(19) 900001111.</td><td>String</td></tr></tbody></table>

#### Mensagem: <a href="#mensagem" id="mensagem"></a>

<table><thead><tr><th>Campo</th><th width="128">Obrigatório</th><th width="295">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>messageText</td><td>Sim</td><td>Campo usado quando for necessário enviar uma mensagem personalizada em resposta a uma mensagem recebida.</td><td>text</td></tr><tr><td>image</td><td>Sim</td><td>Campo utilizado quando for necessário o envio de uma imagem.</td><td>Image</td></tr><tr><td>audio</td><td>Sim</td><td>Campo utilizado quando for necessário o envio de uma áudio.</td><td>Audio</td></tr><tr><td>document</td><td>Sim</td><td>Campo utilizado quando for necessário o envio de uma documento.</td><td>Document</td></tr><tr><td>location</td><td>Sim</td><td>Campo utilizado quando for necessário o envio de uma localização.</td><td>Location</td></tr><tr><td>contacts</td><td>Sim</td><td>Campo utilizado quando for necessário o envio de contato(s).</td><td>Contact[]</td></tr><tr><td>previewFirstUrl</td><td>Não</td><td>Controla a exibição no app da primeira URL enviada ao usuário</td><td>Boolean</td></tr></tbody></table>

{% hint style="danger" %}
Apenas um dos seguintes tipos de envio deve ser especificado, sendo ‘messageText’, ‘image’, ‘audio’, ‘document’, ‘location’, ‘template’ ou ‘contacts’.
{% endhint %}

Uma mensagem personalizada deve ser enviada somente quando a sessão de conversa estiver aberta, ou seja, quando o envio for uma resposta para uma mensagem enviada pelo usuário. Se a sessão não estiver aberta ou o usuário não enviar uma mensagem, um Template deverá ser utilizado no envio.

{% hint style="danger" %}
Os tipos de envio abaixo só serão entregues com sucesso dentro da janela de atendimento (24h)
{% endhint %}

### Texto <a href="#texto" id="texto"></a>

<table><thead><tr><th>Campo</th><th width="137">Obrigatório</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>messageText</td><td>Sim</td><td></td><td>Texto que será enviado ao usuário</td></tr></tbody></table>

> Exemplo de requisição com texto

{% tabs %}
{% tab title="JSON" %}

```
{
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "messageText": "mensagem de teste"
            }
        }
```

{% endtab %}
{% endtabs %}

### Imagem <a href="#imagem" id="imagem"></a>

<table><thead><tr><th width="129">Campo</th><th width="126">Obrigatório</th><th width="389">Detalhes</th><th>Type</th></tr></thead><tbody><tr><td>tipo</td><td>Sim</td><td>Tipo/extensão da imagem que será enviada na mensagem. Opções disponiveis: JPG, JPEG, PNG.</td><td>String</td></tr><tr><td>caption</td><td>Não</td><td>Texto que será apresentado ao usuário embaixo da imagem</td><td>String</td></tr><tr><td>url</td><td>Sim</td><td>URL que hospeda o arquivo a ser enviado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>conteúdo encodado em Base64</td><td>String</td></tr></tbody></table>

> Exemplo de requisição com Imagem (URL)

{% tabs %}
{% tab title="cURL" %}

```
   {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }
```

<br>
{% endtab %}

{% tab title="Ruby" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }
```

<br>
{% endtab %}

{% tab title="Python" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }
```

{% endtab %}
{% endtabs %}

> Exemplo de requisição com Imagem (Base 64)

{% tabs %}
{% tab title="cURL" %}

```
{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }
```

{% endtab %}

{% tab title="Ruby" %}

```
{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }
```

{% endtab %}

{% tab title="Python" %}

```
{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }
```

{% endtab %}

{% tab title="PHP" %}

```
{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }
```

{% endtab %}

{% tab title="Java" %}

```
{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }
```

{% endtab %}
{% endtabs %}

### Audio <a href="#audio" id="audio"></a>

<table><thead><tr><th width="137">Campo</th><th width="146">Obrigatório</th><th width="237">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo/extensão do audio que será enviado na mensagem. Opções disponiveis: AAC, MP4, AMR, MP3, OGG.</td><td>String</td></tr><tr><td>url</td><td>Sim</td><td>URL que hospeda o arquivo a ser enviado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>conteúdo encodado em Base64</td><td>String</td></tr></tbody></table>

> Exemplo de requisição com Áudio (URL)

{% tabs %}
{% tab title="cURL" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}

{% tab title="Python" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}
{% endtabs %}

> Exemplo de requisição com Áudio (Base 64)

{% tabs %}
{% tab title="cURL" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="Python" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
    {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}
{% endtabs %}

### Documento <a href="#documento" id="documento"></a>

| Campo    | Obrigatório | Detalhes                                                                          | Tipo   |
| -------- | ----------- | --------------------------------------------------------------------------------- | ------ |
| type     | Sim         | Tipo/extensão do documento que será enviado na mensagem. Opções disponiveis: PDF. | String |
| caption  | Não         | Texto que será apresentado ao usuário embaixo do documento                        | String |
| url      | Sim         | URL que hospeda o arquivo a ser enviado.                                          | String |
| data     | Sim         | Conteúdo encodado em Base64                                                       | String |
| filename | Sim         | Nome do arquivo                                                                   | String |

> Exemplo de requisição com Documento (URL)

{% tabs %}
{% tab title="cURL" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }
```

{% endtab %}

{% tab title="Python" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }
```

{% endtab %}
{% endtabs %}

> Exemplo de requisição com Documento (Base 64)

{% tabs %}
{% tab title="cURL" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="Python" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }
```

{% endtab %}
{% endtabs %}

{% hint style="danger" %}
**Para envio de Imagens, Audios e Documentos apenas uma das seguintes opções deve ser especificado, sendo ‘url’ caso voce deseje enviar um arquivo e ‘data’ caso voce queira utilizar encoding base64.**
{% endhint %}

### Contact <a href="#contact" id="contact"></a>

<table><thead><tr><th width="149">Campo</th><th width="137">Obrigatório</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>addresses</td><td>Não</td><td>Endereço(s) completo(s) do contato.</td><td>Address[]</td></tr><tr><td>birthday</td><td>Não</td><td>Data de aniversário com formato YYYY-MM-DD.</td><td>String</td></tr><tr><td>emails</td><td>Não</td><td>Endereço(s) de e-mail de contato.</td><td>Email[]</td></tr><tr><td>name</td><td>Sim</td><td>Nome completo do contato.</td><td>Name</td></tr><tr><td>org</td><td>Não</td><td>Informações da organização do contato.</td><td>Org</td></tr><tr><td>phones</td><td>Não</td><td>Número(s) de telefone do contato.</td><td>Phone[]</td></tr><tr><td>urls</td><td>Não</td><td>URL(s) do contato.</td><td>Url[]</td></tr></tbody></table>

> Exemplo de requisição com Contatos

{% tabs %}
{% tab title="cURL" %}

```
{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }
```

{% endtab %}

{% tab title="Python" %}

```
{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }
```

{% endtab %}

{% tab title="Java" %}

```
{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }
```

{% endtab %}
{% endtabs %}

### Address <a href="#address" id="address"></a>

<table><thead><tr><th width="152">Campo</th><th width="142">Obrigatório</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>street</td><td>Não</td><td>Nome e número da rua.</td><td>String</td></tr><tr><td>city</td><td>Não</td><td>Nome da cidade.</td><td>String</td></tr><tr><td>state</td><td>Não</td><td>Sigla do Estado.</td><td>String</td></tr><tr><td>zip</td><td>Não</td><td>CEP.</td><td>String</td></tr><tr><td>country</td><td>Não</td><td>Nome completo do país.</td><td>String</td></tr><tr><td>country_code</td><td>Não</td><td>Abreviação de país (Duas letras).</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

> Exemplo de requisição com Localização

{% tabs %}
{% tab title="cURL" %}

```
  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }
```

{% endtab %}

{% tab title="Ruby" %}

```
  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }
```

{% endtab %}

{% tab title="Python" %}

```
  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }
```

{% endtab %}

{% tab title="PHP" %}

```
  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }
```

{% endtab %}

{% tab title="Java" %}

```
  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }
```

{% endtab %}
{% endtabs %}

### Email <a href="#email" id="email"></a>

<table><thead><tr><th>Campo</th><th width="137">Obrigatório</th><th width="289">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>email</td><td>Não</td><td>Endereço de e-mail.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

### Name <a href="#name" id="name"></a>

<table><thead><tr><th>Campo</th><th width="137">Obrigatório</th><th width="305">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>first_name</td><td>Não</td><td>Primeiro nome.</td><td>String</td></tr><tr><td>last_name</td><td>Não</td><td>Último nome.</td><td>String</td></tr><tr><td>middle_name</td><td>Não</td><td>Nome do meio.</td><td>String</td></tr><tr><td>name_suffix</td><td>Não</td><td>Sufixo do nome.</td><td>String</td></tr><tr><td>name_prefix</td><td>Não</td><td>Prefixo do nome.</td><td>String</td></tr><tr><td>formatted_name</td><td>Sim</td><td>Nome completo como normalmente aparece.</td><td>String</td></tr></tbody></table>

### Org <a href="#org" id="org"></a>

<table><thead><tr><th>Campo</th><th width="130">Obrigatório</th><th width="318">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>company</td><td>Não</td><td>Nome da organização do contato.</td><td>String</td></tr><tr><td>department</td><td>Não</td><td>Nome do departamento do contato.</td><td>String</td></tr><tr><td>title</td><td>Não</td><td>Título corporativo do contato.</td><td>String</td></tr></tbody></table>

#### Phone: <a href="#phone" id="phone"></a>

<table><thead><tr><th>Campo</th><th width="125">Obrigatório</th><th width="270">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>phone</td><td>Não</td><td>Número de telefone formatado.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrões: CELL, MAIN, IPHONE, HOME, WORK.</td><td>String</td></tr><tr><td>wa_id</td><td>Não</td><td>Identficador WhatsApp.</td><td>String</td></tr></tbody></table>

#### Url: <a href="#url" id="url"></a>

<table><thead><tr><th width="139">Campo</th><th>Obrigatório</th><th width="283">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>phone</td><td>Não</td><td>URL do contato.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

{% hint style="info" %}
Para os objetos que contêm um campo de tipo, os valores listados são considerados os valores padrões que podem ser vistos, no entanto, você pode definir nesse campo qualquer valor descritivo que desejar.
{% endhint %}


# Envio de mensagens de texto

Permite que mensagens sejam enviadas pela plataforma WhatsApp para um ou mais destinatários.

`POST https://api-messaging.wavy.global/v1/whatsapp/send`

O corpo da solicitação de qualquer solicitação deve conter um objeto JSON com os seguintes campos:

#### Base JSON: <a href="#base-json" id="base-json"></a>

<table><thead><tr><th>Field</th><th width="114">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>destinations</td><td>Sim</td><td>Lista de destinatários</td><td>Destination[]</td></tr><tr><td>message</td><td>Sim</td><td>Mensagem de texto que será enviada para a lista de destinatários</td><td>Message</td></tr><tr><td>flowId</td><td>Não</td><td>Identificação do fluxo do bot</td><td>String</td></tr><tr><td>defaultExtraInfo</td><td>Não</td><td>Dados adicionais que identifiquem o envio serão vinculados a todos os destinatários que receberão a mensagem</td><td>String</td></tr><tr><td>campaignAlias</td><td>Não</td><td>ID da campanha, está vinculado a todas as mensagens de envio</td><td>String</td></tr></tbody></table>

#### Destination: <a href="#destination" id="destination"></a>

<table><thead><tr><th>Field</th><th width="104">Required</th><th width="325">Details</th><th>Type</th></tr></thead><tbody><tr><td>correlationId</td><td>Não</td><td>Seu ID definido será retornado em uma mensagem de confirmação (retorno de chamada). Isso é útil nos casos em que você deseja acompanhar a mensagem enviada, já que você pode definir ids diferentes para mensagens diferentes.</td><td>String</td></tr><tr><td>destination</td><td>Sim</td><td>O número de telefone (código do país — 55 para o Brasil — e o estado devem estar presentes) para o qual a mensagem será enviada. Exemplos:5519900001111, +5519900001111, +55(19) 900001111</td><td>String</td></tr></tbody></table>

#### Message: <a href="#message" id="message"></a>

<table><thead><tr><th>Field</th><th width="106">Required</th><th width="307">Details</th><th>Type</th></tr></thead><tbody><tr><td>messageText</td><td>Sim</td><td>campo usado para caso você queira enviar uma mensagem personalizada em resposta a uma mensagem recebida.</td><td>text</td></tr><tr><td>image</td><td>Sim</td><td>Campo usado para o caso de você querer enviar um conteúdo de imagem.</td><td>Image</td></tr><tr><td>audio</td><td>Sim</td><td>Campo usado para o caso de você querer enviar um conteúdo de áudio</td><td>Audio</td></tr><tr><td>video</td><td>Sim</td><td>Campo usado para o caso de você querer enviar um conteúdo de vídeo.</td><td>Video</td></tr><tr><td>document</td><td>Sim</td><td>Campo usado para o caso de você querer enviar um arquivo de documento.</td><td>Document</td></tr><tr><td>location</td><td>Sim</td><td>Campo usado para o caso de você querer enviar um local.</td><td>Location</td></tr><tr><td>contacts</td><td>Sim</td><td>Campo utilizado para o caso de você querer enviar contato(s).</td><td>Contact[]</td></tr><tr><td>previewFirstUrl</td><td>Não</td><td>Controlar a visualização do primeiro URL enviado pelo aplicativo</td><td>Boolean</td></tr></tbody></table>

{% hint style="danger" %}
Apenas uma das seguintes opções de mídia deve ser especificada, seja 'mesageText', image', 'audio', 'document', 'location' ou 'contacts'
{% endhint %}

### Texto: <a href="#text" id="text"></a>

{% hint style="danger" %}
Somente uma mensagem personalizada deve ser enviada em resposta a uma mensagem recebida pelo usuário sempre que a sessão estiver aberta. Se a sessão não estiver aberta ou o usuário não tiver enviado uma mensagem, o Modelo deverá ser usado.
{% endhint %}

Exemplo de solicitação de texto

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "messageText":"test message"
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "messageText":"test message"
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "messageText":"test message"
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "messageText":"test message"
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "messageText":"test message"
   }
}
```

{% endtab %}
{% endtabs %}

### Image: <a href="#image" id="image"></a>

<table><thead><tr><th width="129">Field</th><th width="102">Required</th><th width="347">Details</th><th>Type</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo/extensão da imagem a ser enviada na mensagem. Opções disponíveis: JPG, JPEG, PNG.</td><td>String</td></tr><tr><td>caption</td><td>Não</td><td>Texto a ser apresentado ao usuário sob a imagem.</td><td>String</td></tr><tr><td>url</td><td>Sim</td><td>URL onde o conteúdo a ser enviado está hospedado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>Conteúdo codificado em Base64</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Apenas uma das seguintes opções deve ser especificada, seja 'url', caso você queira enviar usando um arquivo, ou 'data', caso você queira enviar a imagem usando codificação base64
{% endhint %}

> Exemplo de solicitação de imagem (URL)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}
{% endtabs %}

> Exemplo de solicitação de imagem (Base64)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "url":"https://...jpg",
         "caption":"image description"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "image":{
         "type":"JPG",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}
{% endtabs %}

### Audio: <a href="#audio" id="audio"></a>

<table><thead><tr><th width="144">Field</th><th width="113">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo/extensão do áudio a ser enviado na mensagem. Opções disponíveis: AAC, MP4, AMR, MP3, OGG.</td><td>String</td></tr><tr><td>url</td><td>Não</td><td>URL onde o conteúdo a ser enviado está hospedado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>Conteúdo codificado em Base64</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Apenas uma das seguintes opções deve ser especificada, seja 'url', caso você queira enviar usando um arquivo, ou 'data', caso você queira enviar o áudio usando codificação base64
{% endhint %}

> Exemplo de solicitação de áudio (URL)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "url":"https://...mp3"
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "url":"https://...mp3"
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "url":"https://...mp3"
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "url":"https://...mp3"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "url":"https://...mp3"
      }
   }
}
```

{% endtab %}
{% endtabs %}

> Exemplo de solicitação de áudio (Base64)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}
{% endtabs %}

#### Vídeo: <a href="#video" id="video"></a>

<table><thead><tr><th>Field</th><th width="119">Required</th><th width="309">Details</th><th>Type</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo/extensão do vídeo a ser enviado na mensagem. Opções disponíveis: MP4, 3gpp.</td><td>String</td></tr><tr><td>caption</td><td>Não</td><td>Texto a ser apresentado ao usuário sob o vídeo.</td><td>String</td></tr><tr><td>URL</td><td>Sim</td><td>URL onde o conteúdo a ser enviado está hospedado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>Conteúdo codificado em Base64</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Apenas uma das seguintes opções deve ser especificada, seja 'url', caso você queira enviar usando um arquivo, ou 'data', caso você queira enviar o vídeo usando codificação base64
{% endhint %}

> Exemplo de solicitação de Vídeo (URL)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "url":"https://...mp4",
         "caption":"video description"
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "url":"https://...mp4",
         "caption":"video description"
      }
   }
}

```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "url":"https://...mp4",
         "caption":"video description"
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "url":"https://...mp4",
         "caption":"video description"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "audio":{
         "type":"MP3",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}
{% endtabs %}

> Exemplo de solicitação de Vídeo (Base64)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "video":{
         "type":"MP4",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}
{% endtabs %}

#### Document: <a href="#document" id="document"></a>

<table><thead><tr><th width="126">Field</th><th width="109">Required</th><th width="365">Details</th><th>Type</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo/extensão do documento a ser enviado na mensagem. Opções disponíveis: PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX</td><td>String</td></tr><tr><td>caption</td><td>Sim</td><td>Texto a ser apresentado ao usuário sob o documento.</td><td>String</td></tr><tr><td>url</td><td>Sim</td><td>URL onde o conteúdo a ser enviado está hospedado.</td><td>String</td></tr><tr><td>data</td><td>Sim</td><td>Conteúdo codificado em Base64</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Apenas uma das seguintes opções deve ser especificada, seja 'url', caso você queira enviar usando um arquivo, ou 'data', caso você queira enviar o documento usando codificação base64
{% endhint %}

> Exemplo de solicitação de documento (URL)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "url":"https://...pdf",
         "caption":"pdf description"
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "url":"https://...pdf",
         "caption":"pdf description"
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "url":"https://...pdf",
         "caption":"pdf description"
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "url":"https://...pdf",
         "caption":"pdf description"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "url":"https://...pdf",
         "caption":"pdf description"
      }
   }
}
```

{% endtab %}
{% endtabs %}

> Exemplo de solicitação de documento (Base64)

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "document":{
         "type":"PDF",
         "data":"ZmlsZQ=="
      }
   }
}
```

{% endtab %}
{% endtabs %}

### Localização: <a href="#location" id="location"></a>

<table><thead><tr><th width="120">Field</th><th width="113">Required</th><th width="316">Details</th><th>Type</th></tr></thead><tbody><tr><td>geopoint</td><td>Sim</td><td>O geoponto do lugar. O formato deve ser: "latitude,longitude"</td><td>String</td></tr><tr><td>address</td><td>Não</td><td>Endereço do local.</td><td>String</td></tr><tr><td>name</td><td>Não</td><td>Nome do local.</td><td>String</td></tr></tbody></table>

> Exemplo de solicitação de local

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "location":{
         "geoPoint":"-22.894180,-47.047960",
         "name":"Wavy",
         "address":"Av. Cel. Silva Telles"
      }
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "location":{
         "geoPoint":"-22.894180,-47.047960",
         "name":"Wavy",
         "address":"Av. Cel. Silva Telles"
      }
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "location":{
         "geoPoint":"-22.894180,-47.047960",
         "name":"Wavy",
         "address":"Av. Cel. Silva Telles"
      }
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "location":{
         "geoPoint":"-22.894180,-47.047960",
         "name":"Wavy",
         "address":"Av. Cel. Silva Telles"
      }
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "location":{
         "geoPoint":"-22.894180,-47.047960",
         "name":"Wavy",
         "address":"Av. Cel. Silva Telles"
      }
   }
}
```

{% endtab %}
{% endtabs %}

### Contact: <a href="#contact" id="contact"></a>

<table><thead><tr><th>Field</th><th width="114">Required</th><th width="318">Details</th><th>Type</th></tr></thead><tbody><tr><td>addresses</td><td>Não</td><td>Endereço(s) de contato completo(s).</td><td>Address[]</td></tr><tr><td>birthday</td><td>Não</td><td>Data de aniversário como cadeia de caracteres formatada AAAA-MM-DD.</td><td>String</td></tr><tr><td>emails</td><td>Não</td><td>Endereço(s) de e-mail de contato.</td><td>Email[]</td></tr><tr><td>name</td><td>Não</td><td>Nome completo do contato.</td><td>Name</td></tr><tr><td>org</td><td>Não</td><td>Informações da organização de contato.</td><td>Org</td></tr><tr><td>phones</td><td>Não</td><td>Telefone(s) de contato.</td><td>Phone[]</td></tr><tr><td>urls</td><td>Não</td><td>URL(s) de contato.</td><td>Url[]</td></tr></tbody></table>

> Exemplo de solicitação de contatos

{% tabs %}
{% tab title="cURL" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "contacts":[
         {
            "addresses":[
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"1 Hacker Way",
                  "type":"HOME",
                  "zip":"94025"
               },
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"200 Jefferson Dr",
                  "type":"WORK",
                  "zip":"94025"
               }
            ],
            "birthday":"2012-08-18",
            "emails":[
               {
                  "email":"test@fb.com",
                  "type":"WORK"
               },
               {
                  "email":"test@whatsapp.com",
                  "type":"WORK"
               }
            ],
            "name":{
               "first_name":"John",
               "formatted_name":"John Smith",
               "last_name":"Smith"
            },
            "org":{
               "company":"WhatsApp",
               "department":"Design",
               "title":"Manager"
            },
            "phones":[
               {
                  "phone":"+1 (940) 555-1234",
                  "type":"HOME"
               },
               {
                  "phone":"+1 (650) 555-1234",
                  "type":"WORK",
                  "wa_id":"16505551234"
               }
            ],
            "urls":[
               {
                  "url":"https://www.fb.com",
                  "type":"WORK"
               }
            ]
         }
      ]
   }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "contacts":[
         {
            "addresses":[
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"1 Hacker Way",
                  "type":"HOME",
                  "zip":"94025"
               },
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"200 Jefferson Dr",
                  "type":"WORK",
                  "zip":"94025"
               }
            ],
            "birthday":"2012-08-18",
            "emails":[
               {
                  "email":"test@fb.com",
                  "type":"WORK"
               },
               {
                  "email":"test@whatsapp.com",
                  "type":"WORK"
               }
            ],
            "name":{
               "first_name":"John",
               "formatted_name":"John Smith",
               "last_name":"Smith"
            },
            "org":{
               "company":"WhatsApp",
               "department":"Design",
               "title":"Manager"
            },
            "phones":[
               {
                  "phone":"+1 (940) 555-1234",
                  "type":"HOME"
               },
               {
                  "phone":"+1 (650) 555-1234",
                  "type":"WORK",
                  "wa_id":"16505551234"
               }
            ],
            "urls":[
               {
                  "url":"https://www.fb.com",
                  "type":"WORK"
               }
            ]
         }
      ]
   }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "contacts":[
         {
            "addresses":[
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"1 Hacker Way",
                  "type":"HOME",
                  "zip":"94025"
               },
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"200 Jefferson Dr",
                  "type":"WORK",
                  "zip":"94025"
               }
            ],
            "birthday":"2012-08-18",
            "emails":[
               {
                  "email":"test@fb.com",
                  "type":"WORK"
               },
               {
                  "email":"test@whatsapp.com",
                  "type":"WORK"
               }
            ],
            "name":{
               "first_name":"John",
               "formatted_name":"John Smith",
               "last_name":"Smith"
            },
            "org":{
               "company":"WhatsApp",
               "department":"Design",
               "title":"Manager"
            },
            "phones":[
               {
                  "phone":"+1 (940) 555-1234",
                  "type":"HOME"
               },
               {
                  "phone":"+1 (650) 555-1234",
                  "type":"WORK",
                  "wa_id":"16505551234"
               }
            ],
            "urls":[
               {
                  "url":"https://www.fb.com",
                  "type":"WORK"
               }
            ]
         }
      ]
   }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "contacts":[
         {
            "addresses":[
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"1 Hacker Way",
                  "type":"HOME",
                  "zip":"94025"
               },
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"200 Jefferson Dr",
                  "type":"WORK",
                  "zip":"94025"
               }
            ],
            "birthday":"2012-08-18",
            "emails":[
               {
                  "email":"test@fb.com",
                  "type":"WORK"
               },
               {
                  "email":"test@whatsapp.com",
                  "type":"WORK"
               }
            ],
            "name":{
               "first_name":"John",
               "formatted_name":"John Smith",
               "last_name":"Smith"
            },
            "org":{
               "company":"WhatsApp",
               "department":"Design",
               "title":"Manager"
            },
            "phones":[
               {
                  "phone":"+1 (940) 555-1234",
                  "type":"HOME"
               },
               {
                  "phone":"+1 (650) 555-1234",
                  "type":"WORK",
                  "wa_id":"16505551234"
               }
            ],
            "urls":[
               {
                  "url":"https://www.fb.com",
                  "type":"WORK"
               }
            ]
         }
      ]
   }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
   "destinations":[
      {
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111"
      }
   ],
   "message":{
      "contacts":[
         {
            "addresses":[
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"1 Hacker Way",
                  "type":"HOME",
                  "zip":"94025"
               },
               {
                  "city":"Menlo Park",
                  "country":"United States",
                  "country_code":"us",
                  "state":"CA",
                  "street":"200 Jefferson Dr",
                  "type":"WORK",
                  "zip":"94025"
               }
            ],
            "birthday":"2012-08-18",
            "emails":[
               {
                  "email":"test@fb.com",
                  "type":"WORK"
               },
               {
                  "email":"test@whatsapp.com",
                  "type":"WORK"
               }
            ],
            "name":{
               "first_name":"John",
               "formatted_name":"John Smith",
               "last_name":"Smith"
            },
            "org":{
               "company":"WhatsApp",
               "department":"Design",
               "title":"Manager"
            },
            "phones":[
               {
                  "phone":"+1 (940) 555-1234",
                  "type":"HOME"
               },
               {
                  "phone":"+1 (650) 555-1234",
                  "type":"WORK",
                  "wa_id":"16505551234"
               }
            ],
            "urls":[
               {
                  "url":"https://www.fb.com",
                  "type":"WORK"
               }
            ]
         }
      ]
   }
}
```

{% endtab %}
{% endtabs %}

### Address: <a href="#address" id="address"></a>

<table><thead><tr><th width="127">Field</th><th width="123">Required</th><th width="319">Details</th><th>Type</th></tr></thead><tbody><tr><td>street</td><td>Não</td><td>Número e nome da rua.</td><td>String</td></tr><tr><td>city</td><td>Não</td><td>Nome da cidade</td><td>String</td></tr><tr><td>state</td><td>Não</td><td>Abreviação do estado</td><td>String</td></tr><tr><td>zip</td><td>Não</td><td>Código postal</td><td>String</td></tr><tr><td>country</td><td>Não</td><td>Nome completo do país</td><td>String</td></tr><tr><td>country_code</td><td>Não</td><td>Abreviatura do país com duas letras</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrão: CASA, TRABALHO</td><td>String</td></tr></tbody></table>

### Email: <a href="#email" id="email"></a>

<table><thead><tr><th width="107">Field</th><th width="90">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>email</td><td>Não</td><td>Endereço de email</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrão: CASA, TRABALHO</td><td>String</td></tr></tbody></table>

### Name: <a href="#name" id="name"></a>

<table><thead><tr><th>Field</th><th width="100">Required</th><th width="306">Details</th><th>Type</th></tr></thead><tbody><tr><td>first_name</td><td>Não</td><td>Primeiro nome</td><td>String</td></tr><tr><td>last_name</td><td>Não</td><td>Apelido</td><td>String</td></tr><tr><td>middle_name</td><td>Não</td><td>Nome do meio</td><td>String</td></tr><tr><td>name_suffix</td><td>Não</td><td>Sufixo do nome</td><td>String</td></tr><tr><td>name_prefix</td><td>Não</td><td>Prefixo do nome</td><td>String</td></tr><tr><td>formatted_name</td><td>Não</td><td>Nome completo</td><td>String</td></tr></tbody></table>

### Org: <a href="#org" id="org"></a>

<table><thead><tr><th width="145">Field</th><th width="111">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>company</td><td>Não</td><td>Nome da empresa do contato.</td><td>String</td></tr><tr><td>department</td><td>Não</td><td>Nome do departamento do contato.</td><td>String</td></tr><tr><td>title</td><td>Não</td><td>Título comercial do contato.</td><td>String</td></tr></tbody></table>

### Phone: <a href="#phone" id="phone"></a>

<table><thead><tr><th width="97">Field</th><th width="89">Required</th><th width="334">Details</th><th>Type</th></tr></thead><tbody><tr><td>phone</td><td>Não</td><td>Número de telefone formatado.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrão: CELULAR, PRINCIPAL, IPHONE, CASA, TRABALHO.</td><td>String</td></tr><tr><td>wa_id</td><td>Não</td><td>ID do WhatsApp.</td><td>String</td></tr></tbody></table>

### Url: <a href="#url" id="url"></a>

<table><thead><tr><th width="111">Field</th><th width="125">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>phone</td><td>Não</td><td>URL de contato.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrão: CASA, TRABALHO.</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Para os objetos que contêm um campo de tipo, os valores listados são simplesmente considerados os valores padrão que podem ser vistos, no entanto, você pode definir o campo para qualquer valor descritivo que escolher.
{% endhint %}


# Envio de Template

Caso você ainda não possua um Template criado e aprovado para uso, consulte a documentação sobre [Template de WhatsApp](https://docs.wavy.global/whatsapp/template) para obter mais informações sobre como fazer esse procedimento.

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

<table><thead><tr><th width="165">Campo</th><th width="123">Obrigatório</th><th width="296">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>destinations</td><td>Sim</td><td>Detalhes sobre os identificadores do envio e destino</td><td>Destination[]</td></tr><tr><td>message</td><td>Sim</td><td>Detalhes sobre o objeto MESSAGE que será enviado</td><td>mensagem</td></tr><tr><td>defaultExtraInfo</td><td>Não</td><td>Dados adicionais que identificam a submissão que será relacionada a todos que receberem a mensagem</td><td>String</td></tr><tr><td>campaignAlias</td><td>Não</td><td>Campaign ID, é relacionada a todas as mensagens enviadas</td><td>String</td></tr></tbody></table>

> Exemplo de requisição com Template

{% tabs %}
{% tab title="cURL" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
}
```

{% endtab %}
{% endtabs %}

### Destinations: <a href="#destinations" id="destinations"></a>

<table><thead><tr><th width="124">Campo</th><th width="119">Obrigatório</th><th width="398">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>correlationId</td><td>Não</td><td>Id definido pelo cliente que será retornado no status da mensagem (callback). Você pode usar esse id para rastrear envios de mensagens de maneira personalizada.</td><td>String</td></tr><tr><td>destination</td><td>Sim</td><td>Número de telefone que receberá a mensagem (código do país (55 para Brasil) e DDD são obrigatórios). Exemplos: 5519900001111, +5519900001111, +55(19) 900001111.</td><td>String</td></tr></tbody></table>

### Message: <a href="#message" id="message"></a>

<table><thead><tr><th width="123">Campo</th><th width="120">Obrigatório</th><th width="401">Detalhes</th><th>Type</th></tr></thead><tbody><tr><td>template</td><td>Sim</td><td>Detalhes sobre o objeto TEMPLATE que será enviado.</td><td>Template</td></tr></tbody></table>

### Template: <a href="#template" id="template"></a>

<table><thead><tr><th width="159">Campo</th><th width="125">Obrigatório</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>elementName</td><td>Sim</td><td>Nome do modelo cadastrado e aprovado.</td><td>String</td></tr><tr><td>header</td><td>Sim, quando o Template possuir parâmetro no header</td><td>Objetos do cabeçalho com seus parâmetros</td><td>Header</td></tr><tr><td>bodyParameters</td><td>Sim (caso o template use variáveis)</td><td>A soma de todos os caracteres do corpo, considerando campos fixos e dinâmicos, é limitada a 1024 caracteres se o modelo registrado tiver apenas o corpo. É limitado a 160 caracteres se você tiver um cabeçalho ou rodapé.</td><td>Lista de strings</td></tr><tr><td>languageCode</td><td>Sim, quando houver mais de um idioma cadastrado para o mesmo template.</td><td>Codes: pt_BR, en, es, en_US, en_GB, pt_PT, es_AR, es_ES, es_MX, it, fr</td><td>String</td></tr><tr><td>buttons</td><td>Sim (Quando há no template)</td><td>A aprovação dos botões no template</td><td>Buttons</td></tr></tbody></table>

> Exemplo de requisição de Template com Header e Parâmetros

{% tabs %}
{% tab title="cURL" %}

```
{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}
```

{% endtab %}
{% endtabs %}

### Header <a href="#header" id="header"></a>

<table><thead><tr><th>Campo</th><th width="147">Obrigatório</th><th width="265">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>parameters</td><td>Opcional</td><td>Lista de parâmetros que serão substituídos no texto do cabeçalho. Nota: Caso esteja presente, o cabeçalho não deve ter título nem nenhum elemento.</td><td>String</td></tr><tr><td>title</td><td>Opcional</td><td>O título deve ter até 60 caracteres</td><td>String</td></tr><tr><td>(element)</td><td>Sim</td><td><strong>Opções:</strong> text (padrão), image, audio, document, video.</td><td>Object</td></tr></tbody></table>

### Element <a href="#element" id="element"></a>

<table><thead><tr><th width="119">Campo</th><th width="124">Obrigatório</th><th width="404">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>url</td><td>Sim</td><td>URL da mídia. Use somente com URLs HTTP/HTTPS.</td><td>String</td></tr><tr><td>type</td><td>Sim</td><td>Tipo da midia (JPEG, MP3, PDF, etc)</td><td>String</td></tr></tbody></table>

> Exemplo de requisição de Template com Header e Buttons do tipo Flows

{% tabs %}
{% tab title="cURL" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
      }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_flow_template",
            "languageCode": "pt_BR",
            "languagePolicy": "DETERMINISTIC",
            "header": {
                "image": {
                    "type": "JPG",
                    "url": "https://some_image.jpg"
                }
            },
            "buttons": [
                {
                    "type":"FLOW",
                    "flowDetails": {
                        "type": "action",
                        "action": {
                            "flowToken": "some_token",
                            "flowActionData": "some_data"
                        }
                    }
                }
            ]
        }
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
      }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_flow_template",
            "languageCode": "pt_BR",
            "languagePolicy": "DETERMINISTIC",
            "header": {
                "image": {
                    "type": "JPG",
                    "url": "https://some_image.jpg"
                }
            },
            "buttons": [
                {
                    "type":"FLOW",
                    "flowDetails": {
                        "type": "action",
                        "action": {
                            "flowToken": "some_token",
                            "flowActionData": "some_data"
                        }
                    }
                }
            ]
        }
    }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
      }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_flow_template",
            "languageCode": "pt_BR",
            "languagePolicy": "DETERMINISTIC",
            "header": {
                "image": {
                    "type": "JPG",
                    "url": "https://some_image.jpg"
                }
            },
            "buttons": [
                {
                    "type":"FLOW",
                    "flowDetails": {
                        "type": "action",
                        "action": {
                            "flowToken": "some_token",
                            "flowActionData": "some_data"
                        }
                    }
                }
            ]
        }
    }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
      }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_flow_template",
            "languageCode": "pt_BR",
            "languagePolicy": "DETERMINISTIC",
            "header": {
                "image": {
                    "type": "JPG",
                    "url": "https://some_image.jpg"
                }
            },
            "buttons": [
                {
                    "type":"FLOW",
                    "flowDetails": {
                        "type": "action",
                        "action": {
                            "flowToken": "some_token",
                            "flowActionData": "some_data"
                        }
                    }
                }
            ]
        }
    }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
      }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_flow_template",
            "languageCode": "pt_BR",
            "languagePolicy": "DETERMINISTIC",
            "header": {
                "image": {
                    "type": "JPG",
                    "url": "https://some_image.jpg"
                }
            },
            "buttons": [
                {
                    "type":"FLOW",
                    "flowDetails": {
                        "type": "action",
                        "action": {
                            "flowToken": "some_token",
                            "flowActionData": "some_data"
                        }
                    }
                }
            ]
        }
    }
}
```

{% endtab %}
{% endtabs %}

### Buttons <a href="#element" id="element"></a>

<table><thead><tr><th width="119">Campo</th><th width="124">Obrigatório</th><th width="404">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Tipo do botão (URL, QUICK_REPLY, CALL, ORDER_DETAILS, FLOW)</td><td>String</td></tr><tr><td>flowDetails</td><td>Sim se type for FLOW</td><td>Estrutura e conteúdo os detalhes do FLOW a ser iniciado.</td><td>flowDetails</td></tr></tbody></table>

### FlowDetails <a href="#element" id="element"></a>

<table><thead><tr><th width="119">Campo</th><th width="124">Obrigatório</th><th width="404">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>type</td><td>Sim</td><td>Define o tipo da ação do fluxo. Atualmente, o único valor suportado é action.</td><td>String</td></tr><tr><td>action</td><td>Sim</td><td>Objeto que contém os dados e o token do fluxo.</td><td>action</td></tr></tbody></table>

### Action <a href="#element" id="element"></a>

<table><thead><tr><th width="119">Campo</th><th width="124">Obrigatório</th><th width="404">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>flowToken</td><td>Opcional</td><td>Um token único para identificar a sessão deste fluxo específico. Se não for fornecido, um valor padrão "unused" será adicionado</td><td>String</td></tr><tr><td>flowActionData</td><td>Opcional</td><td>Conteúdo usado para pré-preencher dados nas telas do seu fluxo. É útil para iniciar o fluxo com informações contextuais (ex: nome do produto, detalhes de um pedido). Não necessário caso seu Flow consulte o ponto de extremidade para obter os dados através do INIT.</td><td>String</td></tr></tbody></table>


# Enviar mensagens interativas

Para enviar mensagens usando recursos interativos, também seguiremos o formato [JSON BASE](https://doc-messaging.wavy.global/?shell#base-json). O objeto de mensagem deve ter um único campo:`interactive`

#### Mensagem <a href="#message" id="message"></a>

<table><thead><tr><th>Campo</th><th width="125">Necessário</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>interativo</td><td>Sim</td><td>Campo usado para enviar uma mensagem interativa</td><td>Interativo</td></tr></tbody></table>

> Exemplo de solicitação de mensagem de lista de vários produtos

{% tabs %}
{% tab title="cURL" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "sections": [
          {
            "title": "Cakes",
            "productItems": [
              {
                "productRetailerId": "product-1-SKU"
              },
              {
                "productRetailerId": "product-2-SKU"
              }
            ]
          },
          {
            "title": "Juices",
            "productItems": [
              {
                "productRetailerId": "product-3-SKU"
              },
              {
                "productRetailerId": "product-4-SKU"
              }
            ]
          }
        ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "sections": [
          {
            "title": "Cakes",
            "productItems": [
              {
                "productRetailerId": "product-1-SKU"
              },
              {
                "productRetailerId": "product-2-SKU"
              }
            ]
          },
          {
            "title": "Juices",
            "productItems": [
              {
                "productRetailerId": "product-3-SKU"
              },
              {
                "productRetailerId": "product-4-SKU"
              }
            ]
          }
        ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "sections": [
          {
            "title": "Cakes",
            "productItems": [
              {
                "productRetailerId": "product-1-SKU"
              },
              {
                "productRetailerId": "product-2-SKU"
              }
            ]
          },
          {
            "title": "Juices",
            "productItems": [
              {
                "productRetailerId": "product-3-SKU"
              },
              {
                "productRetailerId": "product-4-SKU"
              }
            ]
          }
        ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "sections": [
          {
            "title": "Cakes",
            "productItems": [
              {
                "productRetailerId": "product-1-SKU"
              },
              {
                "productRetailerId": "product-2-SKU"
              }
            ]
          },
          {
            "title": "Juices",
            "productItems": [
              {
                "productRetailerId": "product-3-SKU"
              },
              {
                "productRetailerId": "product-4-SKU"
              }
            ]
          }
        ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "sections": [
          {
            "title": "Cakes",
            "productItems": [
              {
                "productRetailerId": "product-1-SKU"
              },
              {
                "productRetailerId": "product-2-SKU"
              }
            ]
          },
          {
            "title": "Juices",
            "productItems": [
              {
                "productRetailerId": "product-3-SKU"
              },
              {
                "productRetailerId": "product-4-SKU"
              }
            ]
          }
        ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}
{% endtabs %}

> Exemplo de solicitação de mensagem de lista de produto único

{% tabs %}
{% tab title="cURL" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "productRetailerId": "product-sku"
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "productRetailerId": "product-sku"
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "productRetailerId": "product-sku"
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "productRetailerId": "product-sku"
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "PRODUCT_LIST",
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "productListAction": {
        "catalogId": "catalog-id",
        "productRetailerId": "product-sku"
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}
{% endtabs %}

### Interativo

<table><thead><tr><th>Field</th><th width="174">Required</th><th width="317">Details</th><th>Type</th></tr></thead><tbody><tr><td>messageInteractiveType</td><td>Sim</td><td>Tipo da mensagem interativa. Opções disponíveis: , e <code>PRODUCT_LISTLISTREPLY_BUTTON</code></td><td>String</td></tr><tr><td>header</td><td>Necessário para mensagens de vários produtos. Negado para mensagens de produto único. Opcional para outros tipos</td><td>Conteúdo do cabeçalho</td><td>Header</td></tr><tr><td>body</td><td>Sim, exceto para mensagens de produto único</td><td>Texto principal</td><td>Body</td></tr><tr><td>footer</td><td>Não</td><td>Texto do rodapé</td><td>Footer</td></tr><tr><td>productListAction</td><td>Quando o tipo interativo é <code>PRODUCT_LIST</code></td><td>Contém os parâmetros de tipo interativo</td><td>ProductListAction</td></tr><tr><td>listAction</td><td>Quando o tipo interativo é <code>LIST</code><br></td><td>Contém os parâmetros de tipo interativo</td><td>ListAction</td></tr><tr><td>replyButtonAction</td><td>Quando o tipo interativo é <code>REPLY_BUTTON</code></td><td>Contém os parâmetros de tipo interativo</td><td>ReplyButtonAction</td></tr><tr><td>alternativeText</td><td>Não</td><td>Texto que será enviado caso o destino não suporte Mensagem Interativa</td><td>String</td></tr></tbody></table>

{% hint style="danger" %}
Exatamente um desses campos deve ser preenchido
{% endhint %}

{% hint style="danger" %}
Os tipos de mensagem interativa 'LIST' e 'PRODUCT\_LIST' aceitam apenas o campo 'texto'
{% endhint %}

{% hint style="danger" %}
'MENSAGENS DA LISTA ÚNICA DE PRODUTOS' NÃO aceita o campo 'cabeçalho'
{% endhint %}

Corpo/Rodapé

<table><thead><tr><th width="104">Field</th><th width="115">Required</th><th width="355">Details</th><th>Type</th></tr></thead><tbody><tr><td>text</td><td>Sim</td><td><p>Não pode ser uma String vazia. Permite Emojis &#x26; markdown.</p><p></p><p>Corpo: Max 1024 caracteres, espaço em branco é cortado. Rodapé: Max 60 caracteres.</p></td><td>String</td></tr></tbody></table>

### ProductListAction (para mensagens de produto único) <a href="#productlistaction-for-single-product-messages" id="productlistaction-for-single-product-messages"></a>

| Campo             | Necessário | Detalhes                                               | Tipo   |
| ----------------- | ---------- | ------------------------------------------------------ | ------ |
| catalogId         | Sim        | O catalogId configurado no Gerenciador de Negócios     | String |
| productRetailerId | Sim        | A ID do produto configurada no Gerenciador de Negócios | String |

### ProductListAction (para mensagens de vários produtos) <a href="#productlistaction-for-multi-product-messages" id="productlistaction-for-multi-product-messages"></a>

| Campo     | Necessário | Detalhes                                                    | Tipo        |
| --------- | ---------- | ----------------------------------------------------------- | ----------- |
| catalogId | Sim        | O catalogId configurado no Gerenciador de Negócios          | String      |
| sections  | Sim        | Matriz de pelo menos uma Seção. Mínimo de 1 e máximo de 10. | Section \[] |

> Exemplo de solicitação de mensagem de lista

{% tabs %}
{% tab title="cURL" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "title": "Section One",
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "title": "Section One",
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

```

{% endtab %}

{% tab title="Python" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "title": "Section One",
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

```

{% endtab %}

{% tab title="PHP" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "title": "Section One",
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

```

{% endtab %}

{% tab title="Java" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "title": "Section One",
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

```

{% endtab %}
{% endtabs %}

### **Section**

<table><thead><tr><th>Field</th><th width="124">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>title</td><td>Sim</td><td>Texto da seção exibido.</td><td>String</td></tr><tr><td>productItems</td><td>Sim</td><td>Matriz de pelo menos um item de produto. Máximo de 30 produtos em todas as seções.</td><td>ProductItem[]</td></tr></tbody></table>

### **Product Item**

<table><thead><tr><th>Field</th><th width="102">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>productRetailerId</td><td>Sim</td><td>A ID do produto configurada no Gerenciador de Negócios</td><td>String</td></tr></tbody></table>

### ListAction <a href="#listaction" id="listaction"></a>

<table><thead><tr><th>Field</th><th width="103">Required</th><th width="315">Details</th><th>Type</th></tr></thead><tbody><tr><td>button</td><td>Sim</td><td>Conteúdo do botão para mensagem</td><td>String</td></tr><tr><td>sections</td><td>Sim</td><td>Matriz de seções. Deve haver pelo menos 1 seção</td><td>Section[]</td></tr></tbody></table>

### **Section**

<table><thead><tr><th width="125">Field</th><th width="99">Required</th><th width="327">Details</th><th>Type</th></tr></thead><tbody><tr><td>title</td><td>Sim</td><td>Título da seção que será exibido para o usuário. Máximo de 24 caracteres. Só é necessário se você tiver mais de uma seção</td><td>String</td></tr><tr><td>rows</td><td>Sim</td><td>Matriz de linhas. Deve haver pelo menos 1 linha e no máximo 10 linhas em todas as seções</td><td>Row[]</td></tr></tbody></table>

### **Row**

<table><thead><tr><th width="144">Field</th><th width="109">Required</th><th width="258">Details</th><th>Type</th></tr></thead><tbody><tr><td>identifier</td><td>Sim</td><td>Identificador exclusivo da linha</td><td>String</td></tr><tr><td>title</td><td>Sim</td><td>Conteúdo do título da linha</td><td>String</td></tr><tr><td>description</td><td>Não</td><td>Conteúdo da descrição da linha</td><td>String</td></tr></tbody></table>

### ReplyButtonAction <a href="#replybuttonaction" id="replybuttonaction"></a>

<table><thead><tr><th width="118">Field</th><th width="125">Required</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>buttons</td><td>Sim</td><td>Matriz de um, dois ou três botões</td><td>Button[]</td></tr></tbody></table>

### **Button**

| Field | Required | Details            | Type  |
| ----- | -------- | ------------------ | ----- |
| reply | Sim      | Estrutura do botão | Reply |

### **Reply**

| Field   | Required | Details                                                                                                                        | Type   |
| ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | ------ |
| title   | Sim      | Texto do botão exibido. Máximo de 20 caracteres                                                                                | String |
| payload | Sim      | Informações extras que são retornadas no retorno de chamada (como já acontece para os botões Modelo). Máximo de 256 caracteres | String |

> Exemplo de solicitação de mensagem ReplyButton

{% tabs %}
{% tab title="cURL" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "https://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "https://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "https://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Wavy",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "https://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "https://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "https://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Wavy",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "https://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "https://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "https://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Wavy",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "https://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "https://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "https://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Wavy",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "https://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "https://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "https://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Wavy",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ]
      },
      "alternativeText": "Simple message text"
    }
  }
}
```

{% endtab %}
{% endtabs %}


# Resposta de código de status HTTP comum

#### Resposta de solicitação bem-sucedida (200) <a href="#successful-request-response-200" id="successful-request-response-200"></a>

Se bem-sucedida, a resposta contém uma lista de destinatários ("destinos") com uuids gerados do lado do aplicativo.

```
   "Id":"5efc3581-b8e8-11e7-9895-a6aabe61edb5",
   "destinations":[
      {
         "id":"5efc3581-b8e8-11e7-9895-a6aabe61edb5",
         "correlationId":"MyCorrelationId",
         "destination":"5519900001111."
      }
   ]
}

```

#### Resposta a erro de autenticação (401) <a href="#authentication-error-response-401" id="authentication-error-response-401"></a>

Se houver um problema na autenticação do usuário, a resposta mostrará a seguinte mensagem de erro.

```
{
  "errorCode": 401,
  "errorMessage": "Authentication Error: No user was found with this combination of username and authentication token."
}
```


# Retorno de chama de atualização de status

A cada atualização sobre o status das mensagens enviadas (confirmação de entrega para o usuário final, leitura de mensagens, etc.), um retorno de chamada/webhook é enviado. Os retornos de chamada são

<table><thead><tr><th width="154">Field</th><th width="375">Details</th><th>Type</th></tr></thead><tbody><tr><td>total</td><td>Número de retornos de chamada na chamada.</td><td>String</td></tr><tr><td>data</td><td>Lista de retorno de chamada.</td><td>Data[]</td></tr><tr><td>clientInfo</td><td>Informações ao Cliente</td><td>ClientInfo</td></tr></tbody></table>

#### Data: <a href="#data" id="data"></a>

<table><thead><tr><th width="180">Field</th><th width="363">Details</th><th>Type</th></tr></thead><tbody><tr><td>id</td><td>ID da última mensagem.</td><td>String</td></tr><tr><td>correlationId</td><td>Um ID exclusivo definido por você para corresponder ao status da mensagem (retorno de chamada e DLR). Esse parâmetro é opcional e você pode usar o ID gerado pelo ChatClub para essa correspondência.</td><td>String</td></tr><tr><td>destination</td><td>Telefone para o qual a mensagem foi enviada (incluindo o código do país). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>origin</td><td>Telefone que identifica a conta do WhatsApp (incluindo o código do país). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>campaignId</td><td>ID de campanha definido anteriormente.</td><td>String</td></tr><tr><td>campaignAlias</td><td>Alias de campanha definidos anteriormente.</td><td>String</td></tr><tr><td>extraInfo</td><td>Informações extras enviadas com a mensagem original.</td><td>String</td></tr><tr><td>sent</td><td>Indica se a mensagem foi enviada.</td><td>Boolean</td></tr><tr><td>sentStatusCode</td><td>Código de status gerado pelo ChatClub para mensagem indicando o status de envio.</td><td>Number</td></tr><tr><td>sentStatus</td><td>Descrição do status enviado.</td><td>Boolean</td></tr><tr><td>sentDate</td><td>Data em que a mensagem foi enviada. Formato: aaaa-MM-dd'T'HH:mm:ssZ.</td><td>String</td></tr><tr><td>sentAt</td><td>Hora em que a mensagem foi enviada, usando o formato Unix_time</td><td>Number</td></tr><tr><td>delivered</td><td>Indica se a mensagem foi entregue ao destino.</td><td>Boolean</td></tr><tr><td>deliveredStatusCode</td><td>Código de status gerado pelo ChatClub para mensagem indicando que a mensagem foi entregue.</td><td>Number</td></tr><tr><td>deliveredStatus</td><td>Descrição do status de entrega.</td><td>String</td></tr><tr><td>deliveredDate</td><td>Data em que a mensagem foi entregue. Formato:: aaaa-MM-dd'T'HH:mm:ssZ</td><td>String</td></tr><tr><td>deliveredAt</td><td>Hora em que a mensagem foi entregue, usando Unix_time formato</td><td>Number</td></tr><tr><td>read</td><td>Indica se a mensagem foi lida pelo destino.</td><td>Boolean</td></tr><tr><td>readDate</td><td>Data em que a mensagem foi lida. Formato: aaaa-MM-dd'T'HH:mm:ssZ</td><td>String</td></tr><tr><td>readAt</td><td>Hora em que a mensagem foi lida, usando o formato Unix_time</td><td>String</td></tr><tr><td>updatedDate</td><td>Data em que o status da mensagem foi atualizado. Formato: aaaa-MM-dd'T'HH:mm:ssZ</td><td>String</td></tr><tr><td>updatedAt</td><td>Data em que o status da mensagem foi atualizado, usando o formato Unix_time</td><td>String</td></tr><tr><td>type</td><td>O tipo de entidade sobre o qual esse objeto de status se refere. Atualmente, a única opção disponível é "mensagem".</td><td>String</td></tr><tr><td>conversation</td><td>O objeto de conversação, que contém em si id, origin.type e expiration. Esse objeto estava relacionado ao novo modelo faturável de mensagens de whatsapp. <em>Veja a</em> <a href="https://developers.facebook.com/docs/whatsapp/api/webhooks/components#conversation-object"><em>conversa do Whatsapp</em></a><em>.</em></td><td>Conversation</td></tr></tbody></table>

### ClientInfo Op <a href="#clientinfo-op" id="clientinfo-op"></a>

| Field        | Details                     | Type   |
| ------------ | --------------------------- | ------ |
| customerId   | Identificação do cliente.   | Number |
| subAccountId | Identificação de subcontas. | Number |
| userId       | Identificação do usuário.   | Number |

### Status <a href="#status" id="status"></a>

Status que pode ser enviado no retorno de chamada:

<table><thead><tr><th width="103">Code</th><th>Name</th><th width="169">Short Description</th><th>Detailed Description</th></tr></thead><tbody><tr><td>1</td><td>ROUTED_SUCCESS</td><td>Routed</td><td>Status de roteamento interno intermediário. As mensagens não são persistentes com esse status, portanto, não temos mensagens em relatórios com esse status</td></tr><tr><td>2</td><td>SENT_SUCCESS</td><td>Sent</td><td>Mensagem enviada com sucesso para operadora ou contêiner do WhatsApp.</td></tr><tr><td>3</td><td>CARRIER_ACCEPTED_SUCCESS</td><td>Carrier Accepted</td><td>Status de roteamento intermediário na transportadora. As mensagens não são persistentes com esse status, portanto, não temos mensagens em relatórios com esse status</td></tr><tr><td>4</td><td>DELIVERED_SUCCESS</td><td>Delivered</td><td>Mensagem entregue com sucesso da operadora ou do contêiner do WhatsApp para o dispositivo do destinatário.</td></tr><tr><td>5</td><td>READ_SUCCESS</td><td>Message read</td><td>Mensagem aberta e exibida para o usuário no aplicativo WhatsApp. Não temos esse status no SMS</td></tr><tr><td>101</td><td>EXPIRED</td><td>Expired</td><td>A mensagem TTL expirou.</td></tr><tr><td>102</td><td>CARRIER_COMMUNICATION_ERROR</td><td>Carrier communication error</td><td>Status indicando que estávamos tendo problemas para estabelecer comunicação com a operadora ou com o contêiner do WhatsApp e a mensagem não pôde ser enviada.</td></tr><tr><td>103</td><td>REJECTED_BY_CARRIER</td><td>Rejected by carrier</td><td>Status indicando que a operadora ou o contêiner do WhatsApp rejeitou a mensagem. Pode ser devido a vários motivos, como uma fila cheia na operadora, um número inválido para a operadora, um modelo de WhatsApp sem o idioma ou parâmetros ausentes. Ou qualquer outro erro interno do transportador ou do contêiner</td></tr><tr><td>104</td><td>NOT_DELIVERED</td><td>Message not delivered</td><td>Mensagem enviada com sucesso para operadora ou contêiner do WhatsApp, mas não entregue no dispositivo do usuário. Pode ser porque o dispositivo do usuário está fora de alcance; o número foi desativado ou bloqueado; Para o WhatsApp pode ser porque o conteúdo (mídia) não pode ser enviado ao usuário ou porque o destinatário não pode receber a mensagem devido a limites ou spam.</td></tr><tr><td>105</td><td>WA_MO_MEDIA_UNRETRYABLE_EXCEPTION</td><td>Retryable media error</td><td>Status do WhatsApp MO que contém mídia. Esse status indica que uma mídia não pode ser baixada do contêiner e não há necessidade de tentar novamente.</td></tr><tr><td>106</td><td>WA_MO_MEDIA_RETRYABLE_EXCEPTION</td><td>Not retryable media error</td><td>Status do WhatsApp MO que contém mídia. Esse status indica que uma mídia não pode ser baixada do contêiner, mas é possível tentar novamente</td></tr><tr><td>107</td><td>WA_MO_MEDIA_UNKNOWN_EXCEPTION</td><td>Media message unknown error</td><td>Status do WhatsApp MO que contém mídia. Esse status indica que uma mídia não pode ser baixada do contêiner e o erro é desconhecido.</td></tr><tr><td>108</td><td>WA_MO_MEDIA_MESSAGE_WITHOUT_FILE_ID_EXCEPTION</td><td>Media message without content</td><td>A mídia não pode ser processada corretamente quando enviada ao Felix, devido ao seu conteúdo vazio.</td></tr><tr><td>109</td><td>WA_MT_UNKNOWN_EXCEPTION</td><td>Unknown error (MT)</td><td>MT Error Status, indica que ocorreu um erro não relacionado ao conteúdo da mensagem em si, como tempo limite de conexão, conexão interrompida, erro interno ou erro com autenticação ssl.</td></tr><tr><td>110</td><td>WA_DATABASE_ERROR</td><td>Error with WhatsApp container’s database</td><td>Indica que ocorreu um erro com o banco de dados de contêiner (WhatsApp)</td></tr><tr><td>111</td><td>WA_MT_BLOCKED_BY_SPAM_RATE_LIMIT</td><td>Blocked for exceeding the amount of shipments (MT)</td><td>Bloqueio quando muitas mensagens idênticas são enviadas mais de uma vez para um determinado usuário, então o contêiner é bloqueado e as mensagens não são enviadas.</td></tr><tr><td>112</td><td>WA_MT_DESTINATION_INCAPABLE</td><td>Recipient unable to receive messages (MT)</td><td>O destinatário da mensagem não tem uma versão mais atualizada do WhatsApp ou, por algum outro motivo, não pode receber a mensagem enviada</td></tr><tr><td>201</td><td>NO_CREDIT</td><td>No credit</td><td>A verificação de crédito é feita no momento da solicitação de envio. Portanto, não temos esse status em mensagens persistentes. Acredito que esse status só é usado no B2C para shortcodes que são cobrados, então a mensagem pode ser recusada se o usuário não tiver crédito.</td></tr><tr><td>202</td><td>INVALID_DESTINATION_NUMBER</td><td>Invalid destination number</td><td>O número do destinatário é inválido e a mensagem não será enviada para a operadora ou contêiner do WhatsApp</td></tr><tr><td>203</td><td>BLACKLISTED</td><td>Destination in blocklist</td><td>O cliente adicionou o número à lista de bloqueio e a mensagem não será enviada para a operadora ou contêiner do WhatsApp</td></tr><tr><td>204</td><td>DESTINATION_BLOCKED_BY_OPTOUT</td><td>Destination in optOut</td><td>O usuário enviou o comando "exit" e foi adicionado à lista de opt-out. A mensagem não será enviada.</td></tr><tr><td>205</td><td>DESTINATION_MESSAGE_LIMIT_REACHED</td><td>Message limit reached</td><td>Indica que o contêiner está sobrecarregado e não pode receber mais mensagens.</td></tr><tr><td>207</td><td>INVALID_MESSAGE_TEXT</td><td>Message text is invalid</td><td>Envios de modelo que não estão habilitados na conta do cliente. Ou até mesmo parâmetros inválidos para a mensagem. Não temos palavras proibidas para o WhatsApp.</td></tr><tr><td>209</td><td>INVALID_CONTENT</td><td>Invalid message content</td><td>Indica que algum parâmetro de mensagem é inválido ou ausente.</td></tr><tr><td>210</td><td>INVALID_SESSION</td><td>Invalid session</td><td>Indica que foi feita uma tentativa de enviar um texto ou mídia sem que a sessão tenha sido aberta por um MO. Somente modelos são permitidos com a sessão fechada.</td></tr><tr><td>211</td><td>DESTINATION_BLOCKED_BY_OPT_IN</td><td>Destination blocked by optIn</td><td>O número não está na lista de opt-in e, portanto, a mensagem não será enviada.</td></tr><tr><td>212</td><td>DESTINATION_BLOCKED_BY_WHITELIST</td><td>Destination blocked by allowlist</td><td>O número não está na lista de números permitidos e, portanto, a mensagem não será enviada..</td></tr><tr><td>215</td><td>CUSTOMER_QUOTA_BLOCKED</td><td>Client blocked by quota limit</td><td>Status que indica que o cliente atingiu sua cota (mensal/diária) para envio de mensagens e, portanto, a mensagem não será enviada.</td></tr><tr><td>216</td><td>MESSAGE_BLOCKED_BY_WARM_UP</td><td>Message blocked by WarmUp feature</td><td>Status para clientes do WhatsApp que estão realizando aquecimento de contêiner. A mensagem permanece nesse status quando o contêiner já atingiu o limite permitido de mensagens para a camada atual.</td></tr><tr><td>217</td><td>WA_MT_MEDIA_EXCEPTION</td><td>Error in media content (MT)</td><td>Status MT para mensagens de mídia, onde devido a um erro no modelo, o tamanho da mídia ou do modelo excedeu o limite suportado, o formato de mídia não foi suportado ou a mídia não pôde ser encontrada e foi considerada inválida.</td></tr><tr><td>218</td><td>WA_NO_PRODUCTS_FOUND</td><td>Product not found</td><td>A solicitação tentou buscar um produto que não está cadastrado no sistema. Se for uma Mensagem da Lista de Produtos, significa que o catálogo ou o produto não existe no Gerenciador de Negócios.</td></tr><tr><td>219</td><td>INVALID_PARAMETER_OR_CONTACT</td><td>Invalid parameter or contact/destination</td><td>Indica que algum parâmetro de mensagem é inválido ou ausente, ou que o contato/destinatário é inválido/não tem WhatsApp.</td></tr><tr><td>301</td><td>INTERNAL_ERROR</td><td>Internal error</td><td>Status indicando que houve algum erro interno em nossas plataformas e a mensagem não pôde ser processada e enviada.</td></tr><tr><td>302</td><td>WA_MO_UNKWNOWN_EXCEPTION</td><td>Unknown error (MO)</td><td>Status para WhatsApp MO. Esse status indica que ocorreu um erro desconhecido durante o processamento do MO.</td></tr><tr><td>303</td><td>WA_BUSINESS_PAYMENT_ISSUE</td><td>Business payment issue</td><td>Status indica que ocorreu um problema durante o pagamento da transação, que pode ser causado por erros internos e externos. A mensagem não será enviada ao usuário.</td></tr></tbody></table>

> Exemplo

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      }
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      }
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      }
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      }
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      }
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}
{% endtabs %}


# MO (mensagens enviadas pelo usuário final para a conta do Whatsapp)

Em cada resposta do usuário final (MO ou Mobile Originated) um callback/webhook é enviado. Essas MOs são enviadas em lote.

{% hint style="danger" %}
***IMPORTANTE:*****&#x20;O endpoint no qual o webhook será enviado deve ser previamente configurado com a equipe de suporte/operações.**
{% endhint %}

O formato desta devolução será de acordo com a seguinte descrição:

### Callback <a href="#callback" id="callback"></a>

<table><thead><tr><th width="154">Field</th><th width="364">Details</th><th>Type</th></tr></thead><tbody><tr><td>total</td><td>Número de retornos de chamada na solicitação</td><td>Long</td></tr><tr><td>data</td><td>Lista de mensagens originadas por dispositivos móveis</td><td>Data[]</td></tr><tr><td>clientInfo</td><td>Informações de quem é a mensagem</td><td>ClientInfo</td></tr></tbody></table>

#### Data <a href="#data" id="data"></a>

<table><thead><tr><th width="133">Field</th><th width="430">Details</th><th>Type</th></tr></thead><tbody><tr><td>id</td><td>Identificação da última mensagem</td><td>String</td></tr><tr><td>source</td><td>ID do remetente</td><td>String</td></tr><tr><td>origin</td><td>Telefone que identifica a conta do WhatsApp (incluindo o código do país). Exemplo: 5511900000000</td><td>String</td></tr><tr><td>userProfile</td><td>Perfil do usuário que enviou a mensagem</td><td>UserProfile</td></tr><tr><td>correlationId</td><td>Um ID exclusivo definido por você para corresponder ao status da mensagem (retorno de chamada e DLR). Opcional, pois você pode usar o ID gerado pela Sinch</td><td>String</td></tr><tr><td>campaignId</td><td>ID da campanha definida anteriormente</td><td>String</td></tr><tr><td>campaignAlias</td><td>Alias de campanha previamente definidos</td><td>String</td></tr><tr><td>message</td><td>Mensagem MO</td><td>Message</td></tr><tr><td>receivedDate</td><td>Data em que a mensagem foi recebida.<br>Formato: <code>yyyy-MM-dd’T'HH:mm:ssZ</code></td><td>String</td></tr><tr><td>receivedAt</td><td>Data em que a mensagem foi recebida, usando o formato Unix_time</td><td>Long</td></tr><tr><td>extraInfo</td><td>Informações extras relacionadas à mensagem. Formato: Json</td><td>String</td></tr><tr><td>referral</td><td>Apresente se a mensagem foi iniciada pelo usuário clicando em uma publicação ou anúncio. Contém informações relacionadas ao anúncio. Este campo é opcional (pode ser nulo).</td><td>Referral</td></tr><tr><td>mtSentAt</td><td>O carimbo de data/hora quando a última MT foi enviada para este destinatário.</td><td>Long</td></tr><tr><td>session</td><td>Informações da sessão</td><td>Session</td></tr></tbody></table>

### **MO Flow Control - Lista de segmentação**

A mensagem terá uma lista de listas de segmentação no campo extraInfo. Nossos parceiros o usam para redirecionar as mensagens através de determinados fluxos. O nome da chave é **segmentation\_lists** e contém uma lista de **SegmentationList**.

<table><thead><tr><th width="173">Field</th><th width="343">Details</th><th>Type</th></tr></thead><tbody><tr><td>id</td><td>Identificador de lista de segmentação</td><td>Integer</td></tr><tr><td>customerId</td><td>Identificador do cliente</td><td>Integer</td></tr><tr><td>subAccountId</td><td>Identificador de subconta</td><td>Integer</td></tr><tr><td>name</td><td>Nome da lista de segmentação</td><td>String</td></tr><tr><td>active</td><td>Status da lista de segmentação</td><td>Boolean</td></tr></tbody></table>

### Referência <a href="#referral" id="referral"></a>

**Todos os campos neste objeto são opcionais (podem ser nulos).**

<table><thead><tr><th width="183">Field</th><th width="340">Details</th><th>Type</th></tr></thead><tbody><tr><td>headLine</td><td>Título do anúncio que gerou a mensagem.</td><td>String</td></tr><tr><td>body</td><td>Corpo do anúncio.</td><td>String</td></tr><tr><td>sourceType</td><td>Tipo do anúncio. Pode ser "anúncio", "post" ou "desconhecido".</td><td>String</td></tr><tr><td>sourceId</td><td>ID do anúncio no Facebook.</td><td>String</td></tr><tr><td>sourceUrl</td><td>URL do anúncio.</td><td>String</td></tr><tr><td>mediaType</td><td>Tipo de mídia do anúncio. Pode ser "imagem" ou "postagem".</td><td>String</td></tr><tr><td>mediaUrl</td><td>URL da mídia do anúncio.</td><td>String</td></tr></tbody></table>

### Perfil do usuário <a href="#userprofile" id="userprofile"></a>

<table><thead><tr><th width="184">Field</th><th width="346">Details</th><th>Type</th></tr></thead><tbody><tr><td>name</td><td>Nome do usuário especificado no WhatsApp</td><td>String</td></tr><tr><td>whatsAppId</td><td>Número de telefone do usuário</td><td>String</td></tr></tbody></table>

### Sessão <a href="#session" id="session"></a>

<table><thead><tr><th width="149">Field</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>sessionId</td><td>ID da sessão para este usuário</td><td>String</td></tr><tr><td>createdAt</td><td>Carimbo de data/hora de criação da sessão</td><td>Long</td></tr></tbody></table>

### Message <a href="#message" id="message"></a>

<table><thead><tr><th width="180">Field</th><th width="374">Details</th><th>Type</th></tr></thead><tbody><tr><td>type</td><td>Tipo de mensagem enviada pelo usuário final: <code>TEXT - IMAGE - AUDIO - VIDEO - DOCUMENT - STICKER - BUTTON - ORDER - LIST</code></td><td>String</td></tr><tr><td><strong>messageText</strong></td><td>A mensagem de texto (MO) enviada pelo usuário final. Para respostas de lista, é igual a rowTitle.</td><td>String</td></tr><tr><td>mediaUrl</td><td>Url para baixar a mídia enviada pelo usuário final.</td><td>String</td></tr><tr><td>mimeType</td><td>Tipo mime do arquivo enviado pelo usuário final.</td><td>String</td></tr><tr><td>caption</td><td>Etiqueta de mídia enviada pelo usuário final.</td><td>String</td></tr><tr><td>location</td><td>Local enviado pelo usuário final.</td><td>Location</td></tr><tr><td>contacts</td><td>Contato(s) enviado(s) pelo usuário final.</td><td>Contact[]</td></tr><tr><td>receivedInteractive</td><td>Os campos interativos recebidos.</td><td>ReceivedInteractive</td></tr></tbody></table>

### ReceivedInteractive <a href="#receivedinteractive" id="receivedinteractive"></a>

<table><thead><tr><th width="147">Field</th><th width="368">Details</th><th>Type</th></tr></thead><tbody><tr><td>order</td><td>O objeto de pedido com as informações dos produtos (<code>PRODUCT_LIST</code>)</td><td>Order</td></tr><tr><td>listReply</td><td>Responder para lista enviada pelo usuário. (<code>LIST</code>)</td><td>ListReply</td></tr><tr><td>payload</td><td>Texto definido ao enviar botões (<code>REPLY_BUTTON</code>)</td><td>String</td></tr></tbody></table>

### **Order**

<table><thead><tr><th width="182">Field</th><th width="324">Details</th><th>Type</th></tr></thead><tbody><tr><td>catalogId</td><td>O catalogId configurado no Gerenciador de Negócios</td><td>String</td></tr><tr><td>productItems</td><td>Matriz de ProductItem.</td><td>ProductItem[]</td></tr></tbody></table>

### **Product Item**

<table><thead><tr><th width="194">Field</th><th width="304">Details</th><th>Type</th></tr></thead><tbody><tr><td>productRetailerId</td><td>Identificador exclusivo (no catálogo) do produto</td><td>String</td></tr><tr><td>quantity</td><td>Número de itens comprados</td><td>String</td></tr><tr><td>itemPrice</td><td>Preço unitário dos itens</td><td>String</td></tr><tr><td>currency</td><td>Moeda do preço</td><td>String</td></tr></tbody></table>

**ListReply**

<table><thead><tr><th width="151">Field</th><th width="374">Details</th><th>Type</th></tr></thead><tbody><tr><td>rowIdentifier</td><td>Identificador de linha enviando na mensagem original para o usuário</td><td>String</td></tr><tr><td>rowTitle</td><td>Título da linha enviando na mensagem original para o usuário</td><td>String</td></tr></tbody></table>

#### ClientInfo <a href="#clientinfo" id="clientinfo"></a>

<table><thead><tr><th width="190">Field</th><th width="371">Details</th><th>Type</th></tr></thead><tbody><tr><td>customerId</td><td>CustomerId para o qual a mensagem se destina</td><td>Long</td></tr><tr><td>subAccountId</td><td>SubAccountId para o qual a mensagem se destina</td><td>Long</td></tr><tr><td>userId</td><td>UserId para o qual a mensagem se destina</td><td>Long</td></tr></tbody></table>

{% hint style="danger" %}
Para os objetos que contêm um campo de tipo, os valores listados são simplesmente considerados os valores padrão que podem ser vistos, no entanto, você pode definir o campo para qualquer valor descritivo que escolher.
{% endhint %}

> Exemplo de mensagem de texto:

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de informações extras

{% tabs %}
{% tab title="cURL" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de mensagens de mídia

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId":"...",
      "campaignAlias":"...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId":"...",
      "campaignAlias":"...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId":"...",
      "campaignAlias":"...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId":"...",
      "campaignAlias":"...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId":"...",
      "campaignAlias":"...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de localização

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Wavy",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Wavy",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Wavy",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Wavy",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Wavy",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de mensagens de contatos

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de texto de referência

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}


# Fazendo chamadas para a API da Sinch Messaging

Para fazer suas primeiras chamadas, recomendamos o uso do aplicativo **“**[**Postman**](https://www.postman.com/downloads/)**”** para realizar testes com requisições no formato JSON antes de realizar as configurações em produção.

{% hint style="info" %}
**Nota: Para enviar mensagens de teste, você precisa ter um modelo de mensagem aprovado na sua conta do WhatsApp Business. Consulte nossa documentação sobre** [**Criação de modelo de mensagem WhatsApp**](https://docs.wavy.global/whatsapp/template)[ ](/whatsapp/introducao-ao-messaging-whatsapp/template)**para criar seus primeiros modelos.**
{% endhint %}

Caso ainda não possua nenhum modelo de mensagem aprovado você ainda pode enviar mensagens teste, desde que o destinatário faça uma interação com o número de origem.&#x20;

Dessa forma, uma janela de atendimento ao cliente será ativada. Ela permite que você envie qualquer tipo de mensagem em uma janela de 24 horas. Se a mensagem chegar, significará que sua requisição à API da Sinch Messaging foi bem-sucedida. Caso contrário, verifique seu Webhook em busca de notificações que possam indicar algum problema.


# API SFTP WhatsApp

### Detalhes de conexão <a href="#detalhes-de-conex-o" id="detalhes-de-conex-o"></a>

|                  |                                                                              |
| ---------------- | ---------------------------------------------------------------------------- |
| **Hostname**     | ftp-messaging.wavy.global                                                    |
| **Porta**        | 2222                                                                         |
| **Protocolo**    | SFTP (transferência sobre ssh, provendo criptografia entre cliente-servidor) |
| **Autenticação** | username + senha (fornecido pelo suporte)                                    |

{% hint style="danger" %}
**É necessária a liberação de seus IPs no firewalls da Sinch**\
**Se for necessário liberação de firewall para saída sentido a porta 2222, você deve liberar o DNS, ou os IPs 200.219.220.54, 200.189.169.53, 45.236.179.22**
{% endhint %}

### Mensagem Template via SFTP <a href="#mensagem-template-via-sftp" id="mensagem-template-via-sftp"></a>

{% hint style="danger" %}
**Para o envio de WhatsApp Templates, a estrutura cadastrada de Template deve ser devidamente respeitada, caso contrário o envio falhará**
{% endhint %}

### Template com mídia: <a href="#template-com-m-dia" id="template-com-m-dia"></a>

**2020-01-21;16:00;16:00;TEMPLATE;chatclub\_welcome;whatsapp:hsm:ecommerce:movile;pt\_BR;DETERMINISTIC;nome|empresa** \*\*IMAGE;URL;<https://upload.wikimedia.org/wikipedia/en/d/d2/Imagem\\_logo.png;PNG**\\>
**phone;nome;empresa**\
**5519981560597;Nome1;Wavy**

| 1ª Linha                                                          |
| ----------------------------------------------------------------- |
| Data de envio (para casos de agendamento)                         |
| Hora inicial de envio (para casos de agendamento)                 |
| Hora final de envio (para casos de agendamento)                   |
| Tipo de mensagem deve ser: TEMPLATE                               |
| Nome (elementName) do Template                                    |
| Namespace (namespace) do Template                                 |
| Idioma (languageCode) do Template                                 |
| Determinístico ou Fallback do idioma do Template (languagePolicy) |
| nome dos parâmetros do Template                                   |

### **Observações para primeira linha:**

1. Os nomes dos parâmetros do Template devem coincidir com os nomes das colunas ou serão considerados como valores constantes.
2. As informações que não forem ser utilizadas podem ser deixadas em branco, porém devem manter o ponto e vírgula como separação. Exemplo de um caso que não utilizamos agendamento (os campos iniciais ficam entre ponto e vírgula e sem informação dentro): ; ; ; TEMPLATE;chatclub\_welcome;whatsapp:hsm:ecommerce:movile;pt\_BR;DETERMINISTIC;nome|empresa.
3. Por default (padrão) a languagePolicy será Determinístico.
4. Os nomes dos parâmetros do Template devem ser separados por “ | ” e não por “ ; ”

| 2ª Linha                               | Exemplos                                         |
| -------------------------------------- | ------------------------------------------------ |
| Tipo do Header suportado pelo template | IMAGE, AUDIO, VIDEO ou DOCUMENT                  |
| Tipo da fonte da mídia                 | URL ou PATH (diretório da mídia no servidor FTP) |
| Mídia                                  | Url ou diretório do servidor FTP                 |
| Tipo da mídia                          | JPEG, PNG, JPG, PDF, DOC, MP4, MP3               |

**Observações para segunda linha:**

1. O tipo de mídia deve ser um tipo aceito pelo WhatsApp

| Mídia     | Content-Types suportados                                                                   |
| --------- | ------------------------------------------------------------------------------------------ |
| documento | qualquer MIME-type válido                                                                  |
| imagem    | image/jpeg, image/png                                                                      |
| audio     | audio/aac, audio/mp4, audio/amr, audio/mpeg, audio/ogg; codecs=opus                        |
| video     | video/mp4, video/3gpp. Observação: Apenas H.264 video codec e AAC audio codec é suportado. |

| 3ª Linha         |
| ---------------- |
| Nome das colunas |

| 4ª e demais linhas:                               |
| ------------------------------------------------- |
| Destinatário e valores dos parâmetros do Template |

#### Templates customizados por destinatário: <a href="#templates-customizados-por-destinat-rio" id="templates-customizados-por-destinat-rio"></a>

Para envios customizados, como diferentes mídias por destinatário, entre em contato com o nosso time de suporte técnico para realizar a configuração e obter mais detalhes para o envio.


# Enviando mensagens através de SFTP

### Mensagens de modelo através de SFTP <a href="#template-messages-through-sftp" id="template-messages-through-sftp"></a>

{% hint style="danger" %}
Para enviar Templates do WhatsApp, a estrutura de Templates cadastrada deve ser devidamente respeitada, caso contrário as mensagens falharão.
{% endhint %}

#### Modelo de mídia: <a href="#media-template" id="media-template"></a>

**21/01/2020; 16:00; 16:00; MODELO; chatclub\_welcome; whatsapp:hsm:ecommerce:movile; pt\_BR; DETERMINÍSTICA; nome|imagem da empresa; URL;**\
<https://upload.wikimedia.org/wikipedia/en/d/d2/Imagem\\_logo.png;PNG> **telefone; nome; 5519981560597 da empresa**\
**; Nome1; Ondulado**

| 1ª Linha                                                             |
| -------------------------------------------------------------------- |
| Data de envio (para casos de agendamento)                            |
| Tempo de envio inicial (para agendamento de casos)                   |
| Tempo final de envio (para agendamento de casos)                     |
| O tipo de mensagem deve ser: TEMPLATE                                |
| Nome (elementName) do modelo                                         |
| Namespace (namespace) do modelo                                      |
| Idioma (languageCode) do modelo                                      |
| Determinístico ou Fallback da linguagem do Template (languagePolicy) |
| Nome dos parâmetros do modelo                                        |

**Observações para a primeira linha:**

1. O nome dos parâmetros do modelo deve estar nas colunas do arquivo ou será considerado como valores constantes
2. As informações que não serão utilizadas podem ficar em branco, mas é preciso manter o ponto-e-vírgula como separação. Por exemplo, um caso em que não usamos o agendamento (os campos iniciais estão entre ponto-e-vírgula e nenhuma informação dentro): ; MODELO; chatclub\_welcome; whatsapp:hsm:ecommerce:movile; pt\_BR; DETERMINÍSTICA; nome|empresa
3. Por padrão a languagePolicy será Determinística.
4. O nome dos parâmetros do modelo deve ser dividido por " | " e não por " ; "

| 2ª Linha                                | Exemplos                                         |
| --------------------------------------- | ------------------------------------------------ |
| Tipo de cabeçalho suportado pelo modelo | IMAGEM, ÁUDIO, VÍDEO ou DOCUMENTO                |
| Tipo de fonte de mídia                  | URL ou PATH (diretório de mídia do servidor FTP) |
| Mídia                                   | Diretório do servidor Url ou FTP                 |
| Tipo de mídia                           | JPEG, PNG, JPG, PDF, DOC, MP4, MP3               |

**Observação de segunda linha:**

1. O tipo de mídia deve ser um tipo aceitável pelo WhatsApp.

<table><thead><tr><th width="214">Mídia</th><th>Tipos de conteúdo suportados</th></tr></thead><tbody><tr><td>documento</td><td>Qualquer tipo MIME válido</td></tr><tr><td>imagem</td><td>imagem/jpeg, imagem/png</td></tr><tr><td>áudio</td><td>áudio/aac, áudio/mp4, áudio/amr, áudio/mpeg, áudio/ogg; codecs=opus</td></tr><tr><td>vídeo</td><td>Vídeo/MP4, Vídeo/3GPP. Nota: Apenas o codec de vídeo H.264 e o codec de áudio AAC são suportados.</td></tr></tbody></table>

| 3ª Linhas        |
| ---------------- |
| Nomes de colunas |

| 4ª e outras linhas:                             |
| ----------------------------------------------- |
| Valores de destinatário e parâmetro de Template |

#### Modelos personalizados para cada destinatário: <a href="#customized-templates-for-each-recipient" id="customized-templates-for-each-recipient"></a>

Para envio personalizado, bem como diferentes mídias para cada destinatário, entre em contato com nosso suporte técnico para configurar e dar mais detalhes sobre esse recurso.


# Sessões abertas via API

### Pedir <a href="#request" id="request"></a>

Para consultar sessões abertas através de nossa API, você precisa fazer a solicitação GET para o seguinte endereço:

`GET http://api-messaging.wavy.global/v1/session?customerId={customerId}&subAccountId={subAccountId}`

Passar o parâmetro ***customerId*** é obrigatório, enquanto ***subAccountId*** é opcional.

Atenção: Tenha cuidado para substituir '{' e '}' também. Por exemplo, "={customerId}" torna-se "=42".

Você também precisará usar os seguintes cabeçalhos:

| Cabeçalho               | Valor                            |
| ----------------------- | -------------------------------- |
| **Tipo de conteúdo**    | aplicação/json                   |
| **authenticationToken** | Token de autenticação Messaging1 |
| **Nome de usuário**     | Nome de usuário Messaging1       |

#### Resposta <a href="#response" id="response"></a>

Em caso de êxito, se houver sessões abertas para customerId e subAccountId especificados, a solicitação retornará um JSON com o atributo:

<table><thead><tr><th width="178">Campo</th><th>Valor</th></tr></thead><tbody><tr><td><strong>file_url</strong></td><td>Link para download de um arquivo do tipo csv contendo os campos "origem" e "session_created_at" de todos os destinos encontrados</td></tr></tbody></table>

Se não houver dados associados a ***customerId*** e ***subAccountId***, o arquivo retornado estará vazio, com apenas o cabeçalho.

{% tabs %}
{% tab title="cURL" %}

```
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

> Exemplo de informações extras

{% tabs %}
{% tab title="cURL" %}

```
{
    "file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
    "file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}
```

{% endtab %}

{% tab title="Python" %}

```
{
    "file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
    "file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}
```

{% endtab %}

{% tab title="Java" %}

```
{
    "file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}
```

{% endtab %}
{% endtabs %}


# Webhooks

Webhooks (ou callbacks) são retornos de chamada de HTTP definidos pelo usuário, que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, a API da Sinch coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) a URL escolhida pelo cliente atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem.

Quando o cliente enviar uma mensagem a você, API da Sinch Messaging enviará uma notificação de solicitação HTTP POST à URL do **Webhook** com os detalhes.

{% hint style="warning" %}
**`É importante que seu Webhook retorne uma resposta HTTPS 200 OK às notificações (em até 200 ms ou de maneira assíncrona). Caso contrário, a API da Sinch Messaging considerará essa notificação com falha e tentará novamente após um atraso.`**
{% endhint %}

{% hint style="danger" %}
**Importante: A URL onde você irá receber os Webhooks precisa ser configurado por nosso time de suporte.**
{% endhint %}

O formato do retorno seguirá a seguinte descrição:

<table><thead><tr><th width="178">Campo</th><th width="419">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>total</td><td>Número de callbacks retornados.</td><td>String</td></tr><tr><td>data</td><td>Dados retornados no Callback.</td><td>Data[]</td></tr><tr><td>clientInfo</td><td>Informações do cliente.</td><td>ClientInfo</td></tr><tr><td>conversationID</td><td></td><td>String</td></tr></tbody></table>

### Data: <a href="#data" id="data"></a>

<table><thead><tr><th width="187">Campo</th><th width="430">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>id da mensagem.</td><td>String</td></tr><tr><td>correlationId</td><td>Caso tenha sido especificado um correlationId no envio da mensagem, ele irá aparecer aqui.</td><td>String</td></tr><tr><td>destination</td><td>Número do telefone que a mensagem foi enviada (incluindo código de pais). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>origin</td><td>Número da Conta de WhatsApp (incluindo código de pais). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>campaignId</td><td>Caso tenha sido especificado um campaignID no envio da mensagem, ele irá aparecer aqui.</td><td>String</td></tr><tr><td>campaignAlias</td><td>Caso tenha sido especificado um campaignAlias no envio da mensagem, ele irá aparecer aqui.</td><td>String</td></tr><tr><td>extraInfo</td><td>Informação extra enviada com a mensagem original.</td><td>String</td></tr><tr><td>sent</td><td>Indica se a mensagem foi enviada.</td><td>Boolean</td></tr><tr><td>sentStatusCode</td><td>Código de Status gerado pela Sinch Messaging WhatsApp API para a mensagem indicando o status de envio.</td><td>Number</td></tr><tr><td>sentStatus</td><td>Descrição do status de envio.</td><td>Boolean</td></tr><tr><td>sentDate</td><td>Data em que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ.</td><td>String</td></tr><tr><td>sentAt</td><td>Horário em que a mensagem foi enviada, usando Unix_time format</td><td>Number</td></tr><tr><td>delivered</td><td>Indica se a mensagem foi entregue no destino.</td><td>Boolean</td></tr><tr><td>deliveredStatusCode</td><td>Código de Status gerado pela Sinch Messaging WhatsApp API indicando se a mensagem foi entregue.</td><td>Number</td></tr><tr><td>deliveredStatus</td><td>Descrição do status de entrega.</td><td>String</td></tr><tr><td>deliveredDate</td><td>Data em que a mensagem foi entregue. Formato:: yyyy-MM-dd’T'HH:mm:ssZ</td><td>String</td></tr><tr><td>deliveredAt</td><td>Horário em que a mensagem foi entregue, usando Unix_time format</td><td>Number</td></tr><tr><td>read</td><td>Indica se a mensagem foi lida pelo destinatário.</td><td>Boolean</td></tr><tr><td>readDate</td><td>Data em que a mensagem foi lida. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td><td>String</td></tr><tr><td>readAt</td><td>Horário em que a mensagem foi lida, usando Unix_time format</td><td>String</td></tr><tr><td>updatedDate</td><td>Data em que o status da mensagem foi atualizado. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td><td>String</td></tr><tr><td>updatedAt</td><td>Horário em que o status da mensagem foi atualizado, usando Unix_time format</td><td>String</td></tr><tr><td>type</td><td>O tipo de entidade a que se refere este objeto de status. Atualmente, a única opção disponível é “mensagem”.</td><td>String</td></tr></tbody></table>

> Exemplo de requisição com Webhook

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}
{% endtabs %}

### ClientInfo: <a href="#clientinfo" id="clientinfo"></a>

<table><thead><tr><th width="177">Campo</th><th width="410">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>customerId</td><td>Código de identificação do cliente.</td><td>Number</td></tr><tr><td>subAccountId</td><td>Código de identificação da subconta.</td><td>Number</td></tr><tr><td>userId</td><td>Código de identificação do usuário.</td><td>Number</td></tr></tbody></table>

### Status <a href="#status" id="status"></a>

Descrição dos Status que podem ser enviados no callback:

<table><thead><tr><th width="221">Status</th><th>Descrição</th><th>Equivalente ao WhatsApp para dispositivos móveis</th></tr></thead><tbody><tr><td>SENT_SUCCESS</td><td>Mensagem recebida pelo servidor do WhatsApp</td><td>Uma marca de seleção</td></tr><tr><td>DELIVERED_SUCCESS</td><td>Mensagem entregue para o destinatário</td><td>Duas marcas de seleção</td></tr><tr><td>READ_SUCCESS</td><td>Mensagem lida pelo destinatário</td><td>Duas marcas de seleção azuis</td></tr></tbody></table>

### Outros Status <a href="#outros-status" id="outros-status"></a>

Esses são os códigos retornados nos campos **sentStatusCode e deliveredStatusCode.**

<table><thead><tr><th width="163">Código de envio</th><th width="171">Código de entrega</th><th width="186">Status</th><th>Significado</th></tr></thead><tbody><tr><td>102</td><td></td><td>CARRIER COMMUNICATION ERROR</td><td>Erro ao fazer upload de mídia para o WhatsApp</td></tr><tr><td>103</td><td></td><td>REJECTED_BY_CARRIER</td><td>Ocorreu erro de comunicação com o WhatsApp.</td></tr><tr><td>2</td><td>101</td><td>EXPIRED</td><td>Mensagem expirada.</td></tr><tr><td>2</td><td>104</td><td>NOT_DELIVERED</td><td>Possíveis Causas: Limite atingido - muitos envios de mensagens tentados; Ou falha ao enviar mensagem porque o número de telefone de destino é parte de um experimento; Ou a estrutura do template não existe; Ou falhou ao enviar mensagem pois o número de destino está fora da janela de atendimento de 24h para receber mensagens de forma livre; Ou houve erro de upload de mídia (erro desconhecido); Ou falha ao enviar mensagem porque sua conta é inelegível no Facebook Business Manager; Ou houve falha temporária de upload. Tente novamente mais tarde.</td></tr><tr><td>2</td><td>105</td><td>WA_MO_MEDIA_UNRETRYABLE_EXCEPTION</td><td></td></tr><tr><td>202</td><td></td><td>EXPIREDINVALID_DESTINATION_NUMBER</td><td>Contato de WhatsApp inválido.</td></tr><tr><td>204</td><td></td><td>DESTINATION_BLOCKED_BY_OPTOUT</td><td>Destino bloqueado por Opt-Out.</td></tr><tr><td>207</td><td></td><td>INVALID_MESSAGE_TEXT</td><td>Valor de parâmetro inválido.</td></tr><tr><td>209</td><td></td><td>INVALID_CONTENT</td><td>Tipo de mensagem UNKNOWN inválido.</td></tr><tr><td>210</td><td></td><td>INVALID_SESSION</td><td>Sessão ou janela de atendimento não está aberta e nenhum Template de fallback está configurado.</td></tr><tr><td>301</td><td></td><td>INTERNAL_ERROR</td><td>Não foi possível verificar o contato na API do WhatsApp.</td></tr></tbody></table>

### Erros <a href="#erros" id="erros"></a>

<table data-header-hidden><thead><tr><th width="210"></th><th></th></tr></thead><tbody><tr><td><strong>HTTP Code</strong></td><td><strong>Description</strong></td></tr><tr><td>2xx</td><td>Success</td></tr><tr><td>200</td><td>Success (OK)</td></tr><tr><td>201</td><td>Successfully created (For POST requests)</td></tr><tr><td>302</td><td>Found</td></tr><tr><td>4xx</td><td>Client Errors</td></tr><tr><td>400</td><td>Request was invalid</td></tr><tr><td>401</td><td>Unauthorized</td></tr><tr><td>403</td><td>Forbidden</td></tr><tr><td>404</td><td>Not found</td></tr><tr><td>405</td><td>Method not allowed</td></tr><tr><td>412</td><td>Precondition failed</td></tr><tr><td>429</td><td>Too many requests</td></tr><tr><td>5xx</td><td>Server Errors</td></tr><tr><td>500</td><td>Internal server error</td></tr><tr><td>504</td><td>Timeout</td></tr></tbody></table>


# WhatsApp Lists via API

### **API - Possíveis tipos de solicitação de lista:**

* OPT EM
* OPT OUT
* Blocklist
* Whitelist
* Sessões Abertas

É necessário fazer uma solicitação GET para a URL:

```
http://api-messaging.wavy.global/v1/list/{listType}?customerId={customerId}&subAccountId={subAccountId}.
```

| Tipo de lista                    | Valor passado em Tipo de Lista |
| -------------------------------- | ------------------------------ |
| Lista de desativação do WhatsApp | `OPTOUT`                       |
| Lista de Opt In do WhatsApp      | `OPTIN`                        |
| Lista negra do WhatsApp          | `BLOCKLIST`                    |
| Lista branca do Whatsapp (MT)    | `WHITELIST`                    |

O parâmetro customerId é obrigatório, enquanto subAccountId é opcional. Também é necessário passar os seguintes cabeçalhos:

| Chave de cabeçalho  | Valor do cabeçalho              |
| ------------------- | ------------------------------- |
| Tipo de conteúdo    | `application/json`              |
| authenticationToken | `Token do Messaging1`           |
| Nome de usuário     | `Nome de usuário do Messaging1` |

### **Resposta:**

Em caso de sucesso, se houver dados relacionados ao customerId e ao subAccountId (se especificado), uma solicitação terá como resposta um JSON com 3 atributos:

<table><thead><tr><th width="243">Nome do atributo</th><th>Valor do atributo</th></tr></thead><tbody><tr><td>êxito</td><td><code>true</code></td></tr><tr><td>estado</td><td><code>200</code></td></tr><tr><td>dados</td><td>Link para baixar o arquivo do tipo csv contendo os campos “source” e “createdAt” de todos os destinos encontrados</td></tr></tbody></table>

Caso não haja dados relacionados, será devolvido apenas um JSON semelhante, mas sem os dados de campo, o que significa que não houve problemas com a solicitação, mas não houve dados relacionados aos parâmetros de solicitação passados.


# Desativação do WhatsApp

O Opt Out é uma forma de permitir que nossos usuários informem que desejam sair da conversa. Se eles informarem isso, nós os impedimos de receber mensagens da empresa.

### Mecanismo de Opt Out <a href="#opt-out-mechanism" id="opt-out-mechanism"></a>

**Atualmente, nosso Opt Out respeita as seguintes regras:**

* Todos os clientes têm a mecânica de opt-out habilitada por padrão e não podem desativá-la.
* Nossa plataforma adiciona o usuário à lista de opt-out quando ele envia uma destas palavras:
  * Opt Out Palavras em Inglês:
    * ***parar***
    * ***sair***
  * Opt Out Palavras em espanhol:
    * ***detener***
    * ***Salir***
  * Opt Out Palavras em Português:
    * ***Parar***
    * ***Sair***
* Temos uma mensagem automática que será enviada ao usuário quando ele for adicionado à lista de desativação, isso é habilitado por padrão para todos os clientes, mas pode ser desabilitado. Se você quiser desativar essa mensagem automática para um cliente específico, basta abrir um ticket para nossa equipe de suporte ao cliente. Enviamos as mensagens automáticas de acordo com o idioma da palavra optOut:
  * Mensagem de resposta em inglês:
    * ***Seu pedido para sair da conversa foi atendido. Por favor, envie-#start para voltar!***
  * Mensagem de resposta em espanhol:
    * ***Tu solicitud de abandonar la conversación se cumplió. ¡Envíe #volver para regresar!***
  * Mensagem de resposta em português:
    * ***Seu pedido para sair da conversa foi atendido. Favor enviar #voltar para retornar!***
* Quando um usuário está em opt-out, bloquearemos todos os modelos enviados a ele, a menos que o modelo esteja em uma das seguintes categorias: CUST\_SERVICE ou OTP
* Nossa equipe de IA classifica os modelos em categorias automaticamente usando, adivinhe, IA!
* Todas as mensagens que não são modelos serão enviadas normalmente se a sessão estiver aberta.
* Nossa plataforma removerá o usuário da lista de exclusão quando ele enviar uma destas palavras:
  * Opt Out Palavras em Inglês:
    * ***#start***
  * Opt Out Palavras em espanhol:
    * ***#volver***
    * ***#recibir***
  * Opt Out Palavras em Português:
    * ***#voltar***
    * ***#receber***
* Também enviamos uma mensagem automática ao usuário quando ele é removido da lista de desativação. Ele é habilitado por padrão para todos os clientes e pode ser desativado por nossa equipe de suporte ao cliente. Enviamos as mensagens automáticas de acordo com o idioma da palavra optOut:
  * Mensagem de resposta em inglês:
    * ***Seu pedido para voltar à conversa foi atendido! Bem-vindo de volta!***
  * Mensagem de resposta em espanhol:
    * ***Se ha concedido su solicitud para volver a la conversación! Bienvenido de nuevo!***
  * Mensagem de resposta em português:
    * ***Seu pedido de retornar à conversa foi atendido! Bem vindo de volta!***

### WhatsApp Opt Out Notificação de Evento <a href="#whatsapp-opt-out-event-notification" id="whatsapp-opt-out-event-notification"></a>

Cada opção de exclusão acionará um webhook de notificação com as informações do evento.

{% hint style="info" %}
**IMPORTANTE: O endpoint no qual o webhook será enviado deve ser previamente configurado com a equipe de suporte/operações.**
{% endhint %}

O formato desta devolução será de acordo com a seguinte descrição:

<table><thead><tr><th width="150">Field</th><th>Details</th><th>Type</th></tr></thead><tbody><tr><td>total</td><td>Número de retornos de chamada na chamada.</td><td>String</td></tr><tr><td>data</td><td>Lista de retorno de chamada.</td><td>Data[]</td></tr><tr><td>clientInfo</td><td>Informações ao Cliente</td><td>ClientInfo</td></tr></tbody></table>

### Data: <a href="#data" id="data"></a>

<table><thead><tr><th width="175">Field</th><th width="369">Details</th><th>Type</th></tr></thead><tbody><tr><td>id</td><td>ID da última mensagem.</td><td>String</td></tr><tr><td>correlationId</td><td>Um ID exclusivo definido por você para corresponder aos retornos de chamada da mensagem. O mesmo id enviado no MT que correspondia ao MO que gerou o evento opt out.</td><td>String</td></tr><tr><td>destination</td><td>Telefone para o qual a mensagem foi enviada (incluindo o código do país). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>origin</td><td>Telefone que identifica a conta do WhatsApp (incluindo o código do país). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>campaignId</td><td>ID de campanha definido anteriormente.</td><td>String</td></tr><tr><td>campaignAlias</td><td>Alias de campanha definidos anteriormente.</td><td>String</td></tr><tr><td>extraInfo</td><td>Informações extras enviadas com a mensagem original.</td><td>String</td></tr><tr><td>conversation</td><td>O objeto de conversação, que contém em si id, origin.type e expiration. Esse objeto estava relacionado ao novo modelo faturável de mensagens de whatsapp. <em>Veja a</em> <a href="https://developers.facebook.com/docs/whatsapp/api/webhooks/components#conversation-object"><em>conversa do Whatsapp</em></a><em>.</em></td><td>Conversation</td></tr><tr><td>eventType</td><td>Indica o tipo de evento de desativação. Pode assumir 'OPT_OUT' ou 'EXIT_OPT_OUT'. Se o valor for 'OPT_OUT', o usuário digitou opt out, caso contrário, se o valor for 'EXIT_OPT_OUT', o usuário saiu do optout.</td><td>String</td></tr><tr><td>eventDate</td><td>Data em que ocorreu o evento de desativação. Formato: aaaa-MM-dd'T'HH:mm:ssZ</td><td>String</td></tr></tbody></table>

#### ClientInfo <a href="#clientinfo" id="clientinfo"></a>

| Field        | Details                    | Type   |
| ------------ | -------------------------- | ------ |
| customerId   | Identificação do cliente.  | Number |
| subAccountId | Identificação da subconta. | Number |
| userId       | Identificação do usuário.  | Number |

> Exemplo

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "extraInfo": "...",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      },
      "eventType": "OPT_OUT",
      "eventDate": "2023-03-22T17:21:38.000Z"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "extraInfo": "...",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      },
      "eventType": "OPT_OUT",
      "eventDate": "2023-03-22T17:21:38.000Z"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "extraInfo": "...",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      },
      "eventType": "OPT_OUT",
      "eventDate": "2023-03-22T17:21:38.000Z"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "extraInfo": "...",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      },
      "eventType": "OPT_OUT",
      "eventDate": "2023-03-22T17:21:38.000Z"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5519900000000",
      "origin": "5519900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "extraInfo": "...",
      "conversation": {
        "id": "conversationId123",
        "origin": {
          "type": "REFERRAL_CONVERSION"
        },
        "expiration": "2017-12-19T17:09:31.891Z"
      },
      "eventType": "OPT_OUT",
      "eventDate": "2023-03-22T17:21:38.000Z"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}
```

{% endtab %}
{% endtabs %}


# Conversa WhatsApp

O Objeto de Conversa está relacionado à nova forma de cobrança das mensagens do Whatsapp. Uma conversa pode ser iniciada sempre que uma mensagem de uma conta comercial é entregue, e durará um período de 24 horas. O Objeto de Conversação possui 3 atributos, que podem ser visualizados por relatórios, métricas e retornos de chamada. Em nossa plataforma utilizamos a seguinte estrutura de objetos:

### Conversation <a href="#conversation" id="conversation"></a>

<table><thead><tr><th width="214">Field Name</th><th width="177">Type</th><th>Details</th></tr></thead><tbody><tr><td>conversation.id</td><td>String</td><td>Um id é criado sempre que uma conversa é iniciada.</td></tr><tr><td>conversation.origin</td><td>ConversationOrigin</td><td>O objeto de origem da conversação refere-se à origem da conversa.</td></tr><tr><td>conversation.expiration</td><td>Timestamp</td><td>Indica quando a conversa em andamento expira, o que seguirá a regra de 24 horas após o início da conversa.</td></tr></tbody></table>

#### ConversationOrigin <a href="#conversationorigin" id="conversationorigin"></a>

| Field Name              | Type                   | Details                                                                                     |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------- |
| conversationOrigin.type | ConversationOriginType | O tipo de origem enum, refere-se exatamente aos tipos de origens que uma conversa pode ter. |

#### ConversationOriginType <a href="#conversationorigintype" id="conversationorigintype"></a>

<table><thead><tr><th width="259">Field Name</th><th>Details</th></tr></thead><tbody><tr><td>BUSINESS_INITIATED</td><td>Quando uma conta comercial envia a primeira mensagem para o usuário.</td></tr><tr><td>USER_INITIATED</td><td>Indica que a conversa foi iniciada por uma conta comercial respondendo a uma mensagem de usuário</td></tr><tr><td>REFERRAL_CONVERSION</td><td>A conversa se originou de um ponto de entrada gratuito, que é quando um usuário envia mensagens para a empresa usando botões de chamada para ações.</td></tr></tbody></table>

*Veja* [*o objeto de conversa do WhatsApp e a*](https://developers.facebook.com/docs/whatsapp/api/webhooks/components#conversation-object) *documentação oficial* [*de preços baseados em conversa*](https://developers.facebook.com/docs/whatsapp/pricing/conversationpricing#conversation-based-pricing)*.*


# Mensagens (MO)

Quando o cliente enviar uma mensagem para você, a API da Sinch Messaging enviará uma notificação de solicitação HTTP POST à URL do **Webhook** com os detalhes.&#x20;

É importante que seu **Webhook** retorne uma resposta **HTTPS 200 OK** às notificações (em até 200 ms ou de maneira assíncrona). Caso contrário, a API da Sinch Messaging considerará essa notificação com falha e tentará novamente após um atraso.

{% hint style="danger" %}
**Importante: A URL onde você irá receber os Webhooks precisa ser configurado por nosso time de suporte.**
{% endhint %}

O formato do retorno seguirá a seguinte descrição:

<table><thead><tr><th width="126">Campo</th><th width="449">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>total</td><td>Números de callbacks para a ligação.</td><td>String</td></tr><tr><td>data</td><td>Lista de mensagens Mobile Originated (MO).</td><td>Data[]</td></tr></tbody></table>

Exemplo de mensagem de texto:

{% tabs %}
{% tab title="cURL" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="198">Campo</th><th width="347">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>Última identificação da mensagem</td><td>String</td></tr><tr><td>source</td><td>Número de telefone do remetente</td><td>String</td></tr><tr><td>origin</td><td>Número de telefone que identifica a Conta de WhatsApp (incluindo código de pais). Exemplo: 5511900000000.</td><td>String</td></tr><tr><td>userProfile</td><td>Perfil do usuario que enviou a mensagem</td><td>UserProfile</td></tr><tr><td>correlationId</td><td>Um ID unico definido por voce para comparar com o status da mensagem (Callback and DLR). Este parametro é opcional, e voce pode usar o ID gerado pelo Sinch Messaging para fazer a comparação.</td><td>String</td></tr><tr><td>campaignId</td><td>campaignID definido anteriormente.</td><td>String</td></tr><tr><td>campaignAlias</td><td>Campaign alias definido anteriormente.</td><td>String</td></tr><tr><td>message</td><td>Mensagem MO.</td><td>mensagem</td></tr><tr><td>receivedAt</td><td>Data em que a mensagem foi recebida. Format: yyyy-MM-dd’T'HH:mm:ssZ</td><td>String</td></tr><tr><td>receivedDate</td><td>Data em que a mensagem foi recebida, usando Unix_time format</td><td>String</td></tr><tr><td>extraInfo</td><td>Informação extra relacionada com a mensagem. Formato: <strong>Json</strong></td><td>String</td></tr><tr><td>referral</td><td>Caso a mensagem tenha se iniciado por um click em alguma propaganda, o campo contém a informação do anúncio/publicação. Esse campo é opcional (pode ser nulo).</td><td>Referral</td></tr><tr><td>mtSentAt</td><td>O timestamp de data/hora em que o último MT foi enviada a este destinatário.</td><td>Long</td></tr><tr><td>session</td><td>Informação da sessão.</td><td>Session</td></tr></tbody></table>

> Exemplo de mensagem com resposta de botão:

{% tabs %}
{% tab title="cURL" %}

```
{
    "total":1,
    "data":[
      {
        "id":"ce425ffe-bc62-421f-9261-e6819a5eab43",
        "source":"5511900000000",
        "origin":"5511900000000",
        "userProfile":{
          "name":"username",
          "whatsAppId":"5511900000000"
          },
        "correlationId":"...",
        "messageId":"aae959ca-5944-405a-809a-75ff142bc234",
        "message":{
            "type":"BUTTON",
            "messageText":"Sim",
            "payload":"sim"
            },
        "receivedAt":1513616971473,
        "receivedDate":"2020-07-22T14:24:41Z",
        "session":{
            "id":"06deff90-cc27-11ea-b94f-0050569e62ca",
            "createdAt":1513616971473
              }
          }
      ],
        "clientInfo":{
            "customerId":10,
            "subAccountId":0,
            "userId":101010
            }
  }
```

<br>
{% endtab %}

{% tab title="Ruby" %}

```
{
    "total":1,
    "data":[
      {
        "id":"ce425ffe-bc62-421f-9261-e6819a5eab43",
        "source":"5511900000000",
        "origin":"5511900000000",
        "userProfile":{
          "name":"username",
          "whatsAppId":"5511900000000"
          },
        "correlationId":"...",
        "messageId":"aae959ca-5944-405a-809a-75ff142bc234",
        "message":{
            "type":"BUTTON",
            "messageText":"Sim",
            "payload":"sim"
            },
        "receivedAt":1513616971473,
        "receivedDate":"2020-07-22T14:24:41Z",
        "session":{
            "id":"06deff90-cc27-11ea-b94f-0050569e62ca",
            "createdAt":1513616971473
              }
          }
      ],
        "clientInfo":{
            "customerId":10,
            "subAccountId":0,
            "userId":101010
            }
  }
```

{% endtab %}

{% tab title="Python" %}

```
{
    "total":1,
    "data":[
      {
        "id":"ce425ffe-bc62-421f-9261-e6819a5eab43",
        "source":"5511900000000",
        "origin":"5511900000000",
        "userProfile":{
          "name":"username",
          "whatsAppId":"5511900000000"
          },
        "correlationId":"...",
        "messageId":"aae959ca-5944-405a-809a-75ff142bc234",
        "message":{
            "type":"BUTTON",
            "messageText":"Sim",
            "payload":"sim"
            },
        "receivedAt":1513616971473,
        "receivedDate":"2020-07-22T14:24:41Z",
        "session":{
            "id":"06deff90-cc27-11ea-b94f-0050569e62ca",
            "createdAt":1513616971473
              }
          }
      ],
        "clientInfo":{
            "customerId":10,
            "subAccountId":0,
            "userId":101010
            }
  }
```

{% endtab %}

{% tab title="PHP" %}

```
{
    "total":1,
    "data":[
      {
        "id":"ce425ffe-bc62-421f-9261-e6819a5eab43",
        "source":"5511900000000",
        "origin":"5511900000000",
        "userProfile":{
          "name":"username",
          "whatsAppId":"5511900000000"
          },
        "correlationId":"...",
        "messageId":"aae959ca-5944-405a-809a-75ff142bc234",
        "message":{
            "type":"BUTTON",
            "messageText":"Sim",
            "payload":"sim"
            },
        "receivedAt":1513616971473,
        "receivedDate":"2020-07-22T14:24:41Z",
        "session":{
            "id":"06deff90-cc27-11ea-b94f-0050569e62ca",
            "createdAt":1513616971473
              }
          }
      ],
        "clientInfo":{
            "customerId":10,
            "subAccountId":0,
            "userId":101010
            }
  }
```

{% endtab %}

{% tab title="Java" %}

```
{
    "total":1,
    "data":[
      {
        "id":"ce425ffe-bc62-421f-9261-e6819a5eab43",
        "source":"5511900000000",
        "origin":"5511900000000",
        "userProfile":{
          "name":"username",
          "whatsAppId":"5511900000000"
          },
        "correlationId":"...",
        "messageId":"aae959ca-5944-405a-809a-75ff142bc234",
        "message":{
            "type":"BUTTON",
            "messageText":"Sim",
            "payload":"sim"
            },
        "receivedAt":1513616971473,
        "receivedDate":"2020-07-22T14:24:41Z",
        "session":{
            "id":"06deff90-cc27-11ea-b94f-0050569e62ca",
            "createdAt":1513616971473
              }
          }
      ],
        "clientInfo":{
            "customerId":10,
            "subAccountId":0,
            "userId":101010
            }
  }
```

{% endtab %}
{% endtabs %}

### Message: <a href="#message" id="message"></a>

<table><thead><tr><th width="208">Campo</th><th width="303">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>type</td><td>Tipo de mensagem enviada pelo usuário final: TEXT - BUTTON - IMAGE - AUDIO - DOCUMENT</td><td>String</td></tr><tr><td>messageText</td><td>A mensagem de texto (MO) enviada pelo usuário final.</td><td>String</td></tr><tr><td>waGroupId</td><td>Grupo ao qual a mensagem foi enviada.</td><td>String</td></tr><tr><td>mediaUrl</td><td>Url para download da midia enviada pelo usuário final.</td><td>String</td></tr><tr><td>mimeType</td><td>Mime type do arquivo enviado pelo usuário final.</td><td>String</td></tr><tr><td>caption</td><td>Media label enviada pelo usuário final.</td><td>String</td></tr><tr><td>location</td><td>Localidade enviada pelo usuário final.</td><td>Location</td></tr><tr><td>contacts</td><td>Contatos enviados pelo usuário final.</td><td>Contact[]</td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
            "type": "IMAGE",
           "mediaUrl": "https://...",
           "mimeType": "image/jpg",
           "caption": "..."
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

### Referral: <a href="#referral" id="referral"></a>

**Todos os campos desse objeto são opcionais (podem ser nulos).**

<table><thead><tr><th width="158">Campo</th><th width="467">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>headLine</td><td>Título do ad que gerou a mensagem.</td><td>String</td></tr><tr><td>body</td><td>Corpo do ad que gerou a mensagem.</td><td>String</td></tr><tr><td>sourceType</td><td>Tipo da propaganda que o usuario clicou. Valores podem ser “ad”, “post” ou “unknown”.</td><td>String</td></tr><tr><td>sourceId</td><td>Identificador da propaganda no Facebook.</td><td>String</td></tr><tr><td>sourceUrl</td><td>Url da propaganda. Leva para a propaganda que o usuario clicou.</td><td>String</td></tr><tr><td>mediaType</td><td>Tipo mídia presente na propaganda. Pode ser “image” ou “video”.</td><td>String</td></tr><tr><td>mediaUrl</td><td>Url da mídia presente na propaganda.</td><td>String</td></tr></tbody></table>

> Exemplo de mensagem de texto com referral:

{% tabs %}
{% tab title="JSON" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "name of the user"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "referral": {
        "headLine": "...",
        "body": "...",
        "sourceType": "...",
        "sourceId": "...",
        "sourceUrl": "...",
        "mediaType": "...",
        "mediaUrl": "..."
      },
      "mtSentAt": 1513616971473,
      "message": {
        "type": "TEXT",
        "messageText": "Hi, this is a message from the user"
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

### Session <a href="#session" id="session"></a>

<table><thead><tr><th width="164">Field</th><th width="413">Details</th><th>Type</th></tr></thead><tbody><tr><td>sessionId</td><td>Id da sessão para este usuário.</td><td>String</td></tr><tr><td>createdAt</td><td>Timestamp de criação da sessão</td><td>Long</td></tr></tbody></table>

### UserProfile: <a href="#userprofile" id="userprofile"></a>

<table><thead><tr><th>Campo</th><th width="129">Obrigatório</th><th width="284">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>name</td><td>Não</td><td>Nome de perfil do usuário</td><td>String</td></tr></tbody></table>

### Location <a href="#location" id="location"></a>

<table><thead><tr><th width="145">Campo</th><th width="484">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>name</td><td>Nome do local.</td><td>String</td></tr><tr><td>address</td><td>Endereço do local.</td><td>String</td></tr><tr><td>geoPoint</td><td>Geopoint enviado pelo usuário final. Formato: “latitude,longitude”</td><td>String</td></tr></tbody></table>

> Exemplo de mensagem de localização:

{% tabs %}
{% tab title="JSON" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "location": {
               "geoPoint": "-22.894180,-47.047960",
               "name": "Sinch",
               "address": "Av. Cel. Silva Telles"
           }
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

### Contact <a href="#contact" id="contact"></a>

<table><thead><tr><th width="143">Campo</th><th width="144">Obrigatório</th><th>Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>addresses</td><td>Não</td><td>Endereço(s) completo(s) do contato.</td><td>Address[]</td></tr><tr><td>birthday</td><td>Não</td><td>Data de aniversário com formato YYYY-MM-DD.</td><td>String</td></tr><tr><td>emails</td><td>Não</td><td>Endereço(s) de e-mail de contato.</td><td>Email[]</td></tr><tr><td>name</td><td>Não</td><td>Nome completo do contato.</td><td>Name</td></tr><tr><td>org</td><td>Não</td><td>Informações da organização do contato.</td><td>Org</td></tr><tr><td>phones</td><td>Não</td><td>Número(s) de telefone do contato.</td><td>Phone[]</td></tr><tr><td>urls</td><td>Não</td><td>URL(s) do contato.</td><td>Url[]</td></tr></tbody></table>

Exemplo de mensagem de contato:

{% tabs %}
{% tab title="JSON" %}

```
{
  "total": 1,
  "data": [
    {
      "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
      "source": "5519900000000",
      "origin": "5519900000000",      
      "userProfile": {
        "name": "nome do usuário"
      },
      "campaignId": 100,
      "correlationId": "...",
      "campaignAlias": "...",
      "flowId": "....",
      "extraInfo": "...",
      "message": {
           "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
      },
      "receivedAt": 1513616971473,
      "receivedDate": "2017-12-18T17:09:31.473Z"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

### Address <a href="#address" id="address"></a>

<table><thead><tr><th>Campo</th><th width="128">Obrigatório</th><th width="286">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>street</td><td>Não</td><td>Nome e número da rua.</td><td>String</td></tr><tr><td>city</td><td>Não</td><td>Nome da cidade.</td><td>String</td></tr><tr><td>state</td><td>Não</td><td>Sigla do Estado.</td><td>String</td></tr><tr><td>zip</td><td>Não</td><td>CEP.</td><td>String</td></tr><tr><td>country</td><td>Não</td><td>Nome completo do país.</td><td>String</td></tr><tr><td>country_code</td><td>Não</td><td>Abreviação de país (Duas letras).</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

### Email <a href="#email" id="email"></a>

<table><thead><tr><th width="138">Campo</th><th width="161">Obrigatório</th><th width="299">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>email</td><td>Não</td><td>Endereço de e-mail.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores Padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

### Name <a href="#name" id="name"></a>

<table><thead><tr><th>Campo</th><th width="141">Obrigatório</th><th width="286">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>first_name</td><td>Não</td><td>Primeiro nome.</td><td>String</td></tr><tr><td>last_name</td><td>Não</td><td>Último nome.</td><td>String</td></tr><tr><td>middle_name</td><td>Não</td><td>Nome do meio.</td><td>String</td></tr><tr><td>name_suffix</td><td>Não</td><td>Sufixo do nome.</td><td>String</td></tr><tr><td>name_prefix</td><td>Não</td><td>Prefixo do nome.</td><td>String</td></tr><tr><td>formatted_name</td><td>Não</td><td>Nome completo como normalmente aparece.</td><td>String</td></tr></tbody></table>

### ORG <a href="#org" id="org"></a>

<table><thead><tr><th width="128">Campo</th><th width="138">Obrigatório</th><th width="362">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>company</td><td>Não</td><td>Nome da organização do contato.</td><td>String</td></tr><tr><td>department</td><td>Não</td><td>Nome do departamento do contato.</td><td>String</td></tr><tr><td>title</td><td>Não</td><td>Título corporativo do contato.</td><td>String</td></tr></tbody></table>

### Phone <a href="#phone" id="phone"></a>

<table><thead><tr><th width="139">Campo</th><th width="152">Obrigatório</th><th width="347">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>phone</td><td>Não</td><td>Número de telefone formatado.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrões: CELL, MAIN, IPHONE, HOME, WORK.</td><td>String</td></tr><tr><td>wa_id</td><td>Não</td><td>Identficador WhatsApp.</td><td>String</td></tr></tbody></table>

### URL <a href="#url" id="url"></a>

<table><thead><tr><th width="144">Campo</th><th width="154">Obrigatório</th><th width="327">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>url</td><td>Não</td><td>URL do contato.</td><td>String</td></tr><tr><td>type</td><td>Não</td><td>Valores padrões: HOME, WORK.</td><td>String</td></tr></tbody></table>

### ExtraInfo (Controle de Fluxo de MO- Listas de Segmentação) <a href="#extrainfo-controle-de-fluxo-de-mo-listas-de-segmenta-o" id="extrainfo-controle-de-fluxo-de-mo-listas-de-segmenta-o"></a>

A mensagem terá uma lista de listas de segmentação no campo de extraInfo. Nossos parceiros a utilizam para direcionar as mensagens para certos fluxos. O nome da chave é **segmentation\_lists** e ela contém uma lista de **SegmentationList**.

<table><thead><tr><th width="179">Campo</th><th width="410">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>Identificador da lista de segmentação</td><td>Integer</td></tr><tr><td>customerId</td><td>Identificador do cliente</td><td>Integer</td></tr><tr><td>subAccountId</td><td>Identificador da subconta</td><td>Integer</td></tr><tr><td>name</td><td>Nome da lista de segmentação</td><td>String</td></tr><tr><td>active</td><td>Status da lista de segmentação</td><td>Boolean</td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}

```
{  
   "segmentation_list":[  
      {  
         "id":26,
         "customerId":42,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List",
         "active":true
      },
      {  
         "id":27,
         "customerId":43,
         "subAccountId":0,
         "name":"Wavy WhatsApp Segmentation List 2",
         "active":true
      }
   ]
}
```

{% endtab %}
{% endtabs %}

{% hint style="danger" %}
Para os objetos que contêm um campo de tipo, os valores listados são considerados os valores padrões que podem ser vistos, no entanto, você pode definir nesse campo qualquer valor descritivo que desejar.
{% endhint %}


# Click to WhatsApp – Sinch API

### Visão Geral&#x20;

O Click to WhatsApp é uma funcionalidade que permite aos anunciantes direcionarem os usuários diretamente para conversas no WhatsApp com sua empresa. Ele oferece uma maneira conveniente para os clientes iniciarem uma conversa com sua empresa a partir de um anúncio no Facebook, Instagram ou Messenger.&#x20;

### Recursos Principais&#x20;

#### Direcionamento Direto para Conversas&#x20;

Os usuários podem clicar no anúncio e iniciar uma conversa no WhatsApp com a empresa instantaneamente, sem a necessidade de discar números ou procurar contatos.&#x20;

#### Atendimento Personalizado&#x20;

Permite que as empresas forneçam atendimento personalizado aos clientes, respondendo às perguntas e fornecendo informações relevantes de forma direta e eficiente.&#x20;

#### Facilidade de Integração&#x20;

Integra-se facilmente aos anúncios existentes no Facebook, Instagram e Messenger, proporcionando uma experiência de usuário contínua.&#x20;

#### Ampliação do Alcance&#x20;

Ajuda as empresas a alcançarem um público mais amplo e engajar os clientes de forma eficaz, aproveitando a popularidade e o alcance das plataformas do Facebook.&#x20;

#### Benefícios&#x20;

#### Maior Interatividade&#x20;

Proporciona uma maneira interativa para os clientes se envolverem com a empresa, tornando mais fácil para eles obterem informações e fazerem perguntas.&#x20;

#### Aumento das Conversões&#x20;

Facilita o processo de conversão, permitindo que os clientes ajam imediatamente após verem o anúncio, o que pode levar a uma maior taxa de conversão.&#x20;

#### Melhoria da Experiência do Cliente&#x20;

Oferece uma experiência conveniente e sem atritos para os clientes, o que pode levar a uma melhor satisfação do cliente e fidelidade à marca.&#x20;

### &#x20;Personalização&#x20;

O Click to WhatsApp suporta várias campanhas simultâneas, permitindo a personalização de cada anúncio com base em seu identificador único de campanha (sourceID) do Facebook. Integrando um chatbot, você pode adaptar cada anúncio para atender às preferências e necessidades individuais dos clientes. Por exemplo, você pode configurar diferentes fluxos de conversa com base nas preferências e necessidades dos clientes, direcionando-os de forma mais eficaz para os produtos ou serviços que desejam.&#x20;

<figure><img src="/files/5q4MO2TafTvl3h8sAYwJ" alt=""><figcaption></figcaption></figure>

### Como Usar&#x20;

Para usar o Click to WhatsApp, os anunciantes precisam configurar anúncios no Gerenciador de Anúncios do Facebook ou por meio da API de Marketing do Facebook. Eles podem selecionar o objetivo da campanha, criar um conjunto de anúncios com destino ao WhatsApp e desenvolver criativos atrativos que incentivem os usuários a iniciarem uma conversa no WhatsApp.&#x20;

Os dados do anúncio são carregados em uma caixa pré-configurada para o usuário iniciar a interação com o canal. Assim que a mensagem e a caixa são enviadas via WhatsApp API, o MO (Outgoing Message) tem o campo Referral preenchido com todos os dados do anúncio, permitindo o momento chave de captar a informação e personalizar a interação.&#x20;

### &#x20;Estrutura de Dados do Anúncio&#x20;

{% tabs %}
{% tab title="Exemplo" %}
{&#x20;

&#x20; "total": 1,&#x20;

&#x20; "data": \[&#x20;

&#x20;   {&#x20;

&#x20;     "id": "ce425ffe-bc62-421f-9261-e6819a5eab43",&#x20;

&#x20;     "source": "5519900000000",&#x20;

&#x20;     "origin": "5519900000000",&#x20;

&#x20;     "userProfile": {&#x20;

&#x20;       "name": "name of the user"&#x20;

&#x20;     },&#x20;

&#x20;     "campaignId": 100,&#x20;

&#x20;     "correlationId": "...",&#x20;

&#x20;     "campaignAlias": "...",&#x20;

&#x20;     "flowId": "....",&#x20;

&#x20;     "extraInfo": "...",&#x20;

&#x20;     "referral": {&#x20;

&#x20;       "headLine": "...",&#x20;

&#x20;       "body": "...",&#x20;

&#x20;       "sourceType": "...",&#x20;

&#x20;       "sourceId": "...",&#x20;

&#x20;       "sourceUrl": "...",&#x20;

&#x20;       "mediaType": "...",&#x20;

&#x20;       "mediaUrl": "..."&#x20;

&#x20;     },&#x20;

&#x20;     "mtSentAt": 1513616971473,&#x20;

&#x20;     "message": {&#x20;

&#x20;       "type": "TEXT",&#x20;

&#x20;       "messageText": "Hi, this is a message from the user"&#x20;

&#x20;     },&#x20;

&#x20;     "receivedAt": 1513616971473,&#x20;

&#x20;     "receivedDate": "2017-12-18T17:09:31.473Z"&#x20;

&#x20;   }&#x20;

&#x20; ]&#x20;

}&#x20;
{% endtab %}
{% endtabs %}

Campos da Estrutura de Dados do Anúncio&#x20;

<table data-header-hidden><thead><tr><th width="233"></th><th></th></tr></thead><tbody><tr><td>Campo </td><td>Descrição </td></tr><tr><td>id </td><td>Identificador da lista de segmentação. </td></tr><tr><td>customerId </td><td>Identificador do usuário. </td></tr><tr><td>subAccountId </td><td>Identificador da subconta. </td></tr><tr><td>Referral </td><td>Um objeto opcional que contém informações sobre a referência associada à mensagem. </td></tr><tr><td>headLine </td><td>Título ou manchete no anúncio que gerou a mensagem. </td></tr><tr><td>body </td><td>Corpo ou conteúdo do anúncio. </td></tr><tr><td>sourceType </td><td>Tipo de fonte do anúncio. Pode ser "ad" (anúncio), "post" (postagem) ou "unknown" (desconhecido). </td></tr><tr><td>sourceId </td><td>Identificador do anúncio no Facebook. </td></tr><tr><td>sourceUrl </td><td>URL do anúncio. </td></tr><tr><td>mediaType </td><td>Tipo de mídia do anúncio. Pode ser "image" (imagem) ou "video" (vídeo). </td></tr><tr><td>mediaUrl </td><td>URL da mídia do anúncio. </td></tr></tbody></table>

[**Referência documentação**](/documentacao-tecnica-whatsapp/documentacao-tecnica-whatsapp/mensagens-mo)


# Instruções e boas práticas

Neste documento apresentaremos a vocês algumas boas práticas de utilização da plataforma, dessa forma você poderá aproveitar a plataforma da melhor forma possível.

## Principais conceitos e regras do WhatsApp

O que é importante ter em mente para começar uma operação com o WhatsApp Business API.

Para utilizar a ferramenta como meio de comunicação é importante ter atenção com duas variáveis:

* **Taxa de qualidade (quality rate);**
* **Limite de envios;**

Esses dois indicadores representam o nível de satisfação dos clientes finais e podem impactar suas entregas.

O WhatsApp permite que o cliente final decida se a empresa é relevante ou não para seu usuário final através das funções **bloquear** e **marcar como spam**.

Quando o usuário final decide que sua comunicação é irrelevante acontece o **block rate**, e isso impacta negativamente o nível de qualidade (quality rate) das suas mensagens.

Os principais motivos de bloqueio são:

* Experiência ruim com bot;
* O cliente quer falar sobre assunto X e a empresa sobre assunto Y.
* Falta ou demora na transferência de atendimento.
* Necessidade não atendida.

A sua qualidade de comunicação será metrificada em três estados diferentes:

* <mark style="color:green;">**Alto (verde):**</mark> Você está com uma boa comunicação com seus clientes.
* <mark style="color:yellow;">**Médio (amarelo):**</mark> Usuários estão reportando suas mensagens como spam ou bloqueando seu número.
* <mark style="color:red;">**Baixo (vermelho):**</mark> Engajamento ruim (**necessário rever template/bot/base**).

<figure><img src="/files/3mZUZmNEfo4YFeOm0tXY" alt=""><figcaption></figcaption></figure>

## Tier

Os indicadores listados acima influenciam diretamente na limitação de envio de mensagens.

O tier é a quantidade de usuários que sua empresa pode enviar mensagens dentro de 24 horas.

Ao registrar seu número de telefone, sua empresa inicia no **tier 1**, que tem o limite de 1000 mensagens a **cada 24 horas**.

Nós temos quatro faixas para os tiers:

* **Faixa 1** - Permite enviar mensagens para **1.000** usuários únicos por **24h**.
* **Faixa 2** - Permite enviar mensagens para **10.000** usuários únicos por **24h**.
* **Faixa 3** - Permite enviar mensagens para **100.000** usuários únicos por **24h**.
* **Faixa 4** - Permite enviar **mensagens ilimitadas**.

<figure><img src="/files/jimQ1KBKzp3itA0aSPKM" alt=""><figcaption></figcaption></figure>

## Como aumentar meu tier?

O número de telefone de uma empresa será atualizado para o próximo nível se:

* A classificação de qualidade do número não for baixa.
* A quantidade cumulativa de usuários para os quais envia notificações soma duas vezes o limite de mensagens atual em um período de 7 dias. \
  Uma empresa fará o upgrade do Nível 1 para o Nível 2 quando enviar mensagens para um total de 2.000 usuários em um período de 7 dias por exemplo.&#x20;

{% hint style="info" %}
O tempo mínimo em que essa mudança pode ocorrer é após **48 horas do 1 disparo**.
{% endhint %}

<figure><img src="/files/65pDFDrWzKHUOvWN2Hvv" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Lembre-se que não é permitido enviar mensagens para um número superior ao seu tier, porque isso deixará sua linha restrita.**
{% endhint %}

## **Meu tier pode cair?**

Sim, quando uma campanha tem uma alta taxa de bloqueios a Meta (Facebook) categoriza a linha com a qualidade vermelha.

Sua linha ficará marcada com o status <mark style="color:yellow;">Sinalizado</mark> imediatamente, quando sua linha está marcada como sinalizada todas suas mensagens enviadas não contam para subir de tier.

{% hint style="info" %}
**Você precisa esperar 7 dias para que a companhia melhore sua qualidade.**
{% endhint %}

Após os 7 dias a linha retorna ao status de <mark style="color:green;">**Conectada**</mark> ou <mark style="color:yellow;">**Sinalizada**</mark> e o WhatsApp entende que o problema foi resolvido.

{% hint style="danger" %}
Caso a sua linha permaneça em vermelho a plataforma entende que você não está utilizando o recurso de forma adequada, se seus usuários permanecerem bloqueando seu número sua empresa terá o tier reduzido.
{% endhint %}

## Pausa de templates

Caso sua campanha atinja uma baixa qualidade de comunicação (<mark style="color:red;">**vermelha**</mark>), o template utilizado para comunicação será pausado para proteger a qualidade da sua linha.

A pausa ocorre de 3 formas diferentes:

1. **Pausa aplicada por 3 horas**, ou seja, depois da pausa aplicada você só poderá retomar sua campanha após 3 horas.
2. **Pausa aplicada por 6 horas**, ou seja, depois da pausa aplicada você só poderá retomar sua campanha após 6 horas
3. **Seu template será desativado.**

### O que fazer enquanto meu template está em pausa?

* **Revise quais usuários estão recebendo esta campanha:** Quanto mais pessoas bloquearem o seu número, pior será a qualidade da sua campanha. \
  Tente enviar sua campanha a uma base comprometida que tenha consentido em receber mensagens por WhatsApp (opt-in);&#x20;
* **Ofereça uma saída alternativa da conversa:** em caso de que seu usuário não queira seguir recebendo mensagens por WhatsApp. \
  Isto reduz a possibilidade de bloqueio de números (opt-out);&#x20;
* **Revise o texto de seu template:** para se assegurar de que a mensagem é clara e objetiva;
* Por enquanto, não será possível editar a mesma campanha na plataforma da Sinch. Portanto, pedimos que crie um novo template e revise sua base antes de enviar uma nova campanha. \
  [**Baixe o relatório de usuários**](/whatsapp/introducao-ao-messaging-whatsapp/relatorio-detalhado-legado)**,** para saber quem já recebeu a sua campanha, e descarte-os para que não a recebam novamente;&#x20;
* [**Fale com seu CSM em caso de dúvida**](https://servicecenter.sinch.com/)**;**

## Boas práticas para criar templates

{% hint style="success" %}

* Observe a frequência das mensagens;
* Evite enviar aos clientes muitas mensagens por dia;
* Deixe claro o nome do seu template, em vez de usar um nome como "template\_014", use "bus\_ticket\_details";
* Verifique o formato dos parâmetros, por exemplo, o número de variáveis que eles têm: {{1}}, {{2}}, etc;
* Evite enviar textos muito longos para o cliente;
* Certifique-se de que o idioma selecionado corresponda ao conteúdo e que você não esteja "misturando" idiomas (spanglish);&#x20;
* Evite erros ortográficos ou gramaticais;
* Torne as mensagens altamente personalizadas e úteis aos usuários;
* Se apresentar no início da conversa (ex.: Olá, sou o Assistente Virtual ...) dá maior credibilidade e contexto à pessoa impactada pela mensagem.
  {% endhint %}

## Boas práticas para o envio de mensagens

{% hint style="success" %}

* Não envie templates aos usuários sem antes ter opt-in para enviar mensagens;
* O botão "Sair" dá ao usuário a [**opção de saída (Opt-out)**](/whatsapp/introducao-ao-messaging-whatsapp/relatorio-de-opt-out-legado), garante uma base limpa e evita bloqueios que prejudicam a qualidade do canal;
* Pense na relevância do conteúdo com base nas atividades recentes do usuário com a empresa;
* Textos curtos e objetivos costumam ter qualidade mais alta;
* Se apresentar no início da mensagem traz mais credibilidade e contexto (Olá, sou a Assistente Virtual);
* Evite enviar muitas mensagens ao mesmo usuário;
* Conteúdo de venda de moeda virtual ou física não é permitida;
  {% endhint %}


# Políticas de Atendimento Humano

* É obrigatório que esteja claro o caminho para seu cliente obter atendimento humano dentro do Whatsapp.
* Formas de direcionamento ao atendimento Humano **aceitas dentro da política do Whatsapp:**\
  **1. Transbordo Humano dentro do canal** ( nós indicamos este, uma vez que facilita a vida do seu cliente.)\
  **2. Mensagem esclarecendo as formas que o cliente tem para entrar em contato com um Humano :** Direcionamento para um número de telefone, e-mail ou formulário Web para abertura de chamado ou direcionamento para Loja física.
* **Exemplo:** Olá para falar com um de nossos atendentes por favor ligue para: XXXXX.&#x20;
* **Exemplo**: Olá para falar com um de nossos atendentes por favor envie email para: XXXXXX&#x20;

{% hint style="info" %}
Acompanhe mais informações em: [**WhatsApp Policies**](https://www.whatsapp.com/policies/business-policy/)**.**
{% endhint %}

{% hint style="danger" %}
**O não atendimento desta política irá impactar a qualidade do canal e se não solucionado poderá impactar o tier ( causando uma redução do mesmo).**
{% endhint %}


# Introdução ao Messaging - WhatsApp

O messaging é nossa plataforma de gerenciamento de mensagens, é a partir dela que você consegue enviar e metrificar todos os seus disparos.

## Como acessar o Messaging?

Para acessar a plataforma, clique no link a seguir: [**Messaging - MM2**](https://messaging.wavy.global/)**,** você será direcionado para uma página como essa:

<figure><img src="/files/akb1QLIJtx1YZg59dxFM" alt=""><figcaption><p>Tela de login</p></figcaption></figure>

## Quais são minhas credenciais de acesso?

Nós sempre criamos seu login com seu endereço de email corporativo, não utilizamos contas pessoais para criação de novas contas.

Assim que seu ambiente estiver pronto você receberá um email com as informações de acesso.

<figure><img src="/files/1gbZemKcDvU7yKvSOanu" alt=""><figcaption><p>email de configuração de senha</p></figcaption></figure>

Não recebeu o email com as orientações de acesso? É simples acesse: [**Reset de senha**](https://messaging.wavy.global/password)**.**

## Esqueci a minha senha, e agora?

Em casos de esquecimento de senha, você pode clicar no botão [**esqueci minha senha**](#esqueci-a-minha-senha-e-agora) da página inicial, inserir seu endereço de email e as informações para troca de senha serão enviadas para você.

<figure><img src="/files/yyQKNoMbcofgBpWMzwJi" alt=""><figcaption><p>reset de senha</p></figcaption></figure>

Tudo pronto?&#x20;

Agora vamos aos próximos passos com a ferramenta.


# Glossário

Aqui estão listados alguns termos básicos que você precisa se familiarizar para usar o Messaging.

<table><thead><tr><th width="224" align="center">Palavra</th><th align="center">Descrição</th></tr></thead><tbody><tr><td align="center"><strong>Facebook Business Manager</strong></td><td align="center">É Plataforma de gerenciamento de negócios de empresas na Meta (Facebook). Abriga a Conta geral da Sinch (empresa) no Facebook e também a dos nossos clientes. Inclui todos os serviços e aplicativos da Meta (Facebook) (Contas de anúncios, Páginas, Apps, Funcionários, etc). O Business Manager é referenciado por um ID que precisamos receber de cada cliente nosso - o BM ID (Business Manager ID) - para poder configurar a conta do cliente no Whatsapp (WABA)</td></tr><tr><td align="center"><strong>WABA</strong></td><td align="center">Whatsapp Business Account (WABA) – Conta de cada Cliente Sinch no Whatsapp dentro da qual serão criadas os Números de Telefone (ou “Contas Verificadas”)</td></tr><tr><td align="center"><strong>Números de Telefone</strong></td><td align="center">Cada número que é criado dentro de um WABA, como uma “Conta Verificada”. Depois de criada e instalada o Whatsapp pode dar ao nosso cliente o badge VERDE, de “Verified Account” ou mante-lo apenas com o badge CINZA, de “Conta Comercial”. Isso é uma decisão do Whatsapp.</td></tr><tr><td align="center"><strong>Container</strong></td><td align="center">Cada número de WhatsApp necessita de uma solução de tecnologia que esta vinculada á containers (servidores.)</td></tr><tr><td align="center"><strong>API</strong></td><td align="center">É um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.</td></tr><tr><td align="center"><strong>Blocklist</strong></td><td align="center">São números que a empresa adiciona e classifica como números que não podem receber mensagens. Exemplo: número de concorrentes.</td></tr><tr><td align="center"><strong>Carrier</strong></td><td align="center">Você também é cliente de uma Carrier! Denominamos por Carrier a Operadora que detém o número em questão. Ou seja, meu número é TIM, então a Carrier do meu MSISDN é a TIM.</td></tr><tr><td align="center"><strong>Conta ou Customer ID</strong></td><td align="center">Cada um de nossos clientes possui um customer ID.</td></tr><tr><td align="center"><strong>Conversion Rate</strong></td><td align="center">A taxa de conversão, ou conversion rate (principalmente usado por clientes internacionais) é a fórmula utilizada para medir a quantidade de mensagem trafegada VS o volume de entrega. Quando há queda de DR, os clientes são afetados diretamente na conversion rate, podendo direcionar o tráfego para outro broker de SMS que esteja com a conversion rate melhor.</td></tr><tr><td align="center"><strong>Deploy</strong></td><td align="center">Um Deploy, ou lançamento, é toda atualização, lançamento ou nova versão de alguma feature. Podendo ser em homologação ou produção, todos os deploys incrementam ou retiram alguma feature.</td></tr><tr><td align="center"><strong>FTP</strong></td><td align="center">Esse sistema é muito utilizado na Sinch para envios em lotes grandes. Cada plataforma (WA ou SMS) deve respeitar um formato pré estabelecido</td></tr><tr><td align="center"><strong>MO</strong></td><td align="center">MO, ou Mobile Originated, é toda mensagem que parte de um aparelho para a empresa em questão. É utilizado no caso de perguntas e respostas por mensagem, quando é necessária a confirmação do usuário.</td></tr><tr><td align="center"><strong>MT</strong></td><td align="center">MT, ou Mobile Terminated, é toda mensagem que tem com destino o aparelho do usuário. Ou seja, a empresa envia uma mensagem para o número em questão.</td></tr><tr><td align="center"><strong>MSISDN</strong></td><td align="center">É um número que identifica exclusivamente uma assinatura em uma rede móvel GSM ou UMTS.</td></tr><tr><td align="center"><strong>Opt-in</strong></td><td align="center">Opt-in é a permissão dada pelo usuário para que uma empresa possa entrar em contato com ela por determinado canal. Essa permissão pode ser, por exemplo, através do site da própria empresa, email ou SMS.</td></tr><tr><td align="center"><strong>Opt-out</strong></td><td align="center">Opt-out é quando o usuário opta por não receber mais mensagens daquele contato por um determinado canal. Quando um usuário opta por sair da lista de contato, o nosso sistema bloqueia qualquer tentativa de envio que possa ocorrer para o usuário daquele contato.</td></tr><tr><td align="center"><strong>Subconta</strong></td><td align="center">Dentro de uma Conta, é possível ter várias Subcontas com “departamentos” e configurações personalizadas, onde é possível realizar vários disparos diferentes, como atendimento, CRM, Status de pedido, entre outros.</td></tr><tr><td align="center"><strong>Webhook</strong></td><td align="center">Um webhook é uma ponte de informação entre o nosso sistema Sinch e a empresa dona do Webhook. Essa ponte é feita através de uma URL onde trafegam informações entre o nosso sistema e o sistema desejado pelo nosso cliente.</td></tr><tr><td align="center"><strong>Whitelist</strong></td><td align="center">Os usuários que estão em Whitelist, são usuários que a empresa adiciona e classifica como usuários que podem receber mensagens. Isso não significa que esse usuário deu a permissão em algum momento.</td></tr><tr><td align="center"><strong>Template WhatsApp</strong></td><td align="center">Um template utilizado para enviar mensagens ativas para seus clientes. Todo template deve ser aprovado pelo WhatsApp antes de ser usado – dessa forma eles garantem que você está seguindo as diretrizes de conteúdo permitidas.</td></tr><tr><td align="center"><strong>Sessão Aberta</strong></td><td align="center">Uma sessão só é dada como aberta quando o usuário final responde nosso contato ativo, e cada sessão tem uma duração de 24 horas fixas.</td></tr><tr><td align="center"><strong>Sessão Fechada</strong></td><td align="center">Uma sessão só é dada como aberta quando o usuário final responde nosso contato ativo, e cada sessão tem uma duração de 24 horas fixas.</td></tr><tr><td align="center"><strong>Tier</strong></td><td align="center">Tier é a quantidade de <strong>usuários</strong> que podemos enviar mensagens dentro de 24h.</td></tr></tbody></table>


# Tela inicial da plataforma

Sua tela inicial para controle de dados da ferramenta

{% hint style="danger" %}
**O conteúdo das mensagens enviadas estão protegidos por criptografia.**
{% endhint %}

Sempre que realizar o acesso a ferramenta, essa será sua tela inicial.

Ela traz algumas informações importantes sobre a utilização da ferramenta.&#x20;

No topo da tela você terá algumas informações relacionadas ao seu número de telefone ativado, são elas:

<figure><img src="/files/w1IIapm1cAbXiU1zVoH6" alt=""><figcaption><p>dados do número</p></figcaption></figure>

**Telefone:** Seu número de telefone que foi conectado.

**Status:** Se sua qualidade de comunicação cair o status do seu número pode mudar para sinalizado ou restrito.

* **Sinalizado:** ocorre quando a classificação por qualidade atinge um estado baixo. As empresas não podem atualizar os níveis do limite de mensagens durante a fase Sinalizado. Se a qualidade da mensagem tiver melhorado para um estado alto ou médio no sétimo dia depois de o status ter sido alterado para Sinalizado, ele retornará para Conectado. Se a classificação por qualidade não melhorar, o status ainda retornará para Conectado, mas a sua conta será colocada em um [nível de limite de mensagens](https://developers.facebook.com/docs/whatsapp/api/rate-limits#messaging) mais baixo.
* **Restrito:** ocorre quando você atinge o limite de mensagens. Durante a fase Restrito, não será possível enviar mensagens de notificação até que a janela de 24 horas seja redefinida. Você ainda pode responder a quaisquer mensagens que os clientes enviarem.

**Qualidade atual:** A qualidade se baseia nas mensagens recentes que os seus clientes recebem nos últimos sete dias, essa avaliação é determinada pelo feedback deles, como bloqueios recentes ou denúncias do número.

Classificação por qualidade exibe os seguintes estados de qualidade:

* <mark style="color:green;">**Verde:**</mark> Qualidade alta;
* <mark style="color:yellow;">**Amarelo:**</mark> Qualidade média;
* <mark style="color:red;">**Vermelho**</mark>: Qualidade baixa;

**Tier**: É a quantidade de usuários que você pode enviar para mensagens dentro de 24 horas. Nós conseguimos aumentar a quantidade de disparos de acordo com a usabilidade da conta.

## Dashboard Inicial

Nesse dashboard inicial você poderá metrificar a quantidade de envios realizados nos últimos 7, 15 ou 30 dias.

![Dashboard inicial](/files/-Mib820vV80QNUJ0slVL)

Nesse gráfico você terá apenas uma visão geral da plataforma para que possa mensurar a quantidade de disparos realizados durante o período.

A ferramenta lista o total de mensagens disparadas, o total de mensagens que foram enviadas e o total de mensagens apresentaram erros.

O gráfico listado será segmentado por dias e cores:

* <mark style="color:green;">**Barra verde:**</mark> Envios realizados com sucesso.
* **Barra cinza:** Envios que apresentaram erros.

Em nossa central de relatórios você sempre poderá acompanhar o que aconteceu com cada uma das mensagens enviadas.

{% embed url="<https://youtu.be/wpi6-vBAW7M?si=BNvpeku1eAnO0u-l>" %}


# Meu perfil | Idioma

Acesse informações sobre seu perfil de usuário na plataforma.

No topo superior direito da tela, expanda o menu de opções e selecione a função **meu perfil**.

<figure><img src="/files/p2PtIESFq4oFHSCMSoKa" alt=""><figcaption></figcaption></figure>

Clicando neste campo, você terá algumas informações importantes sobre seu usuário na plataforma, caso você tenha qualquer problema com a ferramenta nossa equipe de suporte solicita algumas informações que estão listadas nesse campo.

* **Usuário:** Este campo identifica quem é você dentro da plataforma, ele também aparece em nossa central de relatórios.
* **Cliente:** Este campo identifica a qual empresa o seu usuário responde dentro do sistema.
* **SubConta:** A qual subconta seu usuário responde, sempre que você realiza envios na ferramenta a subconta que realizou o disparo também fica registrada.\
  \
  O uso de subcontas é interessante para as empresas que tem diversas áreas utilizando o mesmo ambiente, facilita a divisão por centro de custo.
* **Token de autenticação:** Este token é único e exclusivo para cada uma das contas criadas. Ele é utilizado caso faça o uso de integração com outras plataformas.

{% hint style="info" %}
Precisa saber mais sobre integrações?

[**Acesse nossa documentação técnica**](https://doc-messaging.wavy.global/#key-terms)
{% endhint %}

<figure><img src="/files/W7MRSrQDSTsteRQTAXZX" alt=""><figcaption></figcaption></figure>

Logo abaixo você terá informações dos seus dados de email cadastrados na plataforma e alteração de senha se necessário.

<figure><img src="/files/1Omy2kgdL9GqjOI94RGN" alt=""><figcaption><p>dados de acesso</p></figcaption></figure>

{% hint style="info" %}
**Dica:** Você pode utilizar o username que aparece no campo meu perfil para fazer login na plataforma.

Ao acessar a plataforma digite seu nome de usuário e sua senha cadastrada.
{% endhint %}

Caso você não esteja visualizando o campo telefone na ferramenta é porque o administrador da plataforma ainda não habilitou a [**verificação em duas etapas para sua empresa.**](/permissoes/verificacao-em-duas-etapas)

## Idioma

Hoje a ferramenta suporta três idiomas nativos:

* Português;
* Inglês;
* Espanhol;

Você pode configurar a ferramenta no idioma mais confortável para você, para alternar o idioma da ferramenta:

No topo superior direito da tela expanda o menu e selecione idioma:

<figure><img src="/files/iDkTEl2gLd0Fb8PDhuxk" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/wpi6-vBAW7M?si=BNvpeku1eAnO0u-l>" %}


# Edição de conta

Entenda o que é possível alterar em sua conta de WhatsApp

Após todo processo de criação de conta WhatsApp, é possível realizar toda gestão das informações do WhatsApp dentro da plataforma da Sinch Messaging.

## Edição do perfil WhatsApp

{% hint style="danger" %}
**Atenção ao realizar edições, elas são refletidas de forma imediata ao usuário final.**&#x20;
{% endhint %}

### **O que nós podemos alterar:**

* Ramo da Empresa;
* Status;
* Descrição;
* Endereço;
* Website;
* Página Facebook ou Instagram;
* Email;
* Imagem;

### O que não podemos alterar:

* Nome da Empresa;
* Telefone;

## Como gerenciar sua conta WhatsApp:

Acesse sua conta no [Messaging \[MM2\]](https://messaging.wavy.global/) > Em seu menu lateral esquerdo busque por WhatsApp > Conta > Editar perfil.

<figure><img src="/files/p0wngaEVxgdohoESnm7G" alt=""><figcaption><p>editar perfil</p></figcaption></figure>

Você será direcionado para uma tela como essa onde poderá realizar as alterações necessárias:

<figure><img src="/files/pbn3B80nURsdGh3aaBiS" alt=""><figcaption></figcaption></figure>

**Alterar foto:** Basta clicar sobre a atual foto do seu perfil e a plataforma permitirá que você busque um arquivo na sua máquina para alteração.

Imagens com uma altura ou largura inferior a **192px** podem causar problemas quando o redimensionamento ocorre, por isso, recomenda-se um tamanho de imagem de **640x640** e máximo de **5mb**.

Lembre-se de clicar em salvar ao final da página para que as informações sejam refletidas.

### Conta no dispositivo móvel:

![Conta no dispositivo móvel ](/files/-MeaeENyyjPzCYMSSS4u)

{% embed url="<https://youtu.be/qnJmNkYbwZk?si=DefUuPsSZNxT4llV>" %}


# Informações importantes para o primeiro envio

Se este é seu primeiro contato com nossa plataforma, você precisa de algumas informações para conseguir realizar o envio das suas mensagens.​

**1**. Nós estamos trabalhando com um serviço que é disponibilizado pela Meta (Facebook), todas as comunicações que são realizadas precisam inicialmente passar por uma aprovação.​

**2.** As comunicações que são realizadas, são chamadas de Templates.​

**3.** Você pode criar até 1500 templates dentro da plataforma, para aumentar essa quantidade precisamos de uma aprovação do Meta (Facebook).​

**4.** Os templates depois de aprovados, podem ser reutilizados quantas vezes for necessário e não precisam passar por uma nova aprovação.​

**5.** A Sinch não tem ligação com as aprovações realizadas, todas as aprovações são feitas diretamente pela equipe Meta (Facebook). As aprovações podem levar em média 2 minutos (em alguns casos pode ocorrer latências que demoram até 24 horas para aprovação).

**6.** Caso seu template seja rejeitado, é necessário que crie um novo template do zero e envie novamente para a aprovação, não é possível editar o conteúdo e reenviar o mesmo.


# Template WA - O que é?

Entenda como funciona o Template de envio de WhatsApp.

Os **templates do WhatsApp**, ou também conhecidos como modelos de mensagem, são formatos para mensagens reutilizáveis comuns que podem ser enviados por uma empresa por meio da nossa plataforma Messaging.

Todo template **deve ser aprovado** pelo WhatsApp antes de ser usado – dessa forma eles garantem que você está seguindo as diretrizes de conteúdo permitidas.

Antes de submeter o seu Template para aprovação, lembre-se de que é preciso conter a mensagem inteira que quer enviar.

É possível adicionar a sua mensagem campos dinâmicos (variáveis), que você pode substituir por palavras chaves no momento do seu envio, como: nomes, empresas, endereços ou por palavras padrões que façam sentido no seu texto.

### [Clique e veja dicas para a Criação do seu Template](https://docs.wavy.global/whatsapp/cadastro-de-hsm#dicas-gerais-para-criacao-de-hsm)

O  fluxo para cadastro e solicitação de um novo Template é feito diretamente na plataforma Sinch Messaging.

Veja a seguir como cadastrar um template.


# Cadastro de Template

Criação de modelo de mensagem WhatsApp. Entenda como cadastrar o seu template.

## Consultando Templates:

No menu "**Templates**" do Messaging é possível consultar todos os templates já enviados para aprovação da Meta (Facebook) e também criar e submeter novos templates para análise.

Para acessar: No seu menu lateral esquerdo expanda o menu WhatsApp > Templates

<figure><img src="/files/ovdSXiwccdzqvEW0G4G4" alt=""><figcaption></figcaption></figure>

Você será direcionado para uma página, onde poderá visualizar todos os templates que já foram criados. Caso ainda não tenha templates criados a tela aparece em branco.

<figure><img src="/files/fsrEU05gxMYUP7B4xqvx" alt=""><figcaption></figcaption></figure>

Você conta com as seguintes informações:

1. **Criado em:** Data e hora da criação do seu modelo na plataforma.
2. **Nome do Template:** Nome que foi determinado na criação.
3. **Subconta:** Subconta que o modelo foi criado.
4. **Categoria:** Temos 3 categorias disponíveis que serão descritas abaixo.
5. **Mensagem:** Você visualiza o texto da sua mensagem.
6. **Idiomas e status de aprovação:** Idioma escolhido para o template e status de aprovação da Meta (Facebook). Há três status de aprovação:&#x20;

* <mark style="color:blue;">**Em análise:**</mark> O template ainda está sendo revisado pela plataforma (Meta).
* <mark style="color:red;">**Reprovado:**</mark> O template foi rejeitado.
* <mark style="color:green;">**Aprovado:**</mark> O template está disponível para uso.

7. **Qualidade:** Para este campo, nós teremos alguns status diferentes, são eles:

* **Ativo – Qualidade pendente**: o modelo de mensagem ainda precisa receber feedback dos clientes em relação à qualidade. Os modelos de mensagem com esse status podem ser enviados aos clientes.
* **Ativo – Alta qualidade**: o modelo recebeu pouco ou nenhum feedback negativo dos clientes. Os modelos de mensagem com esse status **podem ser enviados aos clientes**.
* **Ativo – Qualidade média**: o modelo recebeu feedback negativo de diversos clientes e pode ser pausado ou desabilitado em breve. Os modelos de mensagem com esse status **podem ser enviados aos clientes.**&#x20;
* **Ativo – Qualidade baixa**: o modelo recebeu feedback negativo de diversos clientes. Os modelos com esse status podem ser enviados aos clientes, mas talvez sejam suspensos ou desabilitados em breve. Por isso, recomendamos que você resolva os problemas relatados pelos clientes.&#x20;

{% hint style="info" %}
[**Consulte classificação de qualidade**](/whatsapp/introducao-ao-messaging-whatsapp/classificacao-de-qualidade)
{% endhint %}

8. **Modicação:** Em casos de edição no modelo de mensagem a plataforma registra a data da atualização.
9. **Ações:**&#x20;

&#x20;![](/files/HewNN4TYbv8nnlhRodih) Opção de visualizar o template por completo na tela de criação.

&#x20;   <img src="/files/5YLvNcXw9suGnYREIgp2" alt="" data-size="line"> Aqui você terá duas opções: [**Editar seu template**](/whatsapp/introducao-ao-messaging-whatsapp/editando-um-template) ou remover o template da plataforma, é importante lembrar que ao excluir um template (modelo de mensagem) você só poderá reutilizar o nome aplicado à ele após **30 dias**.

<figure><img src="/files/oVLOgJ0j9NZJ7a4gmoje" alt=""><figcaption></figcaption></figure>

## Filtros de busca

Caso você tenha diversos templates criados, você pode utilizar os filtros de busca da tela para encontrar suas comunicações e você terá algumas opções de filtro, são elas:

* **Busca por nome:** Encontre seu modelo de mensagem a partir do nome cadastrado.
* **Status:** Você pode segmentar suas visão aplicando um filtro apenas nos templates aprovados, reprovados, com erro, em análise ou em pausa.
* **Categoria:** Também é possível segmentar sua visão por categoria de template criada.

### Visualização por tipo de filtro

Utilizando os filtros você terá um tipo de visualização para cada segmentação que utilizar:

**Busca por nome:** Ao buscar por nome do seu modelo de mensagem, a plataforma fará um filtro com base no nome de busca que você está utilizando, não é necessário que você escreva o nome completo do seu modelo de mensagem, ao digitar as primeiras letras a ferramenta começa a listar todos os modelos de mensagem com aquelas iniciais:

<figure><img src="/files/zyr9ndkXKee75jjsXsbW" alt=""><figcaption></figcaption></figure>

Clicando sobre qualquer dos nomes, você terá a seguinte visualização:

<figure><img src="/files/x7OD4vkp7y6PNg0hLhzr" alt=""><figcaption></figcaption></figure>

Os dados serão refletidos dessa forma:

**Nome:** Nome aplicado ao modelo de mensagem.\
**Subconta:** Subconta em que o usuário que criou o template estava vinculado.\
**Categoria:** Qual categoria o template pertece, autenticação, marketing ou serviços.\
**Mensagem:** O texto cadastrado na criação do modelo de mensagem.\
**Status:** Qual é o status do seu modelo de mensagem se ele está aprovado, reprovado, com erro, em análise ou em pausa.\
**Qualidade:** Classificação de qualidade de um template.\
**Idioma:** O idioma que o template foi criado.\
**Ações:** Visualizar e [**edição de template**](/whatsapp/introducao-ao-messaging-whatsapp/editando-um-template).

**Busca por status:** A busca por status permite que você segmente sua visualização entre o seguintes status:\
\
**Aprovado:** Template está pronto para uso.\
**Reprovado:** O template foi reprovado pela ferramenta, neste caso você pode tentar uma nova aprovação [**editando seu modelo de mensagem**](/whatsapp/introducao-ao-messaging-whatsapp/editando-um-template).\
**Com erro:** Houve algum problema durante a sua aprovação, entre em contato com nossa equipe de [**suporte**](/suporte/introducao).\
**Em análise:** Seu modelo de mensagem ainda está sendo analisado pela equipe Meta.\
**Pausa:** O modelo foi pausado devido a feedback negativo recorrente dos clientes. Os modelos de mensagem com esse status não podem ser enviados aos clientes. Consulte [**Pausa no modelo**](/whatsapp/introducao-ao-messaging-whatsapp/pausa-no-modelo).

<figure><img src="/files/SNfNulJh4XepS8DXU0Im" alt=""><figcaption></figcaption></figure>

Os dados serão refletidos dessa forma:

**Nome:** Nome aplicado ao modelo de mensagem.\
**Subconta:** Subconta em que o usuário que criou o template estava vinculado.\
**Categoria:** Qual categoria o template pertece, autenticação, marketing ou serviços.\
**Mensagem:** O texto cadastrado na criação do modelo de mensagem.\
**Status:** Qual é o status do seu modelo de mensagem se ele está aprovado, reprovado, com erro, em análise ou em pausa.\
**Qualidade:** Classificação de qualidade de um template.\
**Idioma:** O idioma que o template foi criado.\
**Ações:** Visualizar e [**edição de template**](/whatsapp/introducao-ao-messaging-whatsapp/editando-um-template).

Nesse cenário a plataforma trará os templates de acordo com o filtro de status que você escolher:

<figure><img src="/files/EdymlayzpBuTqnGsflIo" alt=""><figcaption></figcaption></figure>

**Busca por categoria:** A plataforma permite que você faça uma busca segmentando as categorias dos seus modelos de mensagens, são elas:

* **Marketing:** Os modelos de marketing são os mais flexíveis, já que não estão relacionados a transações específicas previamente autorizadas. Em vez disso, podem estar relacionados à empresa e/ou aos respectivos produtos e serviços. Esses modelos podem conter promoções ou ofertas, mensagens de boas-vindas e despedida, atualizações, convites ou recomendações, ou solicitações de resposta ou conclusão de uma nova transação.
* **Serviços:** Envie mensagens sobre uma conta ou pedido existente.
* **Autenticação:** Envie códigos para verificar uma transação ou login.

<figure><img src="/files/5hWMIgBJ76BsSSq59saA" alt=""><figcaption></figcaption></figure>

Os dados serão refletidos dessa forma:

**Nome:** Nome aplicado ao modelo de mensagem.\
**Subconta:** Subconta em que o usuário que criou o template estava vinculado.\
**Categoria:** Qual categoria o template pertece, autenticação, marketing ou serviços.\
**Mensagem:** O texto cadastrado na criação do modelo de mensagem.\
**Status:** Qual é o status do seu modelo de mensagem se ele está aprovado, reprovado, com erro, em análise ou em pausa.\
**Qualidade:** Classificação de qualidade de um template.\
**Idioma:** O idioma que o template foi criado.\
**Ações:** Visualizar e [**edição de template**](/whatsapp/introducao-ao-messaging-whatsapp/editando-um-template).

<figure><img src="/files/mmq5DmzQZGT72m194mnN" alt=""><figcaption></figcaption></figure>

Nesse cenário a plataforma trará os templates de acordo com o filtro de status que você escolher.

## Novo Template

É simples criar um novo template, lembre-se que todos os templates passam por uma análise, o tempo para essa aprovação varia (geralmente entre 2 minutos à 24 horas).

Para criar um novo template, no seu menu lateral esquerdo clique em: **WhatsApp > Templates** e em seguida **Criar Template:**

<figure><img src="/files/XoII9fvx93QtJ0trHKbL" alt=""><figcaption><p>criar template</p></figcaption></figure>

Em uma nova atualização da plataforma, nós adicionamos a funcionalidade algumas sugestões de templates ficam disponíveis, elas também precisam passar por uma aprovação, mas você pode utilizar como base:

<figure><img src="/files/fGJ6evLQJjtFRGkNbcn8" alt=""><figcaption><p>sugestões de template</p></figcaption></figure>

### Nome do Template

Todos os templates precisam de um nome, o padrão é que sempre esteja em letras minúsculas, você pode utilizar números e para espaçadores underline (\_), caracteres especiais não são permitidos.

Caso utilize qualquer caractere que não seja permitido a plataforma sinaliza em vermelho.

![Nome template](/files/-MbbZnCmFugYga2D_GEB)

{% hint style="success" %}
Uma boa prática é que o nome aplicado ao template sempre esteja de acordo com seu texto do template, por exemplo:

Meu template terá um conteúdo sobre vendas de computadores, o nome do meu template poderia ser:

vendas\_de\_computadores.

Isso facilita o gerenciamento da plataforma.
{% endhint %}

### Categorias de templates

{% hint style="danger" %}

### <mark style="color:red;">**Atenção!**</mark>

{% endhint %}

A partir do dia **01 de junho de 2023**, a Meta aplicará as alterações no modelo de negócio do WhatsApp Business Platform, globalmente.&#x20;

As principais mudanças serão: \
&#x20;\
1\. Atualização das categorias de conversação&#x20;

2\. Atualização de custo por categoria pela Meta&#x20;

3\. Free entry point via click to WhatsApp ou página do Facebook terão uma janela de 72h gratuitas - atualmente são 24 horas.&#x20;

4\. As primeiras 1.000 conversações gratuitas de cada WABA passam a ser válidas apenas para User-initiated conversations/Service conversations, e não mais as primeiras quaisquer 1.000 conversações.&#x20;

{% hint style="warning" %}
**Fique atento ao momento de cadastro e escolha a categoria mais apropriada para a sua mensagem. Atualmente existem 3 categorias de template:**

* **Conversas de serviços públicos (Utility Conversations):** Facilite uma solicitação ou transação específica e acordada ou atualize um cliente sobre uma transação em andamento, incluindo notificações pós-compra e extratos de faturamento recorrentes.
* **Conversas de autenticação (Authentication):** Permita que as empresas autentiquem usuários com senhas únicas, potencialmente em várias etapas do processo de login (por exemplo, verificação de conta, recuperação de conta, desafios de integridade).
* **Conversas de marketing (Marketing Conversations):** Incluem promoções ou ofertas, atualizações informativas ou convites para que os clientes respondam / tomem medidas. Qualquer conversa que não se qualifique como utilidade ou autenticação é uma conversa de marketing.&#x20;
  {% endhint %}

{% hint style="info" %}
**OBS:** há uma quarta nova categoria, onde ela não é usada para criar template, que é a Conversas de Serviço (Service Conversations) – todas as conversas iniciadas pelo usuário serão categorizadas como conversas de serviço, que ajudam os clientes a resolver consultas.
{% endhint %}

### Para utilizar Categoria de Autenticação: <a href="#categoria-de-autenticacao" id="categoria-de-autenticacao"></a>

Caso seja necessário criar um template com a categoria **autenticação,** precisamos seguir alguns passos:

**Quando devo selecionar a categoria de autenticação?** Esse modelo de mensagem habilita empresas a autenticarem seus usuários com senhas de usos únicos.

1. Selecione a **categoria** Autenticação no seu modelo de mensagem:

<figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2FkzApbGwbZmrqEinGfhmZ%2Fimage.png?alt=media&#x26;token=7aff19fe-ab68-4d4d-8f6d-9f610a66b835" alt=""><figcaption></figcaption></figure>

2. Selecione seu **idioma**:

<figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2FFqb43VlZoXQXh7AnZQjf%2Fimage.png?alt=media&#x26;token=0ba51296-07c5-4c19-962d-e1a0d423f2db" alt=""><figcaption></figcaption></figure>

3. **Conteúdo:**

**Não é possível editar o conteúdo dos templates de mensagem de autenticação.**&#x41; pré-visualização do seu conteúdo é sempre apresentada ao lado direito da tela:

<figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2FgC55LLQkTzmNqhk6h5cM%2Fimage.png?alt=media&#x26;token=1c694d3e-7eec-4ab1-adc9-658f02f6c914" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**O código enviado é definido via API por você (cliente).**
{% endhint %}

Você poderá adicionar duas informações ao seu modelo de autenticação, ambas são **opcionais:**

<figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2FV5OdBlkEai1eSyaA468K%2Fimage.png?alt=media&#x26;token=888d2634-b775-4c0b-b3bb-27328ef22414" alt=""><figcaption></figcaption></figure>

* **Adicionar recomendação de segurança:** A plataforma adicionará o seguinte texto a sua mensagem:​

  <figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2F4VQMf0jC4PBpzy7TAIif%2Fimage.png?alt=media&#x26;token=a5d68ccc-6724-41ba-a3b4-85f748cf7cee" alt=""><figcaption></figcaption></figure>
* **Adicione o tempo de expiração do código:** A plataforma adicionará o seguinte texto a sua mensagem:​

  <figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2F8OMyfWsGmQ1PDcCHwoXI%2Fimage.png?alt=media&#x26;token=275d5c2f-592b-42b5-bc47-b82883141636" alt=""><figcaption></figcaption></figure>
* Logo abaixo da configuração, você poderá definir o tempo de expiração do seu código, você poderá adicionar um valor entre 1 e 90 minutos:**​**

  <figure><img src="https://2089462923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LQ0GY5SH7-tYxMxRhLh%2Fuploads%2FLfpJC1jWgjTEt8NPZbKI%2Fimage.png?alt=media&#x26;token=1fd5547e-1916-4866-a52e-904cd16e7036" alt=""><figcaption></figcaption></figure>

4. **Botões:**

**É obrigatório que adicione um botão, o texto poderá ser personalizado desde que tenha no máximo 20 caracteres:**

### Idioma <a href="#translations" id="translations"></a>

O WhatsApp não fará traduções das mensagens para sua empresa. Todas as traduções de modelos de mensagem devem ser inseridas por você no mesmo formato que o mostrado abaixo. Ao criar um template, você especificará o idioma em que deseja que o modelo de mensagem seja exibido usando o campo de idioma.&#x20;

![idioma](/files/-MbbdHQ_hzapUAECuCiA)

{% hint style="danger" %}
**Cuidado: para que todas as mensagens sejam aprovadas, o texto deve ser o mesmo em todos os idiomas.**
{% endhint %}

### Cabeçalho

Para estruturar a mensagem do seu template, é possível definir os textos nos seguintes campos:

**Cabeçalho (opcional):** O uso do cabeçalho é opcional, caso queira utiliza-lo podemos ter o formato de texto, onde descrevemos nossa mensagem em até 60 caracteres ou no formato de mídia.

**Texto:** Utilizando essa função, temos 60 caracteres para descrever o cabeçalho e ele aparece na parte superior do template em negrito, quando utilizamos a função de texto, ele só aparece quando começamos a escrever o corpo da nossa mensagem. Você sempre terá a pré-visualização da sua mensagem ao lado direito da sua tela.

**Cabeçalho texto:**&#x20;

<figure><img src="/files/dFzTeEja92fgCnmss4LK" alt=""><figcaption><p>Cabeçalho texto</p></figcaption></figure>

**Pré-visualização da mensagem:**

<figure><img src="/files/SexfrypfCXUefzhZ3J05" alt=""><figcaption><p>pré-visualização</p></figcaption></figure>

{% hint style="warning" %}
**Não é possível adicionar campos dinâmicos dentro do cabeçalho das mensagens.**
{% endhint %}

Caso opte pelo cabeçalho em mídia, você poderá fazer o upload de alguns arquivos:

* **Imagens:** Obrigatoriamente precisa estar no formato .png, .jpg ou .jpeg e ter tamanho máximo de 10MB.
* **Documentos:** Obrigatoriamente precisa estar no formato .pdf e ter o tamanho máximo de 10MB.
* **Vídeo:** Obrigatoriamente precisa estar no formato .mp4 e ter o tamanho máximo de 10MB.

![cabeçalho](/files/-MbblqOawJUnZhgHjnvt)

{% hint style="danger" %}

* Não podemos adicionar texto e mídia ao mesmo template, ou adicionamos um ou outro.
* A mídia de imagem, documento ou vídeo só será anexada no momento que enviar seu template para aprovação.
* O modelo de mídia enviado, não é o mesmo que você precisa utilizar em seus disparos. Este é apenas um modelo de envio que você está apresentando a Meta.
* O modelo de mídia é enviado quando submetermos o template para aprovação é a última etapa do nosso processo.
  {% endhint %}

### **Corpo da mensagem**

O corpo da sua mensagem, é onde você digita o texto que será enviado para seu cliente. Você pode adicionar emojis, utilizar funções negrito, tachado e itálico e também utilizar os placeholders (variáveis).

As variáveis são os números que aparecem entre chaves {{1}}, você pode utilizar esses campos como campos dinâmicos e alterar o que está entre chaves por uma palavra padrão ou utilizar o cabeçalho da sua base de clientes para completar os campos.\
**Seu texto pode conter até 1024 caracteres.**

![corpo da mensagem](/files/-Mbbpppo5jSmYRqfYfwE)

Caso o placeholder (variáveis) seja editado para algo diferente de números dentro das "chaves" um aviso aparece com instruções de uso, eles devem sempre estar em ordem crescente.&#x20;

**Exemplo: {{1}}, {{2}}, {{3}}.**

![variável](/files/-Mbbqei4VXZ0XFYeIuk7)

{% hint style="warning" %}

* Após finalizar seu template, será necessário que indique para plataforma, o que deseja inserir nesses campos.
* Por exemplo:\
  {{1}} será preechido pelo nome do cliente.
* Você pode trabalhar com quantas variáveis achar necessário, desde que o seu texto faça sentido.
* Você **não pode criar** um template contendo apenas variáveis.
  {% endhint %}

### **Rodapé**

**Rodapé (opcional):** O rodapé é opcional, você pode adicionar algumas palavras de agradecimento por exemplo, apenas conteúdo de texto e utilizar até 60 caracteres.&#x20;

Ele aparece ao lado direito em sua pré-visualização em um tom mais claro de cinza.

Em algumas vezes o rodapé é utilizado para função de opt-out com uma breve descrição, por exemplo:

Caso não queira mais receber comunicações, digite sair.

![rodapé](/files/-MbbsSV_bmo20gw-Btht)

**Botões (opcional):** Há 2 tipos de botões que podem ser utilizados, entretanto, você pode utilizar apenas um ou outro.\
\
**Ações:** Você pode direcionar seu cliente para uma chamada telefônica ou site escolhido por você:

![botões de ação](/files/-MbbtzEjDOREgyEES7iy)

Utilizando a função site você também conta com a função dinâmica, onde você pode adicionar uma variável a sua URL, para isso basta adicionar a URL do site que você deseja se conectar.

<figure><img src="/files/bhCTTU4HV4Z8zuU9u7At" alt=""><figcaption></figcaption></figure>

**Respostas rápidas:** Geralmente é utilizado com **sim** ou **não.**<br>

![respostas rápidas](/files/-Mbbv7IeQHoBp87kIzlH)

{% hint style="warning" %}
A formatação do texto de cada campo, é distinta.
{% endhint %}

**Cabeçalho:** Fica em negrito no começo da mensagem, caso tenha escolhido o cabeçalho de mídia uma prévia de imagem aparece. A mídia só é anexada quando a mensagem for disparada para os clientes.\
**Corpo da mensagem:** O corpo da sua mensagem aparece, em tom claro de acordo com os dados que você configuração.\
**Rodapé:** Aparece em tom mais claro de cinza ao final da mensagem.\
**Botões:** Aparecem ao final da mensagem para que o usuário clique.

<figure><img src="/files/7p1FkY2rGhkuBIQIB61z" alt=""><figcaption></figcaption></figure>

Após revisar seu template, clique em criar na parte inferior da tela. Seu template será enviado para análise junto ao Facebook, a estimativa de retorno é de **2 minutos até 24 horas.**

![criar template](/files/-Mbby0JyIfI1Ckb3Yvc4)

Assim que seu template for submetido a aprovação, você terá 3 tipos de status:\
\ <mark style="color:green;">**Verde:**</mark> Template aprovado e pronto para uso.\ <mark style="color:blue;">**Azul:**</mark> O template está sob análise.\ <mark style="color:red;">**Vermelho:**</mark> O template foi reprovado.

Após o status do template ser alterado para "**pronto para uso"** basta ir no menu "**Nova mensagem**", pesquisar pelo nome do seu template e realizar seu envio.

## Dicas gerais para criação de Templates

{% hint style="success" %}
**Dicas para criação do seu Template**

* **Dê nomes claros ao template**, que remetam ao conteúdo da mensagem e expliquem o contexto no qual ela será enviada, com apenas letras minúsculas, números e underline (espaçador).
* **Escolha a categoria correta para seu template.**
* Conteúdo deve ser **claro, breve e objetivo.**
* **Procure entender se há momentos específicos da sua operação para os quais você pode criar templates padrão que podem ser reutilizados.**
* Quando a mensagem for escrita, é preciso levar em consideração o fato de que o time que faz as aprovações não conhece o contexto em que elas estão inseridas.
* **Leia seu template em voz alta** e perceber como ele está soando.
* **Atenção a formatação do seu template.** Campos dinâmicos devem estar de acordo com os padrões e a mensagem não deve conter erros ortográficos ou gramaticais.
* **Para reabrir uma sessão com o usuário, mencione sobre o que estavam falando anteriormente.**
* **Não induza seu cliente a permanecer no fluxo.**
* **Não utilize conteúdos que possam ser considerados abusivos.**
  {% endhint %}

### Formatação

{% hint style="info" %}
**Problemas de formatação levam a rejeição do template.** Fique atento e garanta que o seu texto está de acordo com os padrões de aceite.

* **Campos dinâmicos** devem ser números entre duas chaves e cercados de informações que indiquem claramente o que será inserido ali;
* **Não podemos** usar quebras de linhas, tab, ou espaços consecutivos.
* **Erros gramaticais e ortográficos farão com que o template seja rejeitado.** Gírias e linguagem informal são aceitas, mas é importante lembrar que elas **nem sempre** farão sentido para o time que faz aprovações.
* Os parâmetros variáveis estão ausentes ou apresentam chaves incompatíveis. O formato **correto é `{{1}}`**.
* Os parâmetros variáveis têm caracteres especiais, **como `#`, `$` ou `%`**.
* Os parâmetros variáveis não são sequenciais. Por exemplo, `{{1}}`, `{{2}}`, `{{4}}` e `{{5}}` são definidos. No entanto, o parâmetro `{{3}}` não existe.
* O modelo de mensagem apresenta conteúdo que viola a Política Comercial do WhatsApp: quando você promove a venda de bens e serviços, todas as mídias e mensagens relacionadas aos seus produtos são consideradas transações. Isso inclui descrições, preços, tarifas, impostos e/ou divulgações legais obrigatórias. As transações precisam estar em conformidade com a [Política Comercial do WhatsApp](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.whatsapp.com%2Flegal%2Fcommerce-policy%2F\&h=AT2dxiXRCFZeVBK0c1txOic6XJap755h5mJXYjtHGLkMrfH7NtEjOPj6zf7ylXRriraxEyX60FhIWco6IpBQWwnwlMJZyF88Q10V0XChE3OJDpjpmN-25DCddBbPxvN2SA3vkb5uFU6E27OmHKjdzQ).
* O modelo de mensagem tem conteúdo que viola a [Política do WhatsApp Business](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.whatsapp.com%2Flegal%2Fbusiness-policy%2F\&h=AT3nOk_BKwytmnhrDG7jeIx2mGOt0oy7TfmEGo9LOzUXuDbkyum_J-3G1g9LrMVe3gOGen7DhdAqfMEn1Y9Rgb0roUZnzNUkGXIxMWpos9V2C8Oj62_JJaGhrZEYdYVTFmcDpEYhibWJkb2O7g9Ktw): não solicite identificadores sensíveis dos usuários. Por exemplo, não peça aos clientes que compartilhem números completos de cartões de crédito e débito individuais, números de conta financeira, número de identificação nacional nem outras informações confidenciais. Isso inclui não solicitar aos usuários documentos que possam conter identificadores sensíveis. Solicitar identificadores parciais (por exemplo, os últimos 4 dígitos do CPF) é aceitável.
* O conteúdo é potencialmente abusivo ou ameaçador. Por exemplo, ameaça o cliente com ações legais ou constrangimento público.
* O modelo de mensagem é uma duplicata de um existente. Se um modelo for enviado com o mesmo texto de um existente no corpo e no rodapé, a duplicata será rejeitada. Uma notificação de rejeição incluindo o motivo aparecerá na Qualidade da Conta no Gerenciador do WhatsApp e será enviada por email. Na notificação de Qualidade da Conta, é possível consultar o nome e o idioma do modelo existente que tem o mesmo conteúdo do duplicado rejeitado. Você também pode editar e reenviar o modelo. Vale lembrar que a verificação não se aplica a modelos categorizados como **AUTHENTICATION**.
  {% endhint %}

### Exemplos de formatação

| **Formatação correta**                                                                | **Formatação incorreta**                                                                                                                                                                     |
| ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Olá, {{1}}! Tudo bem? Este é o número da sua passagem aérea: {{2}}.**               | <p><strong>{{1}}</strong></p><p><strong>Tudo bem? Seguem informações sobre sua passagem:</strong></p>                                                                                        |
| **Seu voo para a cidade {{3}} está agendado para o dia {{4}}, às {{5}}. Boa viagem!** | <p><strong>{{2}}</strong> </p><p><strong>{{3}}</strong> </p><p><strong>Anote os dados do seu voo, para não esquecer:</strong></p><p><strong>{{4}}</strong> </p><p><strong>{{5}}</strong></p> |

## Exemplos de mensagens rejeitadas

{% hint style="danger" %}

* **Sabia que você tem um empréstimo pré-aprovado de {{1}}? Você pode parcelar em até {{2}} vezes, e o dinheiro cai na sua conta em até 24 horas depois da aprovação! Não perca! A oferta é válida até o dia {{3}}.**
* &#x20;**Oi, {{1}}! Tudo bem? ﻿Temos uma ótima notícia! Falta apenas um click para você contratar seu empréstimo. É só responder essa mensagem que poderemos te ajudar!**
* **Aqui é o Assistente Digital e falamos em nome da loja {{2}}. Vimos que você se interessou pelo {{3}}, no portal {{4}}. Que tal simular um financiamento, agendar um test-drive ou adiantar a avaliação do seu usado? Basta clicar no link: {{5}}**
* **Temos novidades para você! Para conferir gratuitamente e se preparar para aumentar suas vendas, digite:**

  **1 - para conhecer a coleção {{3}};**

  **2 - para receber o catálogo {{2}}.**
* **Temos uma proposta para você! Podemos conversar por aqui agora?**
  {% endhint %}

## Abertura de Sessão

{% hint style="warning" %}
A sessão tem uma duração fixa de 24 horas e é iniciada quando o disparo da comunicação é realizado por sua empresa para seu cliente final.
{% endhint %}

## **Sugestões de Templates**

1. **Opt-in de canal:** Olá! Gostaríamos de te informar que este é o canal oficial da empresa {{1}} você poderá utilizar este canal para  {{2}}.

Clique no botão "Sim, eu quero!" para começar a receber ou em "Sair" caso não tenha interesse:\
Botões: Sim, eu quero! | Sair

2. **Auxílio para pessoas que querem comprar os produtos / serviços garantir coleta de optin no próprio site e que a base seja com menos de 3 dias.**

Olá vimos que iniciou seu cadastro em nosso site, gostaríamos de te comunicar que este é nosso canal no WhatsApp e por aqui você poderá tirar suas dúvidas. &#x20;

Clique no botão "Sim, eu quero!" para saber mais ou em "Sair" caso não tenha interesse:

Botões: Sim, eu quero! | Sair<br>

3. **Boletos / faturas**&#x20;

Olá, este é o canal oficial da empresa {{1}} para avisos de fatura a pagar ou vencidas | status de pedido | status de conta. Clique no botão "Sim, eu quero!" para começar a receber ou "Sair" caso não tenha interesse:&#x20;

Botões: Sim, eu quero! | Sair<br>

4. **Status pedidos**

Olá, este é o canal oficial do {{1}} para informações e status de pedidos. Clique no botão "Sim, eu quero!" para começar a receber ou "Sair" caso não tenha interesse:

Botões: Sim, eu quero! | Sair<br>

5. **Consignados / Empréstimos**

Olá, este é o canal oficial da {{1}}, por aqui, você consegue tirar dúvidas e saber mais sobre {{2}}. Clique no botão "Sim, eu quero!" para saber mais ou "Sair" caso não tenha interesse:&#x20;

Botões: Sim, eu quero! | Sair<br>

## **Respostas automáticas:**

**SAIR:** Seu pedido para sair da conversa foi atendido. Favor enviar #voltar para retornar!

**#VOLTAR:** Seu pedido de retornar à conversa foi atendido! Bem vindo de volta!

**Informativo general:** Obrigada, por aqui você irá receber essas informações, fique ligado.\
\
**Auxílio para pessoas que querem comprar os produtos | serviços garantir coleta de optin no próprio site e que a base seja com menos de 3 dias.**

Obrigada, em breve entraremos em contato para tirar suas dúvidas&#x20;

Obrigada, envie um Oi para iniciar seu atendimento.\
\
**Boletos | Faturas:** Obrigada, por aqui você irá receber essas informações, fique atento.

**Status pedidos:** Obrigada, por aqui você irá receber o status do(s) seu(s) pedido(s), fique atento.

**Consignados | Empréstimos:** Obrigada, em breve iremos entrar em contato através do canal para melhor lhe atender.

Muito bom ter você por aqui. Manteremos você sempre informado por este canal, e quando precisar é só nos chamar.

{% embed url="<https://youtu.be/OxRfEoW3-QA?si=ISi0hvPr8jndyTyE>" %}


# Classificação de qualidade

Os modelos de mensagem têm uma classificação de qualidade baseada no uso e no feedback dos clientes.&#x20;

Quando o status for **Ativo**, a classificação do modelo de mensagem aparecerá na plataforma messaging, para visualizar acesse:<br>

Messaging > Menu lateral esquerdo expanda o menu de WhatsApp > Templates.

Você visualizará no cabeçalho as seguintes informações:

<figure><img src="/files/hpEIbB1DBZRIPvkDwyMb" alt=""><figcaption></figcaption></figure>

O campo de classificação está ligado a janela de **qualidade**. E você poderá ter os seguintes status para o campo:

* Ativo – **Qualidade pendente** (realce em cinza): o modelo de mensagem ainda precisa receber feedback dos clientes em relação à qualidade. Os modelos de mensagem com esse status podem ser enviados aos clientes.
* **Ativo – Alta qualidade** (realce em verde): o modelo recebeu pouco ou nenhum feedback negativo dos clientes. Os modelos de mensagem com esse status **podem ser enviados aos clientes**.
* **Ativo – Qualidade média** (realce em amarelo): o modelo recebeu feedback negativo de diversos clientes e pode ser pausado ou desabilitado em breve. Os modelos de mensagem com esse status **podem ser enviados aos clientes.**&#x20;
* **Ativo – Qualidade baixa** (realce em vermelho): o modelo recebeu feedback negativo de diversos clientes. Os modelos com esse status podem ser enviados aos clientes, mas talvez sejam suspensos ou desabilitados em breve. Por isso, recomendamos que você resolva os problemas relatados pelos clientes.

Assim que um modelo de mensagem é submetido a aprovação com a meta, ele tem a **qualidade pendente.**

Se um modelo de mensagem receber feedback negativo continuamente, isso causará **mudança no status do modelo**.&#x20;

Enquanto o modelo de mensagem tiver o status **Ativo**, independentemente da classificação de qualidade, ele poderá ser enviado aos clientes.&#x20;

Quando o status for alterado, **ele não pode ser enviado aos clientes até que fique ativo novamente.**


# Editando um template

Agora é possível editar seus modelos de mensagem após serem aprovados, reprovados, ou pausados. Para isso, primeiro precisamos entender algumas regras de edição.

1. É possível realizar a edição de qualquer template de mensagem criado.
2. Caso você faça uma edição em um modelo de mensagem já aprovado, é necessário que aguarde a nova análise da Meta para conseguir utilizar seu template novamente. **Não será possível utilizar o seu template para envios até que ele tenha sido aprovado.**
3. Você poderá editar seu template **1x a cada 24 horas, ou 10x durante 30 dias**.
4. Caso seu template seja rejeitado após criado, você poderá altera-lo.
5. Não há restrições para a quantidade de edições de modelos de mensagens pausados ou rejeitados.
6. Não é possível alterar a categoria, nome ou idioma do seu template.
7. A nova análise para aprovação do template costuma ser rápida, geralmente basta dar um refresh (atualizar a página) para verificar se o modelo já foi analisado.

### O que é possível alterar na edição do modelo de mensagem?

É possível editar os seguintes parâmetros na mensagem:

1. **Cabeçalho:** Você poderá optar por nenhum, mídia ou texto.
2. **Corpo da mensagem:** Você poderá editar seu texto escrito, adicionando ou removendo informações.
3. **Rodapé:** É possível que adicione ou remova um rodapé da sua mensagem.
4. **Botões:** Você poderá alterar os botões cadastrados ou removê-los da mensagem.

### Como realizar as alterações no meu modelo de mensagem?

É simples, com a plataforma [**messaging**](https://messaging.wavy.global) aberta acesse seu menu lateral esquerdo e buque por WhatsApp > Templates:

<figure><img src="/files/HvD5c5uQydiU7YZiZXzl" alt=""><figcaption></figcaption></figure>

Agora você terá a visualização da sua página de templates, aqui você terá a visualização de todos os conteúdos já criados para comunicações.

Você poderá buscar seu modelo de mensagem de forma manual, ou optar por utilizar os[ **filtros de busca na página:**](/whatsapp/introducao-ao-messaging-whatsapp/cadastro-de-template)

<figure><img src="/files/ta9zWIsyL7rYn0cEPkYZ" alt=""><figcaption></figcaption></figure>

Após localizar a mensagem que será editada, busque pelo botão de ação > clique nos 3 pontinhos > Editar:

<figure><img src="/files/osDJqwwjwWAiVw10kV1Y" alt=""><figcaption></figcaption></figure>

Ao clicar em editar você será direcionado para a página de criação de templates, realize as alterações necessárias:

<figure><img src="/files/6xXEptJNl3nmzsWA0cy8" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Lembre-se que não será possível alterar o nome, categoria ou idioma do seu modelo de mensagem.**
{% endhint %}

Após realizar as modificações necessárias, clique em concluir no final da página:

<figure><img src="/files/ItTxqgbcc2HSy4Ep1BJy" alt=""><figcaption></figcaption></figure>

Ao clicar em concluir caso você tenha anexado um cabeçalho de mídia ou adicionado variáveis ao seu modelo de mensagem, será necessário que preencha os campos:

<figure><img src="/files/mHssGtKzciSSNQfEs7Rz" alt=""><figcaption></figcaption></figure>

Clique novamente em concluir, a plataforma te direcionará para a página de templates onde você poderá acompanhar o status, você terá 3 status diferentes:

<mark style="color:green;">**Aprovado:**</mark> Com esse status você poderá realizar o envio da sua comunicação.

<mark style="color:red;">**Reprovado:**</mark> O modelo de mensagem foi reprovado pela plataforma, neste caso, você poderá clicar novamente nos 3 pontinhos e em editar. Fique atento as limitações de edição, lembre-se você poderá realizar uma edição a cada 24 horas ou 10 edições em 30 dias.

<mark style="color:blue;">**Em análise:**</mark> Seu modelo de mensagem ainda está sendo analisado pela plataforma, você poderá apertar o botão de atualizar do seu navegador para acompanhar o progresso.

{% embed url="<https://youtu.be/n7_7GIwkavc?si=q6b7btJF2s5dSfGZ>" %}


# Pausa no modelo

Se um modelo de mensagem atingir a classificação de qualidade mais baixa (status **Ativo – Qualidade baixa**), ele será automaticamente pausado por um período para proteger a classificação de qualidade dos números de telefone que o usaram. As durações das pausas são as seguintes:

* **Primeira instância:** **Pausado** por 3 horas.
* **Segunda instância: Pausado** por 6 horas.
* **Terceira instância:** **Desabilitado**.

Quando um modelo de mensagem é pausado (status **Pausado**), ele não pode ser enviado aos clientes. Por isso, você precisa interromper as campanhas de mensagens automáticas que dependam desse modelo, retome essas campanhas somente quando o status do modelo voltar a ser **Ativo**.

Você pode editar um modelo pausado caso acredite que isso fará com que ele receba menos feedback negativo. Porém, se você fazer isso, o modelo ficará com o status **Em análise** e não poderá ser enviado aos clientes até que seja reaprovado e tenha o status **Ativo**.

Também é possível alterar a lógica dos negócios (definição do público-alvo, parâmetros de entrega, entre outros) caso você acredite que isso está influenciando o feedback negativo.

Inicialmente, a pausa não afetará o número de telefone comercial **nem reduzirá o limite** de mensagens. Outros modelos de mensagem com alta qualidade podem continuar sendo enviados do número de telefone. Entretanto, se a empresa continuar usando modelos com **Qualidade baixa** depois de eles serem pausados, o número de telefone poderá ser afetado em algum momento.

### Notificações de pausa <a href="#notifica--es-de-pausa" id="notifica--es-de-pausa"></a>

Quando um modelo de mensagem for pausado, enviaremos uma notificação no Gerenciador do WhatsApp, por email e webhook (caso você tenha assinado webhooks de alterações nos modelos de mensagem).

### Retomada <a href="#retomada" id="retomada"></a>

Uma vez que o modelo (template) for editado e respectivamente aprovado pela Meta (estando com status Ativo), ele poderá ser utilizado novamente.

A classificação de qualidade do modelo (template) também será definida para um valor baseado no feedback mais recente.

\
Assim como as notificações de pausa, enviaremos notificações por email e webhook quando o status do modelo for definido como Ativo.

### Onde visualizar meus modelos de mensagens pausados? <a href="#apela--es" id="apela--es"></a>

É simples, com a plataforma [**messaging**](https://messaging.wavy.global) aberta acesse seu menu lateral esquerdo e buque por WhatsApp > Templates:

<figure><img src="/files/HvD5c5uQydiU7YZiZXzl" alt=""><figcaption></figcaption></figure>

Agora você terá a visualização da sua página de templates, aqui você terá a visualização de todos os conteúdos já criados para comunicações.

Utilize os filtros para visualizar o conteúdo pausado:

<figure><img src="/files/qnve3YSjfJjhDIduYsRD" alt=""><figcaption></figcaption></figure>

A plataforma aplicará um filtro e você terá apenas a visualização dos templates com status **pausado.**

<figure><img src="/files/1pFOFuLy6TrR6J6fY8ym" alt=""><figcaption></figcaption></figure>

Para editar um modelo de mensagem pausado, basta clicar em **ações > editar.**

Aplique as alterações necessárias e submeta novamente o modelo para aprovação, caso não queira realizar nenhuma alteração basta aguardar o tempo de pausa e o template e ele ficará ativo novamente, sempre respeitando as seguintes instâncias:

* **Primeira instância:** **Pausado** por 3 horas.
* **Segunda instância: Pausado** por 6 horas.
* **Terceira instância:** **Desabilitado**.

Para visualizar data e hora ou instância em que seu modelo de mensagem está alocado, você poderá clicar sobre o status:

<figure><img src="/files/IWLaaRZtCiVtv2LqcF88" alt=""><figcaption></figcaption></figure>

Clicando sobre o status, você terá a seguinte visualização:

<figure><img src="/files/NRwhV61pMpKFWXN3nzdo" alt=""><figcaption></figcaption></figure>


# Excluindo um Template WA

É possível excluir um template já aprovado, em aprovação ou reprovado pelo WhatsApp pela plataforma Messaging.

**Como fazer:** Na listagem de templates, clique na lixeira e aguarde os 30 dias de confirmação do WhatsApp para criar um novo template com o mesmo nome do excluído. Não será possível enviar um template após a exclusão.

![Excluir templates](/files/-Meacg8ejn5xClJhe8To)


# Template pronto?

Agora é hora de submetermos para aprovação.

Para submeter seu template para aprovação, clique em **criar** no final da página.

<figure><img src="/files/GaekxYdZwTFhxJFtOvq4" alt=""><figcaption></figcaption></figure>

Se você utilizou os recursos de cabeçalho com mídia ou campos dinâmicos será necessário que você faça upload de uma imagem e preencha também o conteúdo que será alterado dentro dos campos dinâmicos, lembre-se que esses dados são apenas um modelo de uso para a Meta (Facebook).

<figure><img src="/files/qQmzAzlb3T71Z8WvJBJX" alt=""><figcaption></figcaption></figure>

Você poderá alterar a sua imagem no momento do seu envio e também alterar os seus campos dinâmicos.

<figure><img src="/files/ELJzAJDnPcDPlzdU7N16" alt=""><figcaption></figcaption></figure>

Após inserir os dados, basta concluir e seu template entrará em status de análise.

<figure><img src="/files/oz6Iy90Nm1lfohBQhg7Z" alt=""><figcaption></figcaption></figure>


# Como montar sua base de clientes para envio

Você pode fazer o upload da sua base de clientes para plataforma, veja como utilizar variáveis e montar o arquivo de forma correta.

{% hint style="info" %}
**Requisito: O arquivo de contatos pode ser em XLSX, CSV ou TXT e devem ter no máximo 15 MB.**
{% endhint %}

**A utilização do uso do DDI está disponível apenas para o envio por arquivo, você pode escolher em adicionar o DDI do país em sua base, ou permitir que a ferramenta faça isso de forma automática.**

## Como montar um arquivo .CSV

Para montar o arquivo no Excel ou no Google Spreadsheet, deve seguir-se algumas diretrizes:

* A **primeira linha** é composta por um **cabeçalho;**
* A **primeira coluna** deve ter o título **`destination`**&#x65; os **números dos contatos;**
* As **demais colunas** são preenchidas por **variáveis | campos dinâmicos** que podem ser utilizadas no corpo da mensagem ou nas variáveis do texto.
* **Uma das colunas** pode ser usada como **Correlation ID** (com título de **`correlationid`**) para identificação de cliente pelos relatórios;

Exemplo:

<table data-header-hidden><thead><tr><th width="172">destination</th><th width="98">name</th><th width="82">info</th><th>correlationid</th></tr></thead><tbody><tr><td>destination</td><td>name</td><td>info</td><td>correlationid</td></tr><tr><td>5511987654321</td><td>André</td><td>Sinch</td><td>campanha_X</td></tr><tr><td>5511912345678</td><td>Mozart</td><td>Sinch</td><td>campanha_Y</td></tr></tbody></table>

## Como montar um arquivo CSV

Para montar o arquivo no Excel ou no Google Spreadsheet, siga o mesmo modelo acima do arquivo XLSX e salve em CSV.

**Excel:**

![Excel: Salvar como / Formato do Arquivo CSV](/files/-LQ0k3J2TSTFYAOjBMgq)

**Google Sheets:**

![Google Spreadsheet: Fazer download como / Valores separado por vírgula](/files/-LQ0kcarrScfX5np4AWI)

## **Como montar um arquivo TXT**

Para montar um arquivo TXT, basta preencher a primeira linha do arquivo com as informações:\
**destination:** reservado para todos os números de telefone\
separado por ";" as outras "colunas" do arquivo.

```
destination;name;info;correlationid
5511987654321;wavy;global;list1
5511912345678;movile;company;list2
```

{% hint style="danger" %}
**ATENÇÃO**:&#x20;

* A utilização do uso do DDI está disponível apenas para o **envio por arquivo.**
* Se os números do arquivo já tiverem código do país correspondente nada será adicionado.
* Por enquanto só fazemos a adição de código DDI de um único país por vez, se o seu disparo for para diversos países, realize disparos separadamente.
  {% endhint %}

{% embed url="<https://youtu.be/dWRf35NU6h8?si=Es8IymDJdjTlASUd>" %}


# Erros mapeados

Possíveis erros que você pode encontrar ao fazer o upload da sua base de clientes.

**Dicas:** &#x20;

Para compreender melhor um erro em um arquivo, siga estas etapas:&#x20;

1. Abra o arquivo com um editor de texto (arquivos de texto simples, com extensão .txt, são mais fáceis de entender).&#x20;
2. Preste atenção à ordem em que os separadores são usados no arquivo, pois isso é crucial para que o arquivo funcione corretamente. \
   \- ; \
   \- , \
   \- | \
   \- \t

Leia atentamente aos erros apresentados na mensagem em tela.&#x20;

Tente entender o que está acontecendo olhando para o arquivo em questão. Isso ajudará você a '**conectar os pontos**' e saber como corrigir o arquivo.&#x20;

### Erro na coluna destinations &#x20;

**Mensagem de Erro:** Números de telefone inválidos foram encontrados no seu arquivo, certifique-se de que todos os números possuem uma linha vinculada. \
\
Caso esteja realizando um envio para WhatsApp, pode verificar se um número de telefone tem uma conta vinculada com o seguinte link: <https://wa.me/55119999999> \
&#x20;\
O padrão para verificação da conta é adicionar o **DDI, DDD e número de telefone.**\
\
Caso não tenha DDI, lembre-se que pode optar pela opção que damos na tela de adicionar o DDI (basta selecionar o país que deseja fazer este envio).&#x20;

Caso o envio seja para um SMS, você pode verificar se é uma linha possui uma operadora ativa através deste link: [Consulta Número (abrtelecom.com.br)](https://consultanumero.abrtelecom.com.br/consultanumero/consulta/consultaSituacaoAtualCtg).&#x20;

### Erro no cabeçalho do arquivo

**Mensagem de Erro:** O arquivo encontra-se com o cabeçalho vazio. Por favor, realize a correção no arquivo e tente novamente. &#x20;

É obrigatório que você adicione um cabeçalho ao seu arquivo, neste caso é necessário que você adicione o campo.&#x20;

Quando você abrir o arquivo em formato .txt, notará que cada ponto e vírgula (;) representa a adição de uma nova coluna de dados.&#x20;

Se você perceber pontos e vírgulas extras no arquivo e não houver mais colunas de dados a serem adicionadas, é importante removê-los para evitar erros.&#x20;

<figure><img src="/files/XC1dE3c6hWmwbIkAiXHS" alt=""><figcaption></figcaption></figure>

### Erro nas linhas do arquivo

**Mensagem de erro:** Foram detectadas inconsistências nas linhas do arquivo. Por favor, verifique e corrija as inconsistências antes de tentar novamente .

É obrigatório que as linhas tenham a mesma quantidade de campos do cabeçalho, por exemplo: \
&#x20;\
Se você adicionar em seu cabeçalho:&#x20;

<table data-header-hidden><thead><tr><th width="162"></th><th width="94"></th><th width="120"></th><th></th></tr></thead><tbody><tr><td>Celular </td><td>Nome </td><td>Empresa </td><td>Produto </td></tr><tr><td>555111457897 </td><td>Renata </td><td>Sinch </td><td>WhatsApp </td></tr></tbody></table>

&#x20;\
Todas as linhas do seu arquivo precisam obrigatoriamente ser preenchida por 4 campos, como apresentado acima.&#x20;

Caso alguma das linhas apresente o seguinte formato:&#x20;

<table data-header-hidden><thead><tr><th width="156">Celular </th><th width="112">Nome</th><th width="126">Empresa</th><th>Produto</th></tr></thead><tbody><tr><td>Celular </td><td>Nome </td><td>Empresa </td><td>Produto </td></tr><tr><td>5511112233 </td><td>Renata </td><td>Sinch </td><td>WhatsApp </td></tr><tr><td>5511333444 </td><td>Carol </td><td>Sinch </td><td> </td></tr><tr><td>5511555666 </td><td>Fulano </td><td> </td><td> </td></tr></tbody></table>

&#x20;A plataforma apresentará erro, porque as colunas não estão sendo preenchidas corretamente.&#x20;

### Erro quando o arquivo não tem linhas  &#x20;

**Mensagem de erro:** O arquivo não contém informações suficientes para ser processado. Por favor, adicione as informações necessárias e tente novamente. &#x20;

O arquivo está em branco, ou seja, sem destinatários anexados para o envio. &#x20;

### Erro de colunas com nome duplicado

Mensagem de erro: O arquivo contém colunas com títulos duplicados. Por favor, remova os títulos duplicados e tente novamente. &#x20;

O cabeçalho do seu arquivo possui colunas duplicadas, é necessário que remova ou renomeei o campo.&#x20;

Exemplo:&#x20;

<table data-header-hidden><thead><tr><th width="115"></th><th width="105"></th><th width="114"></th><th></th></tr></thead><tbody><tr><td>Celular </td><td>Nome </td><td>Nome </td><td>Empresa </td></tr></tbody></table>

### Erro genérico no processamento (algum caso que não tenha sido previsto)

**Mensagem de erro:** Parece que há um problema com o formato do arquivo. &#x20;

Por favor, tente novamente. Se o problema persistir, entre em contato com nossa equipe de suporte. &#x20;

### Erro genérico&#x20;

**Mensagem de erro:** Houve um erro ao processar o arquivo. Por favor, tente novamente. Caso o problema persista, entre em contato com nossa equipe de suporte. &#x20;

### Erro no envio do arquivo relacionado à formatação

Mensagem de erro: O arquivo precisa estar escrito com caracteres em UTF-8. Por favor, verifique e corrija o tipo antes de tentar novamente. &#x20;

É obrigatório que o arquivo esteja escrito com os caracteres em UTF-8. É necessário que corrija antes de tentar novamente.&#x20;

<figure><img src="/files/HpmyyETGPG31jJaqZPlT" alt=""><figcaption></figcaption></figure>


# Realizando um envio WhatsApp

Como realizar seus primeiros disparos na plataforma

No canto superior esquerdo da ferramenta, clique em **Nova mensagem:**

<figure><img src="/files/Ms30OdU9B3cJdh6qcH06" alt=""><figcaption><p>nova mensagem</p></figcaption></figure>

Selecione a ferramenta **WhatsApp**:

<figure><img src="/files/u1IpNJMGrvMKbLvvfnhY" alt=""><figcaption><p>Whatsapp</p></figcaption></figure>

## Destinatários

Nós temos disponíveis 4 formas de envios dentro da nossa plataforma.

Você pode escolher qual delas faz mais sentido para o seu envio.

<figure><img src="/files/ceB7Ucq7XxAEwdCJzSy8" alt=""><figcaption></figcaption></figure>

[**Envio por arquivo:**](/whatsapp/introducao-ao-messaging-whatsapp/envio-com-arquivo) Neste cenário, nós fazemos o upload da nossa base de clientes para a plataforma, o arquivo a ser enviado deve ser como o que já foi descrito neste passo a passo. Você pode utilizar a função baixar modelo dessa página para montar seu arquivo.

[**Contatos:**](/sms/introducao-ao-messaging-sms/contatos) É possível fazer o upload de contatos de clientes para nossa plataforma, dessa forma, ao realizar o seu envio você pode ir selecionando os contatos de forma manual.

[**Grupos:** ](/sms/introducao-ao-messaging-sms/grupos)Esses não são os grupos de WhatsApp, ainda não temos a função disponível. Neste cenário, é possível criar grupos de pessoas especificas com base nos seus contatos.

**Telefone:** Essa é uma função utilizada geralmente para testes, basta adicionar seu DDI+DDD+Número de telefone.

Caso o envio seja para mais de uma pessoa, basta separar por vírgula.

<figure><img src="/files/56tOWfDBMWKIkkqa61Mh" alt=""><figcaption></figcaption></figure>

Se você optar por fazer o envio por arquivo, será necessário que faça o upload do seu arquivo para nossa ferramenta:

<figure><img src="/files/vIXzd1v5IvcXjTj0dkxS" alt=""><figcaption></figcaption></figure>

Ao fazer o upload, precisamos sinalizar se a plataforma precisa adicionar o código do país ao seu envio ou se você já os adicionou ao seu arquivo.

<figure><img src="/files/NzwuxxRK1ExJvEYxCh9E" alt=""><figcaption></figcaption></figure>

Logo abaixo da tela, você pode visualizar que a ferramenta já reconheceu seus campos dinâmicos (caso tenha utilizado), é por esses campos da sua base de clientes que vamos substituir as variáveis do seu texto.

<figure><img src="/files/kYuUfySsh9iaiP9B2ZFw" alt=""><figcaption></figcaption></figure>

Agora podemos clicar em avançar.

## Selecionando seu template

Você será direcionado para uma nova tela, nela selecione o template criado.

Lembre-se que ele precisa estar aprovado para ser utilizado.

<figure><img src="/files/UBMTJ7C9IUJs9HuQ5UyU" alt=""><figcaption></figcaption></figure>

Caso seu arquivo tenha um cabeçalho de mídia, escolha o arquivo de imagem da sua máquina.

**Lembre-se que o arquivo deve conter no máximo 10MB e estar no formato .jpeg, .jpg ou .png.**

**Revisou seu template?**\
**Está pronto para os próximos passos? Então clique em avançar!**

{% embed url="<https://www.youtube.com/watch?ab_channel=TreinamentosSinch&index=8&list=PLMCtNM6EpFXko1zWLHNvl7U9PUXOughvN&v=uX9DmwQlkBU>" %}


# Vinculando seu disparo a uma campanha

As campanhas não são obrigatórias, mas é um recurso que te ajuda a metrificar suas taxas de entrega.

Ao enviar uma mensagem com uma campanha, posteriormente podemos filtrar nos relatórios e analisar os dados da campanha, porcentagem de entrega, porcentagem de leitura e outras informações.

Há duas formas de criar suas campanhas:

1. Durante o seu envio, após escolher e configurar o seu template de envio, você será direcionado para uma tela como essa:

<figure><img src="/files/2oyWwsN4KH78ovfnVs5x" alt=""><figcaption><p>campanhas</p></figcaption></figure>

* **Sem campanha:** Não vincule seu envio a nenhuma campanha, nesse caso dentro dos nossos relatórios a plataforma apresenta um hífen (-), no campo campanhas.

<figure><img src="/files/MIFAQzxYmTfI2KXSmzem" alt=""><figcaption></figcaption></figure>

* **Selecionar uma campanha existente:** Vincule o seu envio a uma campanha já existente da plataforma.

<figure><img src="/files/DzFYsuZzqyTFvMOCD9G8" alt=""><figcaption></figcaption></figure>

* **Criar uma nova campanha:** Crie uma nova campanha para esse envio. Basta digitar o nome que deseja utilizar.

<figure><img src="/files/34EvOzko3ftLmpjfxF0U" alt=""><figcaption></figcaption></figure>

Clique em avançar para seguir com seu envio.

2. Criando campanhas antes do seu envio:

No seu menu lateral esquerdo expanda o menu de mensageria e selecione campanhas:

<figure><img src="/files/hapQBFnJVqqCjQI0FKNK" alt=""><figcaption></figcaption></figure>

Nessa tela você visualiza todas as campanhas que estão criadas na plataforma com as seguintes informações:

* Nome da campanha;
* Alias da campanha;
* Descrição;
* Criada em:
* Subconta;
* Status;
* Ações;

Para criar uma nova campanha você pode utilizar o botão: **Criar campanha.**

<figure><img src="/files/2xFZaCnCeOCLr9NPZFiZ" alt=""><figcaption></figcaption></figure>

erá necessário que adicione um nome a campanha e em seguida uma descrição que é opcional, clique em salvar.

Pronto, sua campanha está pronta para uso.




---

[Next Page](/llms-full.txt/1)

