A API Local está sendo descontinuada. Consulte o documento Descontinuação da API Local para ver mais informações e saber como migrar para nossa API de Nuvem de última geração.

Perguntas frequentes sobre a API Local

Acesse a página de status da Plataforma do WhatsApp Business para encontrar as informações mais recentes sobre eventuais interrupções na plataforma.

Introdução

As comunicações com usuários da WhatsApp Business API que gerenciam o ponto de extremidade da API em servidores que controlam são consideradas pelo WhatsApp como criptografadas de ponta a ponta, uma vez que não há acesso de terceiros ao conteúdo entre os pontos de extremidade.

Algumas organizações optam por delegar o gerenciamento do ponto de extremidade da WhatsApp Business API a um fornecedor de soluções de negócios de terceiros. Nesses casos, a comunicação ainda usa o mesmo protocolo de criptografia Signal. No entanto, como o usuário da WhatsApp Business API escolheu um terceiro para gerenciar o ponto de extremidade, o WhatsApp não considera essas comunicações como mensagens criptografadas de ponta a ponta. Em 2021, isso eventualmente também se aplicará a empresas que optarem por usar a versão baseada em nuvem da API hospedada pelo Facebook.

Além disso, se você usar HTTPS ao fazer chamadas para o cliente da WhatsApp Business API, esses dados serão criptografados com SSL (do seu cliente do backend até o cliente da WhatsApp Business API).

Consulte o artigo técnico Visão geral da criptografia do WhatsApp (em inglês) para mais informações.

Não. Só é possível executar uma conta por instância. Se precisar de uma conta para testes, use outro número para essa segunda instância.

Não! Em qualquer situação, você só pode ter uma instância do Cliente da API do WhatsApp Business em execução para um único número de telefone. Se você registrar uma segunda instância, sua primeira instância será desconectada e falhará. Estamos trabalhando em uma solução adequada para que isso seja possível. Manteremos você informado sobre quaisquer atualizações.

O cliente da API Local do WhatsApp Business precisa de um banco de dados para armazenar chaves que descriptografam mensagens entre uma empresa e os clientes. Todas as mensagens do WhatsApp são criptografadas com chaves de remetente e destinatário. As chaves do cliente são armazenadas nos dispositivos móveis deles, já as chaves da empresa são armazenadas no banco de dados. Saiba mais sobre a Segurança do WhatsApp.

A API de Nuvem do WhatsApp Business é uma alternativa em que a Meta hospeda o banco de dados de uma empresa. Essa API permite que você implemente as APIs do WhatsApp Business sem o custo de hospedagem dos seus servidores. Saiba mais.

Não. No momento, não é possível executar vários números na mesma configuração de cliente da WhatsApp Business API. Estamos trabalhando em uma solução adequada para que isso seja possível.

Yes, Whatsapp Flows can be sent with On-Premises API. You can learn more about Whatsapp Flows here, or learn how to get started with Whatsapp Flows and On-Premises API here.

Instalação

Sim! Por padrão, o Cliente da API do WhatsApp Business tenta se comunicar usando chatd sobre a porta 5222. Para obter a melhor experiência, abra a porta 5222 para todo o tráfego de saída. Fazer isso não causa um problema de segurança, pois trata-se apenas do tráfego de saída do seu data center.

Caso não seja possível abrir a porta 5222, o Cliente da API do WhatsApp Business tentará usar a porta 443. Se seu firewall ou proxy continuar encerrando as conexões, entre em contato com a equipe do WhatsApp enviando uma pergunta por meio do Suporte Direto para fazer uma depuração.

Não. O Cliente da API do WhatsApp Business abre uma conexão TCP de saída às portas 5222 ou 443 nos servidores do WhatsApp. O tráfego ocorre sobre essa conexão de longa duração. Normalmente, os firewalls classificam isso como a permissão para “tráfego de saída e o tráfego estabelecido”. É claro que, depois de estabelecida a conexão, o fluxo de pacotes ocorrerá em ambas as direções, mas o início da conexão parte do Cliente da API do WhatsApp Business, por isso não é necessário ter uma regra para permitir conexões de entrada.

Os requisitos dependem da carga e da situação. A solução pode ser executada em qualquer computador conectado à Internet que possa executar o Docker. Por exemplo, testes simples podem ser feitos em um notebook.

