Skip to main content
Os webhooks do Vault ERP permitem que seus sistemas recebam notificações HTTP em tempo real sempre que eventos importantes ocorrem — sem necessidade de polling. Quando um relógio é vendido, uma consignação expira ou um cliente tem um match na lista de desejos, o Vault ERP envia imediatamente um payload JSON para o endpoint que você configurou.

Eventos Disponíveis

Configurando um Webhook

1

Acesse as configurações de webhooks

No menu lateral do Vault ERP, navegue até Configurações → Integrações → Webhooks.
2

Adicione um novo webhook

Clique em “Adicionar Webhook” para abrir o formulário de configuração.
3

Informe a URL do seu endpoint

Digite a URL do endpoint que receberá os eventos. A URL deve obrigatoriamente usar HTTPS — URLs HTTP não são aceitas por questões de segurança.
4

Selecione os eventos

Marque apenas os eventos que seu sistema precisa processar. Você pode alterar essa seleção a qualquer momento sem recriar o webhook.
5

Salve e confirme o recebimento

Clique em “Salvar”. O Vault ERP enviará imediatamente um evento de teste (vault.ping) para o endpoint configurado. Verifique nos logs do seu sistema se o payload foi recebido corretamente.

POST /webhooks

Registra um novo endpoint de webhook programaticamente, sem precisar acessar o painel. Útil para provisionamento automatizado de integrações.

Campos do Body

string
required
URL HTTPS do endpoint que receberá os eventos. URLs HTTP são rejeitadas.
array
required
Lista dos eventos que este webhook deve receber. Use ["*"] para assinar todos os eventos disponíveis.
string
Descrição opcional para identificar a finalidade deste webhook (ex.: "Integração CRM externo").

Exemplo de Requisição

Exemplo de Resposta

O campo secret é retornado apenas uma vez, no momento da criação. Armazene-o imediatamente em um gerenciador de segredos — ele é necessário para verificar a assinatura HMAC de cada evento recebido. Não será possível recuperá-lo depois.

Estrutura do Payload

Todos os payloads de webhook seguem a mesma estrutura, independentemente do tipo de evento:
string
Nome do evento que acionou a notificação (ex.: sale.closed_won, watch.created).
string
Data e hora em que o evento ocorreu no Vault ERP, em formato ISO 8601 UTC.
object
Objeto com os dados do recurso afetado. A estrutura varia de acordo com o tipo de evento — consulte os exemplos de cada evento abaixo.

Exemplos de Payload por Evento

Verificação de Assinatura

O Vault ERP assina cada requisição de webhook com HMAC-SHA256 usando o segredo exclusivo do seu webhook. Você deve sempre verificar a assinatura antes de processar o payload — isso garante que a requisição realmente veio do Vault ERP e não foi adulterada. A assinatura é enviada no header X-Vault-Signature no formato sha256=<hash>.

Verificando em Node.js

Verificando em Python

Use a versão em bytes do payload (o body HTTP bruto, antes de qualquer parsing JSON) para calcular o HMAC. Fazer o hash de uma string JSON re-serializada pode gerar diferenças de formatação e causar falhas de verificação.
O segredo do seu webhook está disponível em Configurações → Integrações → Webhooks — clique no webhook desejado para exibi-lo.

Retentativas

Se o seu endpoint retornar uma resposta com status fora da faixa 2xx (ou não responder a tempo), o Vault ERP tentará entregar o evento novamente com backoff exponencial: Após 5 tentativas sem sucesso, o evento é marcado como falho e não será reenviado automaticamente. Você pode visualizar e reprocessar eventos falhos em Configurações → Integrações → Webhooks → Logs de Eventos.
Seu endpoint deve responder dentro de 5 segundos — caso contrário, a entrega é considerada falha e entra na fila de retentativas. Para operações demoradas (gravação em banco de dados, chamadas a APIs externas, envio de e-mails), responda imediatamente com 200 OK e processe o payload de forma assíncrona em background. Nunca faça processamento pesado de forma síncrona dentro do handler do webhook.

Boas Práticas

Projete seus handlers de webhook para serem idempotentes — ou seja, processar o mesmo evento múltiplas vezes deve ter o mesmo efeito que processá-lo uma vez. Em caso de falhas de rede ou retentativas, o mesmo evento pode ser entregue mais de uma vez. Use o campo data.id como chave de deduplicação no seu banco de dados para evitar registros duplicados.