Resumo
Este guia explica como integrar chamadas do WhatsApp com seu próprio agente de voz ou plataforma de terceiros. Ele abrange fluxos de chamadas de entrada e saída, autenticação de API, configuração de WebRTC, configuração de webhook, permissões de chamada e melhores práticas para manter uma integração de voz estável.
Instruções
A API de Chamadas do WhatsApp da Wati permite que empresas conectem chamadas do WhatsApp à sua própria infraestrutura de voz usando WebRTC.
A integração funciona conectando:
A camada de sinalização do WhatsApp gerenciada pelas APIs e webhooks da Wati
A camada de mídia tratada pelo seu próprio agente de voz ou plataforma de terceiros
Este guia destina-se a desenvolvedores que criam integrações de voz personalizadas.
Arquitetura principal e autenticação
A integração usa a troca do Protocolo de Descrição de Sessão (SDP) entre a Wati e sua infraestrutura WebRTC.
URL base da API
<https://live-mt-server.wati.io/{tenant_id}/api/v1/openapi/whatsapp/calls>Substitua {tenant_id} pelo seu ID de tenant Wati.
Autenticação
Cada solicitação de API deve incluir um Token do Portador no cabeçalho da solicitação.
Authorization: Bearer {YOUR_ACCESS_TOKEN}Encontre suas credenciais de API
Faça login na sua conta Wati.
Navegue até Conectores → Documentação da API no menu.
Copie seu:
Ponto de extremidade da API
Token do Portador
Nota: Se você alterar sua senha Wati, seu Token do Portador existente se tornará inválido. Você deve atualizar sua integração com o novo token.
Lidando com chamadas recebidas
Passo 1: Configure webhooks de chamada recebida
Na plataforma Wati, configure seu URL de webhook para:
Webhook de Nova Chamada Recebida
Este webhook recebe solicitações de chamadas recebidas e ofertas SDP de usuários do WhatsApp.
Passo 2: Receba o webhook recebido
Quando um usuário liga para seu número do WhatsApp, a Wati envia uma solicitação POST contendo a oferta SDP do chamador.
Exemplo de payload de solicitação:
{
"callId": "WHATSAPP_CALL_ID",
"sdp": "v=0... (Offer from WhatsApp)",
"businessNumber": "1234567890"
}Passo 3: Execute a negociação WebRTC
Seu aplicativo agora deve estabelecer a sessão WebRTC.
Inicialize a conexão peer
Crie um RTCPeerConnection no seu servidor, agente de voz ou plataforma de terceiros.
Defina a descrição remota
Use o SDP recebido do webhook como a descrição remota.
Gere uma resposta SDP
Gere uma resposta SDP local da sua conexão peer.
Importante: Certifique-se de que as impressões digitais SDP estejam em maiúsculas para compatibilidade com o WhatsApp.
Exemplo:
a=fingerprint:SHA-256
Passo 4: Aceite a chamada
Envie a resposta SDP gerada de volta para a Wati usando a API Aceitar Chamada.
Detalhes da solicitação
Método
POST
Endpoint
<https://live-mt-server.wati.io/{tenant_id}/api/v1/openapi/whatsapp/calls/{callId}/accept>Cabeçalhos
Authorization: Bearer {YOUR_ACCESS_TOKEN}Corpo da solicitação
{
"Sdp": "v=0... (Your Answer)"
}
Fazendo chamadas de saída
O WhatsApp exige que as empresas recebam permissão dos usuários antes de iniciar chamadas de saída.
Passo 1: Gerencie as permissões de chamada
Verifique o status da permissão existente
Use o endpoint a seguir para verificar se o usuário já concedeu permissão de chamada.
GET .../calls/permissions/{waid}Solicite permissão
Se a permissão não foi concedida, solicite-a usando:
POST .../calls/call-permission-request/{waid}Aguarde a aprovação da permissão
A Wati envia um Webhook de Permissão de Chamada após o usuário aceitar ou recusar a solicitação.
Prossiga com a chamada de saída apenas após a aprovação.
Iniciando uma chamada de saída
Passo 2: Crie e envie a oferta SDP
Gere uma oferta SDP
Crie uma oferta SDP usando seu RTCPeerConnection WebRTC.
Chame a API de chamada de saída
Envie a oferta SDP para a Wati.
Método
POST
Endpoint
<https://live-mt-server.wati.io/{tenant_id}/api/v1/openapi/whatsapp/calls/outbound-call/{waid}>Cabeçalhos
Authorization: Bearer {YOUR_ACCESS_TOKEN}Corpo da solicitação
{
"Sdp": "v=0... (Your Offer)"
}Receba o ID da chamada
Se a solicitação for bem-sucedida, a Wati retornará um callId.
Estabelecendo o fluxo de áudio
Passo 3: Finalize a conexão WebRTC
Monitore o status da chamada
Use o Webhook de Status de Nova Chamada de Saída para rastrear atualizações como:
CHAMANDO
TOQUE
ACEITO
Receba a resposta SDP do usuário
Quando o usuário atender a chamada, a Wati enviará o Webhook de Nova Chamada de Saída contendo a resposta SDP do usuário.
Conclua a conexão
Defina a resposta SDP recebida como a descrição remota em seu RTCPeerConnection.
Isso estabelece o fluxo de áudio entre o usuário e sua plataforma de voz.
Encerrando chamadas
Quando o usuário desligar
A Wati envia um Webhook de Término de Chamada para notificar seu aplicativo que a chamada foi encerrada.
Quando a empresa desligar
Use a API de Término de Chamada.
Detalhes da solicitação
Endpoint
POST <https://live-mt-server.wati.io/{tenant_id}/api/v1/openapi/whatsapp/calls/{callId}/terminate>Cabeçalhos
Authorization: Bearer {YOUR_ACCESS_TOKEN}
Onde você pode postar seus URLs de webhook?
URLs de webhook necessários
Configure os seguintes endpoints de webhook na Wati.
Webhook de Nova Chamada Recebida
Recebe ofertas SDP de entrada de usuários do WhatsApp.
Webhook de Término de Chamada
Recebe notificações quando as chamadas são desconectadas.
Webhook de Nova Chamada de Saída
Recebe respostas SDP para chamadas de saída.
Webhook de Status de Nova Chamada de Saída
Recebe atualizações de status de chamada de saída, como:
Chamando
Tocando
Aceito
Webhook de Permissão de Chamada
Recebe eventos de aprovação ou rejeição de permissão dos usuários.
Requisitos de webhook
Seus endpoints de webhook devem:
Ser acessíveis publicamente
Retornar uma resposta HTTP
200 OKResponder em até 30 segundos
Configure a verificação da chave de API do webhook
Você pode configurar uma chave de API dedicada na UI de configuração da Wati para verificação de webhook.
A Wati inclui essa chave no cabeçalho Authorization de cada solicitação de webhook.
Exemplo:
Authorization: Bearer {ApiKey}Você pode usar esta chave para:
Verificar autenticidade do webhook
Validar solicitações de entrada
Proteger seus endpoints de webhook
Melhores práticas técnicas
Use o codec Opus
Atualmente, o Chamadas do WhatsApp suporta apenas áudio.
Sua plataforma de voz deve usar o codec de áudio Opus para compatibilidade.
Desabilite o ICE Trickle
Não use ICE Trickle durante a negociação SDP.
A Wati requer um bloco SDP completo que já contenha todos os candidatos ICE.
Envie payloads SDP completos
Certifique-se de que seu SDP inclua:
Candidatos ICE
Impressões digitais
Informações de mídia
antes de enviar solicitações para as APIs da Wati.
Visão geral do fluxo de chamadas
Fluxo de chamada recebida
Fluxo de chamada de saída
Fluxo de permissão de chamada
Perguntas frequentes (FAQs)
Disponibilidade e acesso
1. Este recurso está disponível em todos os planos da Wati?
Não, este recurso está disponível apenas para os planos Pro e superiores.
2. Por que não vejo esta configuração em minha conta Wati?
Esta configuração é habilitada apenas mediante solicitação. Você precisa entrar em contato com o suporte da Wati para habilitá-la em sua conta.
Chamadas e integrações
3. As chamadas serão gravadas e transcritas ao usar Chamadas do WhatsApp em uma plataforma externa ou agentes de IA personalizados?
Não, as chamadas não serão gravadas ou transcritas ao usar Chamadas do WhatsApp em uma plataforma externa ou agentes de IA personalizados. As chamadas ocorrem em seu próprio servidor, onde a Wati não tem controle.
4. Posso gerenciar chamadas tanto na Wati quanto em uma plataforma integrada externamente?
Não, todas as chamadas recebidas serão roteadas para sua plataforma integrada externamente em vez da Wati.
5. Por que as chamadas de saída feitas através da Wati não conseguem detectar se uma chamada foi aceita ou recusada?
As chamadas de saída feitas através da Wati não conseguem detectar se uma chamada foi aceita ou recusada porque você configurará seu próprio endpoint de webhook para receber atualizações de status de chamada, como tocando, aceito ou recusado.
Suporte e implementação
6. Quem pode me ajudar a configurar este recurso se eu não tiver familiaridade técnica com a implementação?
A Wati fornece suporte de implementação para clientes do Plano Empresarial, conforme necessário. Você pode entrar em contato com seu Gerente de Sucesso do Cliente (CSM) para agendar uma chamada.