Para configurar um servidor de produção de instância única, recomendamos pelo menos 250 GB de SSD, 16 GB de RAM e uma CPU com quatro núcleos. Não é recomendado usar um HDD, pois as velocidades de entrada e saída se tornarão gargalos com a carga.

Para configurar um servidor de produção de Multiconexão, recomendamos pelo menos 50 GB de SSD, 4 GB de RAM e uma CPU com dois núcleos para cada contêiner do Coreapp/Master/Webapp.

Na maioria dos casos, é aconselhável executar o banco de dados em um servidor físico diferente dos contêineres do Webapp e do Coreapp. O servidor do banco de dados deve estar a apenas alguns milissegundos de latência do computador.

Essa configuração é compatível com o envio de aproximadamente 20 mensagens por segundo.

É necessário usar o MySQL 5.7.x ou PostgreSQL 9.5.x, 9.6.x, 10.x. Usar uma versão anterior causará um erro do tipo Unable to initialize config store.

Configure o MySQL localmente usando o Docker e seguindo o guia sobre MySQL no Docker.

Configure o PostgreSQL localmente usando o Docker e seguindo o guia sobre PostgreSQL no Docker.

Na maioria dos casos, é aconselhável executar o banco de dados em um servidor físico diferente dos contêineres do Webapp e do Coreapp. O servidor de banco de dados deve estar a apenas alguns milissegundos de latência do computador.

É possível criar listas de permissão tanto com nomes de host quanto com endereços IP.

Consulte a seção Nomes de host da documentação sobre Requisitos da rede para obter mais informações.

Sim. A conexão TCP é necessária. Caso sua empresa não possa abrir portas adicionais, você poderá usar SSL encerrado.

Consulte a documentação de Requisitos da rede para obter mais informações.

Gerenciamento de dados

MySQL e PostgreSQL são compatíveis. Se executar o Docker por conta própria, você precisará fornecer um banco de dados MySQL/PostgreSQL ao qual os contêineres possam se conectar. O modelo do AWS configura um banco de dados MySQL por padrão.

Não. Atualmente, o Cliente da API do WhatsApp Business não é compatível com o Docker para Windows. Em caso de necessidades relacionadas a desenvolvimento, a solução recomendada é usar uma máquina virtual Linux e executar o Docker dentro dela. Em caso de cargas de trabalho de produção, recomendamos usar um servidor Linux para evitar problemas de compatibilidade e desempenho.

Para reiniciar os contêineres do Docker, execute o seguinte código:

Contêiner do Docker do Coreapp

docker restart wacore<Current_WABA_Version>

Contêiner do Docker do Webapp

docker restart webapp<Current_WABA_Version>

Você pode verificar qual é a versão usando

docker ps

Sim. A rotação de registro funciona de maneira ligeiramente diferente entre os contêineres do Webapp e do Coreapp:

  • Webapp: os últimos 30 arquivos de registro são mantidos. O arquivo de registro só é rotacionado se exceder 20 MB.
  • Coreapp: os últimos 30 arquivos de registro são mantidos. O arquivo de registro só é rotacionado se exceder 15 MB. Os arquivos rotacionados são compactados.

Existe um script que pode ser acionado externamente para limpar registros antigos de um contêiner:

docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh

O script funciona para contêineres do Webapp e do Coreapp. Ao executar o script, os arquivos de registro antigos serão removidos, e somente 30 arquivos de registro do contêiner serão mantidos.

Seu sistema poderá ficar lento à medida que o espaço for sendo preenchido. Isso poderá ocorrer se houver muitos arquivos de mídia, mensagens e arquivos de registro grandes. Os arquivos de registro são rotacionados automaticamente, mas, se eles começarem a ficar muito grandes, será seguro excluí-los.

As mensagens são armazenadas no banco de dados. Você pode excluir as mensagens conforme necessário. Além disso, se pass_through estiver definido como falso nas configurações do aplicativo, todas as mensagens serão salvas no banco de dados até que sejam explicitamente excluídas.

Os arquivos de mídia enviados pelos usuários são baixados para os volumes de mídia. Fica a critério da empresa decidir quais arquivos de mídia deverão ser excluídos, mas, em geral, é seguro excluir arquivos de mídia. Você pode usar docker inspect your-container-id para verificar onde a pasta do volume de mídia está.

Messages are stored in the database. You can delete messages as necessary. Also, if the pass_through is set to false in the application settings, then all messages are saved in the database until they are explicitly deleted.

