Passo a passo de como fazer a integração no Whats App API.
Conta para teste -> Email: integracaoAPI@outlook.com | Senha: viniciusleandro12
1° Passo - Criar conta no Facebook, ou utilizar existente
Criar uma conta no Facebook com foto de perfil e capa, ou utilizar a existente.
2° Passo - Acessar Link
Acessar o link: https://developers.facebook.com/

Clicar em Entrar

3° Passo - Fazer login com o Facebook

4° Passo - Criar um aplicativo

Escolher Outro e clicar em avançar

Escolher o tipo de aplicativo como empresa e clicar em avançar

Definir um nome para o aplicativo um email e a conta empresarial e clicar em criar

Com o aplicativo criado, na tela inicial rolar a tela para baixo e procurar pelo produto do WhatsApp

5° Passo - Gerando Token de Acesso Permanente
Clicar em painel de aplicativos no canto superior esquerdo
Clicar em Configurações do Negócio

No canto esquerdo vá até Usuário -> Usuários do Sistema

Você pode adicionar um usuário caso não haja nenhum informado ou pode adicionar clicando em "Adicionar", é importante que o usuário seja administrador. (É permitido inserir apenas um usuário do nível administrador).

Logo após é só selecionar o usuário e clicar em "Adicionar Ativos"

Clicar em Apps e selecionar o App e dar acesso total a ele

Depois é só clicar em "Gerar Token" e selecionar o aplicativo

Em Token Expiration marcar Nunca

Mais abaixo marcar "whatsapp_business_messaging" e "whatsapp_business_management"

Com o token gerado guarde-o em segurança, pois caso perca será preciso gerar um novo

6° Passo - Adicionar um número de telefone
Na tela inicial de configurações do WhatsApp ir em "Configuração da API"

Rolar a tela para baixo e ir até o 5° passo "Adicione um número de telefone"

Na nova janela aberta basta informar os dados necessários e clicar em avançar, na outra tela informar o código do país e o número de celular com o DDD. Após informar o número correto você vai precisar verificar ele com um código enviado pelo SMS ou por chamada de voz

Importante: para ser possível adicionar um número de celular a API do WhatsApp esse número não pode estar vinculado a nenhuma outra conta do WhatsApp, seja ela Business ou Cliente. Caso deseje utilizar um número já existente, será preciso excluir a conta para poder adiciona-lo, pois todos envios de mensagens serão gerenciados pelo próprio WhatsApp, após a exclusão da conta será necessário aguardar até 3 minutos para a liberação do número.
Nota: Ao adicionar um número de telefone o whatsapp pode levar um tempo para verificar o numero.
7° Passo - Criar template mensagem
Observação: o processo de criação do modelo de mensagem é um tanto quanto demorado e necessita persistência nos reenvios, pois a análise do WhatsApp é bastante rigorosa, então muita das vezes os modelos enviados para análise podem ser rejeitados, pois então é preciso se atentar a erros ortográficos, não inserir mais de 4 espaços de uma palavra para outra, não inserir dados de clientes reais e não envolver nada sobre promoções (isso se da o fato de que o modelo está sendo criado como serviços), será apenas uma informação sobre o boleto que está próximo do vencimento.
Em "Configurações da API", troque o número de teste pelo número adicionado.

Depois basta acessar o "Painel de Aplicativos" -> Gerenciador do WhatsApp -> Ferramentas da Conta -> Modelos de Mensagem Obs: É muito importante que a mensagem padrão "hello_world" não seja excluída, pois servirá de base para o teste dentro do ERP
Para criar um modelo de mensagem basta clicar em "Criar Modelo"

Para o envio de links de boletos e pdf é preciso criar o modelo como "Serviços", logo após definir o nome do modelo, o novo não pode conter espaços entre as palavra e devem ser minúsculas por exemplo: "envio_boleto_por_link" ou "envio_boleto_por_pdf" e o Idioma em que o modelo será criado, no caso "Portuguese (BR)"

No cabeçalho você pode escolher vários tipos, mas o nosso foco aqui por enquanto é Mídia -> Documento ou Texto.
No cabeçalho de documento é preciso inserir um arquivo modelo para ser enviado para análise, apenas não deve conter dados de clientes reais, se não o modelo será rejeitado.

No cabeçalho de texto o padrão a ser adotado é contendo apenas uma váriavel (variáveis são definidas como Predefinição:1, essas variáveis são valores que podem ser trocados, no caso do cabeçalho de texto seria por exemplo o nome da empresa: DataPlus), logo abaixo pode se ver que é necessário informar o valor que será atribuído na variável, não se preocupe esse valor informado é apenas para aprovação do modelo de mensagem.

No corpo você pode ter N variáveis (as variáveis devem possuir uma sequencia lógica dentro das chaves, Ex: Predefinição:1, Predefinição:2), mas o padrão a ser adotado é com apenas 3. Dessa maneira:

Nos valores a exemplos:

