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
- Um webhook é criado com uma URL de destino e a lista de eventos a monitorar
- Quando um evento ocorre, a Vendaze enfileira a entrega e faz um
POSTpara essa URL - Seu servidor processa o payload e retorna
2xxem 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.| Endpoint | Descrição |
|---|---|
GET /v1/webhooks | Lista os webhooks criados pelo seu app |
POST /v1/webhooks | Cria um webhook |
GET /v1/webhooks/:id | Busca um webhook pelo ID |
PATCH /v1/webhooks/:id | Atualiza um webhook |
DELETE /v1/webhooks/:id | Deleta um webhook |
Autenticação de entregas
Quandoauth_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:
falseparatrue: um novowebhook_secreté gerado e retornadotrueparafalse: owebhook_secretexistente é deletado permanentemente
Payload
Cada entrega é umPOST com Content-Type: application/json. A estrutura do envelope é:
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID único da entrega. Use para deduplicação. |
event | string | Nome do evento, ex: person.created |
version | string | Sempre v1 |
created_at | string | Timestamp ISO 8601 UTC de quando o evento foi disparado |
<entidade> | object | Os dados da entidade. A chave corresponde ao tipo do evento: person, company, deal, task, activity, tag, product, pipeline ou member |
Verificação de assinatura
Quandoauth_enable é true, cada entrega inclui:
Eventos disponíveis
Pessoas
Pessoas
| Evento | Gatilho |
|---|---|
person.created | Uma pessoa é criada |
person.updated | Uma pessoa é atualizada |
person.deleted | Uma pessoa é deletada |
Empresas
Empresas
| Evento | Gatilho |
|---|---|
company.created | Uma empresa é criada |
company.updated | Uma empresa é atualizada |
company.deleted | Uma empresa é deletada |
Negócios
Negócios
| Evento | Gatilho |
|---|---|
deal.created | Um negócio é criado |
deal.updated | Um negócio é atualizado |
deal.stage_changed | Um negócio muda de etapa |
deal.won | Um negócio é marcado como ganho |
deal.lost | Um negócio é marcado como perdido |
deal.deleted | Um negócio é deletado |
Tarefas
Tarefas
| Evento | Gatilho |
|---|---|
task.created | Uma tarefa é criada |
task.updated | Uma tarefa é atualizada |
task.completed | Uma tarefa é concluída |
task.deleted | Uma tarefa é deletada |
Atividades
Atividades
| Evento | Gatilho |
|---|---|
activity.created | Uma atividade é registrada |
activity.updated | Uma atividade é atualizada |
activity.deleted | Uma atividade é deletada |
Produtos
Produtos
| Evento | Gatilho |
|---|---|
product.created | Um produto é criado |
product.updated | Um produto é atualizado |
product.deleted | Um produto é deletado |
Pipelines
Pipelines
| Evento | Gatilho |
|---|---|
pipeline.created | Um pipeline é criado |
pipeline.updated | Um pipeline é atualizado |
pipeline.deleted | Um pipeline é deletado |
Membros
Membros
| Evento | Gatilho |
|---|---|
member_invited | Um membro é convidado para o workspace |
member_joined | Um membro entra no workspace |
member_removed | Um membro é removido do workspace |
Uso
Uso
| Evento | Gatilho |
|---|---|
usage_logs.created | Um registro de uso é gerado |
Reenvios e garantias de entrega
Se seu servidor não retornar2xx 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.
| Tentativa | Espera |
|---|---|
| 1 (inicial) | Imediata |
| 2 | 15 minutos após tentativa 1 |
| 3 | 15 minutos após tentativa 2 |
| 4 | 15 minutos após tentativa 3 |
id do envelope.
Boas práticas
- Retorne
200imediatamente 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
200para 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.