Media files that users send to you are downloaded to the media volumes. It is up to the business to decide which media files to delete, but it is generally safe to delete any media files. You can use docker inspect your-container-id to check where the media volume folder is.

Sim. O banco de dados pode ser usado de outras maneiras sem afetar as tabelas relacionadas ao WhatsApp.

As tabelas de banco de dados armazenam informações relacionadas às configurações do aplicativo, conversas de bate-papo, mensagens, mídia, etc., que são exigidas para a operação do aplicativo.

Em relação a versões anteriores, a v2.25.x melhora o desempenho de entrada e de saída. Essa otimização depende da criação de conexões adicionais do banco de dados. Para algumas implementações, isso pode fazer com que o número de conexões do banco de dados aumente e os limites configurados sejam atingidos. Para manter o desempenho aprimorado, é possível aumentar o número máximo de conexões que o servidor do banco de dados pode aceitar. Caso isso não seja possível, mude o parâmetro axolotl_context_striping_disabled para desativar esse comportamento. Consulte a documentação sobre Configurações do aplicativo para obter mais informações sobre como fazer isso.

A coleta de lixo do banco de dados limpa periodicamente as tabelas messages e messages_reciept_log para ajudar com o gerenciamento do banco de dados.

O coletor de lixo retém certas mensagens para possibilitar o sucesso da entrega/do processamento. Por exemplo, reter a mensagem recebida por um determinado período de tempo para permitir que as integrações comerciais marquem a mensagem como lida.

O Coreapp executa a coleta de lixo em intervalos aleatórios (ou seja, a cada período de algumas horas). O objetivo é evitar uma possível redução do desempenho nas pilhas de alta disponibilidade devido à contenção do banco de dados.

A coleta de lixo é independente da fila do retorno de chamada. Por exemplo, se o servidor Webhook não estiver disponível por 4 dias, os retornos de chamada serão armazenados para serem entregues quando a conectividade do servidor for restaurada.

Use o ponto de extremidade de API services da coleta de lixo do banco de dados para remover as mensagens e os recibos correspondentes das tabelas messageStore.messages e messageStore.messages_receipt_log.

Registro

Se você fizer backup da sua configuração atual e restaurá-la na nova máquina, as informações de registro deverão ser movidas juntamente com o restante da implementação. Consulte a documentação sobre Configurações de backup e restauração para obter mais informações.

Autenticação

Se você desconectar um usuário por meio do ponto de extremidade users, todos os tokens de autorização atribuídos à conta dele serão invalidados. Excluir um usuário terá o mesmo efeito, embora seja uma opção muito mais drástica. Lembre-se de que conectar um usuário por meio do ponto de extremidade users retornará um novo token de autorização, mas isso não invalidará os tokens de autorização relacionados ao usuário que já estão em circulação. Qualquer pessoa que tiver um token provisionado anteriormente continuará podendo usá-lo até que ele expire ou seja invalidado por meio de um dos métodos mencionados anteriormente.

Como enviar mensagens

Observação: não envie a mesma mensagem repetidamente para o mesmo destinatário usando a WhatsApp Business API.

Existem vários motivos que podem fazer com que sua taxa de entrega não seja de 100%. Isso pode ocorrer devido a usuários com acesso esporádico à rede ou que ficam inativos por um período de tempo ou para criar uma experiência de usuário de alta qualidade.

As mensagens que podem ser entregues com o WhatsApp terão uma taxa de entrega muito alta. No entanto, existem muitas razões pelas quais uma mensagem pode não ser entregue. Para ter acesso ao status exato de uma mensagem, monitore seus retornos de chamada. Isso é diferente de enviar mensagens por SMS, em que você não tem acesso ao status final de entrega e reenviar a mensagem pode gerar um resultado diferente.

As mensagens podem não ser entregues porque o smartphone do usuário está fora de serviço ou sem bateria, ou porque ele perdeu o aparelho, está comprando um novo e desabilitou o SIM. É possível que haja erros na capacidade do cliente da empresa de se conectar à rede. Também pode haver falha na entrega de retornos de chamada (Webhooks). Você pode monitorar essas situações usando o nó health. É possível ativar os retornos de chamada de recebimento do servidor para saber se a mensagem chegou à nuvem do servidor do WhatsApp.

Quando um usuário se conectar novamente à rede, todas as mensagens que foram enviadas por você serão entregues a ele. Receber mais de uma mensagem com o mesmo conteúdo gera uma experiência ruim para o usuário. Isso aumenta a probabilidade de ele reclamar ou bloquear você. Você também corre o risco de ter sua conta banida.