O rodapé é opcional
Nos botões, para o envio de boletos por link (apenas envio por link poderá conter botões) o padrão a ser adotado é "Chamada para ação"

Os valores do botão é:

Sendo "Tipo Ação" = Acessar Site -> "Texto do botão" = Opcional -> "Tipo de URL" = Dinâmica -> "URL do site" = https://drive.google.com e a "URL de amostra" = https://drive.google.com/file/d/1Sq2nyrKj8fxIht2rPzMPw_KLBCFjWBpH/view?usp=sharing
Do lado direito você pode visualizar uma prévia de como ficou o modelo:

Depois disso é só enviar o modelo para aprovação, que ficará "Em análise" aguardando aprovação da META:

Após aprovado o status passará a ser:

Atenção: Os modelos de mensagem devem ser criadas no padrão informado, ou seja, para envio do boleto por link, uma variável no cabeçalho que será o nome da empresa, 3 variáveis no corpo que será o nome do cliente, número do boleto e a data de vencimento e também adicionar o botão com os valores definidos, para envio do boleto por pdf, não será incluso variáveis no cabeçalho.
8° Passo - Verificar versão da API
Basta voltar a tela inicial e ir em Configurações -> Avançado -> Atualizar versão API e selecionar a versão v17.0


9° Passo - Adicionar Politica de Privacidade e Termos de Uso
Para que o APP funcione em ambiente de produção é preciso adicionar as políticas de privacidade e os termos de uso

No campo em que solicita as urls você pode subir os arquivos no Google Drive recupera o link dos arquivos, já gerei um modelo dos termos que se encontra em: Z:\WhatsApp - Termos.
10° Passo - Adicionar forma de pagamento
Para que seja possível enviar mensagens para os usuários em ambiente de produção é preciso adicionar uma forma de pagamento, basta voltar para a tela inicial e ir em Configurações da API e ir até o 6° passo "Adicionar Forma de Pagamento"

Ir até configurações de pagamento:

Adicionar forma de pagamento e escolher a moeda, logo depois será solicitado algum meio de pagamento das taxas:

11° Passo - Mudar status do aplicativo para Produção
Depois de tudo pronto, é preciso colocar o aplicativo em modo de produção, basta clicar no check e o estado tem que mudar para "Ao Vivo"

12° Passo - Configuração no ERP
Vá em configurações -> Configurações de Integração

Vá até a aba do WhatsApp

Valores a serem informados nos campos: Link Requisição = https://graph.facebook.com Versão = v17.0 Id Numero Telefone = (Identificação do número de telefone informado nas configurações da API) Business ID = (Identificação da conta do WhatsApp Business informado nas configurações da API) Token de Acesso Usuário = Token Permanente gerado
Após informar os dados antes de testar é necessário gravar as configurações e depois retornar para o formulário para fazer o teste do envio.
Com os dados informados você pode testar o envio clicando no botão, automaticamente será aberto uma janela para informar o número de celular que irá receber a mensagem de teste (mensagem de teste essa padrão criada pelo próprio gerenciador de negócios). É preciso respeitar o padrão de formatação exigido pelo WhatsApp, ex: 5517999999999 (ou seja, código do país + DDD + número), sem caracteres e sem espaços.
13° Passo - Informações Adicionais
Para gerenciar o número de telefone adicionado, basta ir até a tela inicial e clicar em Configurações e ir até "Gerenciar Telefones"

Nesta tela é possível verificar a quantidade de conversas iniciadas, conversas do período gratuito (Entram apenas mensagens iniciadas pelo cliente) e cobranças aproximadas (cobranças essas indicam o valor a ser pago em média está sendo cobrado $0,0366 centavos de dolar)

É possível perceber que no número de telefone (que não seja de teste) tem um limite de envio dentre 24 horas, por padrão é 250 envios, para aumentar o limite basta clicar em "Aumentar Limite" e "Iniciar Verificação"

Após ser redirecionado basta clicar em Verificação para + Nome do Aplicativo:

Para poder adicionar uma imagem de perfil ou adicionar configurações adicionais, basta ir até "Painel de aplicativos" -> "Gerenciador do WhatsApp" -> "Ferramentas de Conta" -> "Telefones" -> "Configurações (Engrenagem)" -> "Perfil":

14° Como testar a classe
Você vai precisar do "Bussines Id", "Id do Numero de Telefone", "Link da requisição = https://graph.facebook.com/", "Versao = v17.0", "Token de acesso permanente ou temporário", e os modelos de mensagens.
Há uma classe chamada WhatsAppTest que fica na camada comum ➡ ClasseComunsTest
Última atualização: 20/06/2023 (Link da requisição e versão podem passar por alterações com o tempo).
15° Principais métodos
EnviarMensagem() - Faz o envio da mensagem para um determinado número de telefone MontaCorpoRequisicao() - Reponsável por montar o corpo da requisição em tipo Json para envio da mensagem