Skip to main content
Webhooks permitem que a Vendaze notifique seu aplicativo quando eventos ocorrem no workspace. Em vez de polling, seu servidor recebe um POST HTTP no momento em que algo muda. Webhooks podem ser criados e gerenciados de duas formas:
  • Pelo cliente da Vendaze diretamente no painel da plataforma
  • Via API pública, usando o scope webhooks:manage

Como funciona

  1. Um webhook é criado com uma URL de destino e a lista de eventos a monitorar
  2. Quando um evento ocorre, a Vendaze enfileira a entrega e faz um POST para essa URL
  3. Seu servidor processa o payload e retorna 2xx em até 10 segundos

Gerenciar webhooks via API

Webhooks criados via API são visíveis apenas para o app OAuth que os criou. Eles não aparecem no painel da Vendaze e não podem ser gerenciados por outros apps, mesmo que esses apps acessem o mesmo workspace.

Autenticação de entregas

Quando auth_enable: true é enviado na criação do webhook, a Vendaze gera um webhook_secret (formato: whsec_...) e o inclui na resposta de POST /v1/webhooks. Guarde-o: ele será usado para verificar as entregas recebidas. Cada entrega para o seu endpoint incluirá o header Webhook-Signature. Consulte Verificação de assinatura para os detalhes de implementação. Alterar auth_enable em um webhook existente afeta o secret:
  • false para true: um novo webhook_secret é gerado e retornado
  • true para false: o webhook_secret existente é deletado permanentemente

Payload

Cada entrega é um POST com Content-Type: application/json. A estrutura do envelope é:

Verificação de assinatura

Quando auth_enable é true, cada entrega inclui:
O valor é HMAC-SHA256 calculado sobre os bytes brutos do corpo da requisição, codificado em hex. Leia sempre os bytes brutos antes de fazer parsing: re-serializar o body pode alterar espaços ou ordem de chaves e causar falha na verificação. Node.js:
Python:
Use sempre comparação em tempo constante (timingSafeEqual / hmac.compare_digest). Comparação de strings comum é vulnerável a ataques de timing.

Eventos disponíveis

Reenvios e garantias de entrega

Se seu servidor não retornar 2xx em 10 segundos, a Vendaze tenta a entrega até 3 vezes, cada tentativa com 15 minutos de espera. Após esgotar todas as tentativas, o evento é descartado permanentemente. Não existe mecanismo de suspensão: entregas não concluídas são perdidas. A Vendaze entrega com semântica at-least-once. O mesmo evento pode ser entregue mais de uma vez por problemas de rede ou sobreposição de reenvios. Deduplique usando o campo id do envelope.

Boas práticas

  • Retorne 200 imediatamente e processe de forma assíncrona. Qualquer handler que demore mais de 10 segundos vai disparar um reenvio.
  • Rejeite assinaturas ausentes ou inválidas com 401. Nunca processe uma entrega de um endpoint autenticado sem verificar a assinatura antes.
  • Retenha os payloads recebidos por pelo menos 30 dias para facilitar debugging e auditoria.
  • Retorne 200 para tipos de evento não reconhecidos. Novos eventos serão adicionados ao longo do tempo e ignorá-los silenciosamente mantém seu handler estável nas atualizações da API.