Quando você envia uma mensagem e recebe um número de identificação de mensagens da API, isso significa que foi feito o possível para efetuar o envio. Não reenvie o mesmo conteúdo para o mesmo destinatário.

Caso suas taxas de entrega se mantenham baixas por um período prolongado, crie um tíquete no Suporte Direto.

Quando você recebe o ID de uma mensagem que enviou, isso significa que a solicitação de mensagem foi armazenada no banco de dados. O Cliente da API do WhatsApp Business continuará tentando enviar a mensagem até receber o reconhecimento do servidor do WhatsApp. Não há um limite de tempo para esse processo. Depois disso, o servidor do WhatsApp tentará entregar a mensagem ao telefone do usuário. Se o telefone do usuário não estiver online, a mensagem ficará armazenada por 30 dias até ser descartada pelo servidor do WhatsApp.

No momento, não existe uma maneira de ver quantos usuários bloquearam sua empresa. O melhor indicador seria acompanhar os retornos de chamada indicando o status e, se você não receber o status delivered, isso significará que o usuário bloqueou sua empresa ou está sem uma conexão de rede. Consulte a documentação do Webhook para obter mais detalhes.

Se um usuário tiver bloqueado sua empresa, a API Contatos continuará retornando o número de telefone como um usuário válido do WhatsApp. No entanto, se você enviar uma mensagem, ela nunca será recebida. Em caso de mensagens pagas, você não será cobrado.

Em um contexto com usuários comuns, isso é intencional quando o remetente não está em sua agenda de contatos e você nunca enviou uma mensagem a ele. No contexto comercial, a empresa deve usar os modelos de mensagem ao entrar em contato com um usuário pela primeira vez, com o objetivo de estabelecer uma relação de confiança. Depois que isso for feito, o Cliente da API do WhatsApp Business obedecerá à configuração de download automático no aplicativo.

Em um contexto com usuários comuns, isso é intencional quando o remetente não está em sua agenda de contatos e você nunca enviou uma mensagem a ele. No contexto comercial, a empresa deve usar os modelos de mensagem ao entrar em contato com um usuário pela primeira vez, com o objetivo de estabelecer uma relação de confiança. Depois que isso for feito, o Cliente da API do WhatsApp Business poderá renderizar o link para torná-lo clicável.

Com certeza! Entre em contato com seu representante do WhatsApp para fazer essa solicitação.

Não. Não há garantia de que as mensagens serão entregues na mesma ordem na qual foram enviadas. Se a ordem for essencial no seu caso de uso, a abordagem sugerida é a de acompanhar o retorno de chamada indicando que a primeira mensagem foi entregue antes de enviar a segunda.

Ao usar o nó messages, é necessário definir o cabeçalho Content-Type como application/json para que o Cliente da API do WhatsApp Business possa analisar o corpo da mensagem. Também existe um cabeçalho Authorization, que deve ser definido e conter um token de acesso que não esteja expirado. Consulte a documentação sobre login e autenticação para obter mais informações sobre como obter um token e quando ele expira.

Sim. Envie uma chamada de API ao nó contacts antes de enviar uma mensagem. As informações da verificação de contacts são salvas em cache no contêiner, e não fazer isso poderá causar um erro do tipo Unkown Contact. Consulte a documentação sobre a verificação de contatos para obter mais informações.

If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.

No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.

Mídia

Não há mecanismos de limpeza para arquivos de mídia enviados nem recebidos. Para excluir seus arquivos de mídia manualmente, encontre-os no seu sistema de arquivos.

Para encontrar o ponto de montagem de seu volume de mídia, você pode executar um comando do Docker.

Solicitação

docker volume inspect whatsappMedia

Resposta

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

Depois, para ver todos os arquivos de mídia de entrada, você pode executar o comando ls com o caminho de arquivo Mountpoint recebido:

ls /var/lib/docker/volumes/whatsappMedia/_data/

Para a configuração do AWS, o volume de mídia é montado em um caminho /mnt/wa/media no host.

O tamanho máximo para o carregamento de qualquer arquivo é 64 MB. Esse limite também se aplica a qualquer imagem, documento ou vídeo que você enviar em uma mensagem.

O momento de excluir arquivos de mídia fica a seu critério.

