Por favor, siga os passos abaixo para configurar o Webhook para receber relatórios de entrega em tempo real (logs) no seu Webhook (URL de callback).
1. Acesse o Painel do MSG91 » WhatsApp » Clique em Webhook (Novo) » Clique em Criar Webhook.

2. Configure Seu Webhook.

Passo 1: Dê um nome ao seu webhook para fácil identificação.
Passo 2: Selecione o Serviço do WhatsApp e o Tipo de Evento
Para Saída
Quando a Solicitação de Saída for Recebida: Dispara quando uma solicitação de mensagem de saída é enviada da sua conta. Inclui logs de status "Enviado", mas não compartilha dados sobre status de entrega/falha.
Quando o Relatório de Saída for Recebido: Envia relatórios de entrega em tempo real, incluindo status de entrega (Enviado, Falhou, Entregue e Lido) e outros detalhes das mensagens de saída.
Quando o Evento de Número/Modelo for Recebido:
Receba atualizações em tempo real sobre o status do número do WhatsApp e aprovações/rejeições de templates.
Para Entrada
Quando a Solicitação de Entrada for Recebida: Dispara quando uma solicitação de mensagem de entrada é submetida.
Quando o Relatório de Entrada for Recebido: Dispara quando uma solicitação de mensagem de entrada é entregue com sucesso.
Quando Eventos de API Falharam:
Visualize logs detalhados de falha na seção do Webhook do WhatsApp sempre que uma mensagem do WhatsApp falhar devido a uma solicitação de API ou erro de processamento.
Quando o Evento For Entregue:
Este evento é disparado quando uma mensagem do WhatsApp é entregue com sucesso ao dispositivo do destinatário.
Quando o Evento Falhar:
Este evento é disparado quando uma mensagem do WhatsApp não é entregue.
Quando a Solicitação de Fluxo for Recebida:
Este evento é disparado quando um usuário inicia ou submete um Fluxo do WhatsApp.
Quando o Relatório de Pagamento for Recebido:
Este evento é disparado quando um status relacionado a pagamento é recebido para um fluxo habilitado para pagamento no WhatsApp.

Quando o Evento For Lido:
Este evento é disparado quando o destinatário abre e lê a mensagem do WhatsApp.
Quando o Evento For Enviado:
Este evento é disparado quando uma mensagem do WhatsApp é enviada com sucesso do MSG91 para o Meta para entrega.
Quando o Evento de Clique na URL for Disparado:
Este evento é disparado quando um usuário clica em uma URL presente na mensagem do WhatsApp.
Passo 3: Insira Sua URL de Webhook (Callback)
Quando você envia mensagens em massa pelo WhatsApp, o webhook ainda enviará um log (payload) por número de destinatário. Isso significa que, para cada número de celular, você receberá um evento de webhook separado, mesmo que todas as mensagens sejam enviadas em um único lote.
O valor de alguns parâmetros (como mensagens, conteúdo, botão, etc.) é uma string de array JSON, então certifique-se de que seu Webhook é capaz de receber esses dados.
Passo 4: O tipo de conteúdo será JSON. Certifique-se de que seu endpoint pode ler dados JSON.
Passo 5. Personalize os Parâmetros
Inclua apenas os campos que deseja receber no seu Webhook. Abaixo está um exemplo de payload, que inclui todos os parâmetros; você pode remover os parâmetros que não utiliza.
Exemplo de payload para mensagens de saída com todos os parâmetros disponíveis.
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"content": "{{content}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"direction": "{{direction}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"accountManagerEmailId": "{{accountManagerEmailId}}",
"oneApiRequestId": "{{oneApiRequestId}}",
"emailId": "{{emailId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"moengageMsgId": "{{moengageMsgId}}",
"webengageMsgId": "{{webengageMsgId}}",
"clevertapMsgId": "{{clevertapMsgId}}",
"pluginsource": "{{pluginsource}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
Exemplo de payload para mensagens de entrada com todos os parâmetros disponíveis:
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
Exemplo de payload para mensagens de entrada com todos os parâmetros disponíveis:
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}
{
"crqid": "{{crqid}}",
"companyId": "{{companyId}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"requestId": "{{requestId}}",
"reason": "{{reason}}",
"eventName": "{{eventName}}",
"uuid": "{{uuid}}",
"integratedNumber": "{{integratedNumber}}",
"templateName": "{{templateName}}",
"campaignName": "{{campaignName}}",
"campaignRequestId": "{{campaignRequestId}}",
"templateLanguage": "{{templateLanguage}}",
"replyMsgId": "{{replyMsgId}}",
"conversationExpTimestamp": "{{conversationExpTimestamp}}",
"pluginsource": "{{pluginsource}}",
"customerName": "{{customerName}}",
"contentType": "{{contentType}}",
"text": "{{text}}",
"latitude": "{{latitude}}",
"longitude": "{{longitude}}",
"caption": "{{caption}}",
"filename": "{{filename}}",
"url": "{{url}}",
"button": "{{button}}",
"contacts": "{{contacts}}",
"reaction": "{{reaction}}",
"interactive": "{{interactive}}",
"orders": "{{orders}}",
"ts": "{{ts}}"
}