Skip to main content

O que é

Webhooks são solicitações HTTPS que a YCloud envia para o seu aplicativo quando a entrega de mensagens, mensagens recebidas, contatos, modelos, chamadas e outros recursos mudam.

Antes de começar

  • Armazene sua chave de API da YCloud em YCLOUD_API_KEY.
  • Implante um endpoint HTTPS acessível publicamente.
  • Preserve o corpo bruto da solicitação para verificação de assinatura.
  • Decida quais tipos de evento seu aplicativo precisa.

Como funciona

  1. Crie um endpoint de Webhook e inscreva-o nos tipos de eventos.
  2. Armazene o secret retornado do endpoint.
  3. A YCloud envia uma solicitação de evento para o seu endpoint.
  4. Verifique o YCloud-Signature antes de confiar na solicitação.
  5. Retorne uma resposta 2xx imediatamente.
  6. Processe o evento de forma idempotente, pois a entrega pode ser repetida.

Solicitação

Crie um endpoint com POST /webhookEndpoints.

Campos da solicitação

Exemplo de solicitação

Inscrever-se em eventos de echo e handover

Para Agents integrados por meio da API REST pública, crie um endpoint com as seguintes assinaturas. Agents criados no Console não emitem esses três eventos. Para alterar um endpoint existente, preserve as assinaturas de eventos que você ainda precisa.
Os dois tipos de evento echo contêm uma carga útil padrão whatsappMessage no formato de mensagem. O evento de handover contém whatsappMetaBusinessAgent e mantém suas informações de Agent/controle. Eles não usam o contrato do aplicativo WhatsApp Business whatsapp.smb.message.echoes. Consulte detalhes dos eventos de echo e handover para definições de campo, exemplos, ordenação e limites de correlação de handover.

Resposta

A resposta retorna o endpoint criado e seu segredo de assinatura secret. Armazene o segredo com segurança. A YCloud o utiliza para gerar assinaturas de Webhook.

Exemplo de resposta

Campos da resposta

Receber eventos

Solicitação de evento

A YCloud envia um objeto de evento JSON para a url configurada. O evento inclui campos comuns, como id, type, apiVersion e createTime, além de uma carga útil específica do tipo. O seu manipulador deve:
  1. Ler o corpo bruto da solicitação.
  2. Validar o cabeçalho YCloud-Signature com o segredo do endpoint antes de confiar na carga útil.
  3. Retornar uma resposta bem-sucedida 2xx imediatamente.
  4. Mover o processamento lento para uma fila.
  5. Tornar o processamento de eventos idempotente para que entregas repetidas não executem ações de negócios duplicadas.
Não faça parse nem modifique o corpo da solicitação antes da validação da assinatura. Use exatamente os bytes brutos recebidos pelo seu servidor.

Resposta do receptor

Retorne uma resposta HTTP bem-sucedida 2xx assim que a assinatura e a solicitação forem aceitas. O corpo da resposta pode ficar vazio.
Mova o processamento de negócios lento para uma fila. Um tempo limite esgotado ou uma resposta diferente de 2xx pode fazer com que a YCloud tente reenviar o evento; portanto, deduplique pelo id do evento.

Exemplos comuns de payload

Expanda um evento para inspecionar o exemplo completo de carga útil. Esses exemplos vêm da especificação de webhook da OpenAPI. Consulte todos os exemplos de payloads de webhook para cada tipo de evento compatível.
Exemplo de carga útil quando os atributos de contato são alterados
Exemplo de carga útil quando um novo contato é criado
Exemplo de carga útil quando um contato é excluído
Exemplo de carga útil quando um cliente cancela a assinatura
Exemplo de carga útil quando um cliente retoma a assinatura
Exemplo de carga útil quando um modelo do WhatsApp é arquivado
Exemplo de carga útil quando um modelo do WhatsApp é desarquivado. O status do modelo é o status atual retornado pela Meta e não representa uma nova análise de aprovação.
Exemplo de carga útil quando uma chamada do WhatsApp é conectada
Exemplo de payload quando uma chamada do WhatsApp é encerrada
Exemplo de payload quando o status de uma chamada do WhatsApp é atualizado
Consulte Payloads de eventos de Webhook para ver o esquema completo em Event e a referência interativa de payloads.

Alternar o segredo do endpoint

Alterne um segredo se ele for exposto ou como parte da sua política de segurança:
Implante o novo segredo no seu receptor imediatamente após a alternância.
Um endpoint que falha repetidamente ao receber notificações pode mudar para o status pending e parar de receber eventos. Monitore as falhas de webhook e o status do endpoint.
Para obter o código de verificação de assinatura, intervalos de repetição e implementação do receptor, consulte Implementar um receptor de webhook.