Após carregar arquivos de mídia, você receberá um ID da mídia, que poderá ser usado para enviar uma mensagem incluindo o elemento de mídia carregado. Quando você enviar a mensagem de mídia, a API do WhatsApp Business criptografará e carregará a mídia para os servidores do WhatsApp, onde ela permanecerá por um período de 14 dias. Depois disso, você poderá optar por excluir a mídia fornecendo o ID dela ou mantê-la para uso posterior. Embora recomendemos que você mantenha a mídia por 30 dias, fica a seu critério decidir qual será a política de retenção com base nas necessidades e no caso de uso da sua empresa.

Para imagens, a legenda será adicionada como uma descrição. O texto da legenda aparece completo em imagens no Android e no iPhone.

Para documentos, a legenda substitui o nome do arquivo. O objetivo não é que seja exibida no dispositivo do usuário como um texto de descrição, e sim exibir o nome do arquivo. No iPhone, o texto completo é exibido, e no Android, o nome do arquivo é truncado. Isso ocorre devido a uma limitação técnica da implementação atual do WhatsApp em ambos os dispositivos.

Quando você enviar imagens como álbum por meio da WhatsApp Business API, será necessário enviar pelo menos 4 imagens consecutivas. Se a visualização de conversas do usuário estiver ativa quando as imagens forem recebidas, a visualização em álbum ficará indisponível até o próximo acesso.

Se algum destes critérios for atendido, um álbum não será criado:

  1. Imagens com legendas
  2. Divisor não lido – o usuário vê algumas imagens, mas não o resto
  3. Cabeçalho de data – novo dia entre entregas

Não. No momento, precisamos usar o AWS EFS para compartilhar o volume de mídia entre o Coreapp e o Webapp.

Não. No momento, não oferecemos suporte à alteração de caminho padrão do armazenamento de mídia (/usr/local/wamedia/). Todos os armazenamentos de mídia precisam usar esse local padrão para funcionarem adequadamente.

Modelos de mensagem

Atualmente, o período é de sete dias. Se o cache não for atualizado por mais de sete dias, ele obterá o pacote de idioma mais recente do servidor, mesmo que o elemento já exista no pacote.

Nota: a política de idioma fallback está obsoleta desde a versão v2.27.8 e a política de idioma deterministic é a política padrão agora.

Se você criar uma tradução para um novo idioma, será necessário traduzir todos os elementos que você usa para esse idioma. Caso contrário, erros do tipo “estrutura indisponível” poderão ocorrer, pois o telefone do destinatário não encontrará um elemento esperado para o idioma configurado. Os erros do tipo “estrutura indisponível” ocorrem quando modelos de mensagem são enviados usando a política de fallback.

Se não tiver a opção de criar as traduções para o idioma no momento, você poderá usar uma política determinística para evitar esses erros.

Webhooks

O Cliente da API do WhatsApp Business envia retornos de chamada do Webhook para você por meio do contêiner do Coreapp. Portanto, seu ponto de extremidade do Webhook precisa ser configurado para aceitar solicitações de entrada do Coreapp.

Se um Webhook falhar ao enviar um retorno de chamada, ele será colocado em uma fila para que sejam feitas novas tentativas. Retornos de chamada enviados após a falha no retorno de chamada inicial não serão recebidos. Depois que o primeiro retorno de chamada for bem-sucedido, os outros serão enviados.

Se um evento do Webhook não for entregue por qualquer motivo (por exemplo, o cliente está offline), ou se a solicitação do Webhook retornar um código de status HTTP diferente de 200, tentaremos novamente fazer a entrega do Webhook. Continuaremos tentando fazer a entrega com intervalos cada vez maiores até atingir um tempo limite específico (normalmente 24 horas, mas pode variar) ou até que a entrega seja bem-sucedida.

É possível enviar mensagens duplicadas a um Webhook do WhatsApp como a única garantia de que as mensagens serão recebidas pelo menos uma vez (e não exatamente uma vez). Se isso estiver afetando a maneira como as mensagens são processadas por você, sugerimos eliminar as duplicações de mensagens do Webhook com base no ID da mensagem.

Verifique a configuração pass_through do aplicativo. Se a configuração pass_through for ativada na v2.29.1 ou superior do cliente da WhatsApp Business API, você não receberá as confirmações de leitura.

Para receber o retorno de chamada de confirmação de leitura, desative a configuração pass_through do aplicativo. Lembre-se de que a desativação de pass_through poderá levar a um aumento repentino no armazenamento do banco de dados. Consulte a documentação sobre gerenciamento do banco de dados para saber mais.

Erros

Essa falha é causada por um erro em uma versão mais antiga do cliente do iOS. A expectativa é que o número de erros diminua ao longo do tempo, conforme a população atualiza seus dispositivos.

Primeiramente, verifique todos os retornos de chamada em busca de erros críticos para diagnosticar o problema.

Caso veja a mensagem “Conflito: foram detectadas várias instâncias com o mesmo número”, você precisará verificar seus contêineres. A causa mais provável é que vários contêineres do Docker estejam tentando se conectar aos servidores do WhatsApp usando a mesma conta do WhatsApp. Você deve ter apenas um contêiner ativo e em execução. Caso tenha contêineres antigos, desative-os, e o erro desaparecerá.

Caso queira testar nossa solução de alta disponibilidade mais complicada, consulte a documentação sobre Alta Disponibilidade.

Esse é um problema conhecido. Em alguns casos, atualizar o Cliente da API do WhatsApp Business usando os scripts do CloudFormation também exige uma atualização da pilha de banco de dados do RDS. A nova pilha do RDS não poderá ter o mesmo nome de host da pilha original, e os contêineres do Docker não conseguirão se conectar ao banco de dados. A solução é usar SSH na instância do EC2 criada pelo CloudFormation e atualizar o arquivo whatsapp.conf com o novo nome de host e, então reiniciar os contêineres do Docker para que possam obter as novas configurações.

Esse erro ocorre quando o banco de dados não foi configurado corretamente.

  • Verifique se você está usando o MySQL 5.7 ou posterior ou o PostgreSQL 9.5.x, 9.6.x ou 10.x.
  • A senha do seu banco de dados não deve conter nenhum destes caracteres: ?{}&~!()^.
  • Se estiver usando o AWS, o nome da pilha deverá ser curto. Consulte a documentação sobre instalação para obter mais informações.

Isso acontece quando a ponte do Docker está corrompida. A melhor solução é interromper o serviço do Docker e reiniciá-lo. Você também pode tentar usar docker restart nos seus contêineres.

Um erro do tipo “conexão recusada” provavelmente significa que o Coreapp não está em execução. Use docker ps para ver se o Coreapp está ativo. Se ele não estiver, consulte os registros do Docker. Talvez o Coreapp não esteja conseguindo se conectar ao banco de dados. Verifique se o banco de dados está configurado corretamente.

Há vários motivos possíveis. Seu Coreapp pode não estar funcionando, ou seu banco de dados pode não ter sido configurado corretamente. Se não for o caso, verifique os registros do Coreapp (ou os registros mestre do Coreapp se estiver usando Multiconexão). Se erros de conexão forem exibidos, é provável que o número de conexões do seu banco de dados esteja acabando. Consulte a documentação do MySQL ou do PostgreSQL a respeito desse erro.

Recomendamos aumentar o número de conexões do seu banco de dados. Um número seguro de conexões para o banco de dados seria o de 1.000, mas você deve verificar as informações necessárias para tomar uma decisão sobre o número de conexões. Se o erro persistir, abra um ticket de Suporte.

Se receber esse erro, mas o parâmetro obrigatório ausente estiver definido no seu corpo JSON, talvez o problema seja um erro de análise de JSON. Esse erro poderá ocorrer quando não for possível analisar toda a carga JSON devido a erros de formatação JSON. Verifique os valores dos parâmetros para ver se há caracteres inválidos para JSON, como caracteres de retorno no final. Às vezes, os parâmetros podem ser copiados com espaços em branco adicionais que podem conter caracteres que prejudicam o JSON.

Os erros de estrutura indisponível são exibidos quando o smartphone não consegue ler o modelo de mensagem.

Os modelos são armazenados no servidor. Quando um modelo de mensagem é enviado usando o nó messages, ele não será compartilhado na íntegra. Somente o namespace, o idioma, o nome do elemento e os parâmetros localizados serão encaminhados ao smartphone. Após receber esses valores, o smartphone tentará renderizar a mensagem.

Se houver falhas nesse processo, o erro structure unavailable será enviado à URL de retorno de chamada com o ID da mensagem e do destinatário. Esses erros podem ser causados por um namespace incorreto, uma incompatibilidade no parâmetro localizado, um nome de elemento errado, entre outros.

No Gerenciador de Negócios do Facebook, acesse o Gerenciador do WhatsApp para conferir o número certo de parâmetros. Verifique se o namespace está correto e se o nome do elemento existe.

Um dos motivos mais comuns desses erros é a não criação de traduções para todos os modelos em uso. Por exemplo, digamos que você costume enviar 2 modelos. Se quiser acrescentar a tradução para um idioma novo, será necessário fazer isso com os 2 modelos, e não com apenas um. Caso planeje oferecer compatibilidade com mais de um idioma, você precisará fornecer traduções para todos os modelos em todos os idiomas aceitos.

Porém, na maioria das vezes, o erro structure unavailable acontece por conta de falhas na chamada de API messages . Para resolver esse problema, basta alterar a carga de envio.

É necessário verificar se o contato existe antes de enviar uma mensagem. Consulte a documentação sobre Contatos para obter mais informações sobre como fazer isso.

Esse erro ocorre quando o Coreapp ainda não foi inicializado. Isso pode significar que o registro não funcionou. Tente fazer o registro antes de fazer chamadas para outro ponto de extremidade. A primeira etapa após a instalação da API do WhatsApp Business é a defazer login. A segunda etapa é a de registro. É necessário concluir essas duas etapas antes de fazer solicitações para outros pontos de extremidade.

Todas as compilações do Cliente da API do WhatsApp Business têm um prazo de expiração de seis meses após a data de lançamento. Se você visualizar esse erro, faça a atualização para a versão mais recente assim que possível.

O WhatsApp faz experiências para avaliar e entender o impacto das notificações da API do WhatsApp Business sobre a experiência do usuário e o produto em geral. Se o usuário para quem você está enviando mensagens fizer parte de uma dessas experiências, talvez ele não receba suas notificações mesmo tendo optado por recebê-las.

Caso ocorra um erro semelhante ao erro a seguir durante a configuração de uma implementação do AWS, tente alterar para um nome de pilha com até oito caracteres.

Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:string is too long, it needs to be less than 64 bytes long Common Name (e.g. server FQDN or YOUR name) []:Email Address []:error, no objects specified in config file problems making Certificate Request Created device key for internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com

Um objeto profile será retornado se o perfil comercial estiver apenas parcialmente preenchido. Atualize para a versão v2.21.4 para resolver esse problema.

Consulte a documentação sobre Configurações do perfil comercial para obter mais informações sobre como preencher seu perfil comercial.

O código de erro 471 está relacionado a limites de volume com base em qualidade. Consulte a documentação sobre Limites de volume com base em qualidade para obter mais informações.

Confira a seguir exemplos de erros e suas prováveis causas:

  • "Não existe nenhum modelo de mensagem no idioma seu-idioma" ou "Não existem modelos de mensagem no idioma seu-idioma nem na localidade sua-localidade": o pacote de idioma em questão não existe. Verifique sua conta do Gerenciador de Negócios.
  • "O modelo nome-do-modelo não existe no idioma seu-idioma" ou "O modelo nome-do-modelo não existe no idioma seu-idioma nem na localidade sua-localidade": você está tentando usar um modelo que não existe (não foi criado ou ainda não foi aprovado). Este erro também será exibido se você tentar enviar uma mensagem com um modelo que foi excluído.
  • "O número de parâmetros localizáveis num1 não corresponde à quantidade prevista de parâmetros num2": você está tentando enviar um modelo de mensagem com parâmetros que não correspondem ao número esperado. Verifique se a invocação da API está correta.
  • "O modelo nome-do-modelo é avançado e requer a API de Mensagem de Modelo": você está tentando enviar um modelo de mensagem de mídia como se fosse um modelo padrão. O tipo de mensagem deve ser template. Consulte a documentação sobre modelos de mensagem de mídia para saber mais.
  • Após a aprovação (ou exclusão) dos modelos no Gerenciador de Negócios, pode levar até 20 minutos para que essa atualização seja refletida no cliente da WhatsApp Business API. Caso você tente enviar uma mensagem cujo modelo foi recém-aprovado e receba um erro de modelo inexistente, aguarde o tempo mencionado acima e tente novamente.

Para Clientes da API do WhatsApp Business com a versão 2.21.6, quando o cliente se desconecta do servidor, ele poderá permanecer desconectado por alguns minutos (até 4 minutos) antes de tentar fazer a conexão novamente. A atualização para a versão 2.23.4 diminuirá o tempo de inatividade do cliente ao tentar se conectar ao servidor.

Antes da v2.29.x, a fila de mensagens enviadas podia aumentar ao longo do tempo devido a um erro. Atualizar para a v2.29.3 resolve esse problema.

No contêiner do Coreapp, os diretórios /usr/local/waent/data e /usr/local/waent/log serão verificados para garantir que no mínimo 10 MB de armazenamento estejam disponíveis. Caso contrário, esse erro será exibido.

Confira se há espaço suficiente nos seus registros e diretório de dados.

Outros

No momento, não é possível fazer isso. Caso não consiga atender a todas as respostas de seus clientes recebidas pelo WhatsApp, sugerimos enviar uma mensagem de resposta automática para orientá-los a entrar em contato por meio dos canais de suporte adequados.

Você deve registrar um segundo número de telefone e rotacionar uma segunda pilha do CloudFormation ou instância do Docker para fazer testes. Se você tiver dois Clientes da API do WhatsApp Business ativos usando o mesmo número de telefone, o servidor desconectará você, pois as chaves de criptografia entrarão em conflito. Recomendamos ter um segundo ambiente que você possa usar para testar sua instância não relacionada à produção antes de iniciar qualquer tipo de migração do seu cliente de produção.

Verificar a integridade é gratuito e pode ser solicitado com a frequência necessária.

Leia a documentação sobre as estatísticas para saber mais sobre as estatísticas do aplicativo e do banco de dados que você pode solicitar. As estatísticas do aplicativo são armazenadas na memória, e é barato solicitá-las. As estatísticas do banco de dados exigem mais recursos e só devem ser solicitadas quando for necessário.

Sua empresa não será notificada quando o número de telefone do WhatsApp de um usuário mudar. Se estiver usando o nó contacts, o status do número será invalid.

Se o número de telefone de um cliente ficar inativo, mas ele continuar usando o WhatsApp, ele continuará a acessar o WhatsApp até que o número seja reatribuído ou registrado novamente.

O WhatsApp verifica rigorosamente se o número fornecido realmente pertence ao telefone. O fato de ter uma conta do WhatsApp é prova de que o usuário confirmou o número e que ele nunca foi usado por ninguém para se registrar no WhatsApp posteriormente. No entanto, não é uma garantia a respeito da localização física do cartão SIM.

Por outro lado, se o telefone de um usuário for perdido ou roubado, ele poderá desativar a conta do WhatsApp. Para saber mais sobre como os usuários podem desativar suas contas, consulte as perguntas frequentes sobre telefones perdidos ou roubados.

Não é possível usar a API do WhatsApp Business para detectar se vários dispositivos estão usando o mesmo número de telefone.

A carga de mensagem enviada por um usuário pode ser um arquivo de texto ou de mídia.

Acreditamos que arquivos de mídia não sejam perigosos.

Sobre os arquivos de mídia:

  • Normalmente, as empresas têm algum tipo de software de proteção (como antivírus, antimalware, etc.) implementado que possa analisar possíveis ameaças.
  • O WhatsApp não consegue identificar nem verificar o conteúdo de arquivos transferidos, pois eles usam criptografia de ponta a ponta (o mesmo ocorre com arquivos somente de texto).
  • Há uma opção para impedir que arquivos de mídia sejam baixados automaticamente no Cliente da API do WhatsApp Business. Caso a empresa não queira receber nenhum arquivo dos usuários, é possível definir o campo auto_download com uma matriz vazia.

Entre em contato com o suporte e forneça todas as informações que você tiver. Nós investigaremos e desativaremos os números falsos.

A partir da versão 2.18.26, o ponto de extremidade Estatísticas do aplicativo permite a exportação de métricas internas no formato de texto do Prometheus. Consulte a documentação sobre o Monitoramento de instâncias para obter mais informações.

O cliente da API Local do WhatsApp Business precisa de um banco de dados para armazenar chaves que descriptografam mensagens entre uma empresa e os clientes. Todas as mensagens do WhatsApp são criptografadas com chaves de remetente e destinatário. As chaves do cliente são armazenadas nos dispositivos móveis deles, já as chaves da empresa são armazenadas no banco de dados. Saiba mais sobre a Segurança do WhatsApp.

A API de Nuvem do WhatsApp Business é uma alternativa em que a Meta hospeda o banco de dados de uma empresa. Essa API permite que você implemente as APIs do WhatsApp Business sem o custo de hospedagem dos seus servidores. Saiba mais.