Weesy API Fiscal — Webhooks (1.0.0)
Receba avisos automáticos quando uma nota é autorizada, rejeitada ou cancelada.
Um webhook é um aviso que a Weesy manda para o seu sistema quando algo acontece com uma nota — por exemplo, quando a prefeitura autoriza. Assim você não precisa ficar consultando.
Como funciona
- Você informa um endereço (URL
https) do seu sistema — veja Configurar o webhook da empresa. - Quando algo acontece, fazemos um
POSTnesse endereço com os dados da nota. - O seu sistema responde
200(ou qualquer2xx) em até 10 segundos. Responda rápido e processe depois: se demorar, consideramos que falhou.
Se o seu sistema não responder, tentamos de novo mais 6 vezes: 1 minuto depois da falha, depois 5 minutos, 30 minutos, 2 horas, 6 horas e 24 horas (cada espera conta a partir da tentativa anterior). São 7 tentativas no total, ao longo de cerca de 33 horas. Se todas falharem, o aviso fica como esgotado no histórico e você pode reenviá-lo quando quiser. Resposta de redirecionamento (3xx) conta como falha.
Três cuidados no seu sistema
- O mesmo aviso pode chegar mais de uma vez. Use o
iddo aviso para não processar duas vezes. - A ordem pode trocar. Use
ocorridoEmpara saber o que aconteceu primeiro e, na dúvida, consulte a nota. - Confira a assinatura. Todo aviso vem assinado pela Weesy; assim você tem certeza de que veio da gente e não foi alterado. O passo a passo, com código pronto, está no guia de webhooks.
Como conferir a assinatura, em resumo
Cada aviso traz três cabeçalhos: webhook-id, webhook-timestamp e webhook-signature.
- Monte o texto
<webhook-id>.<webhook-timestamp>.<corpo exatamente como chegou>. - Pegue a chave pública da Weesy em Obter as chaves para validar a assinatura (procure a chave pelo código que vem na assinatura —
es256,<código da chave>,<assinatura>). - Verifique a assinatura com o algoritmo ES256 (ECDSA P-256 com SHA-256). As bibliotecas de criptografia do .NET, Node, PHP e Python fazem isso em poucas linhas.
- Recuse avisos com
webhook-timestampde mais de 5 minutos atrás.
Atenção: as bibliotecas prontas de "Standard Webhooks" verificam outro algoritmo (HMAC) e não servem aqui — use os exemplos do guia.
Novos tipos de aviso podem aparecer. Se chegar um que o seu sistema não conhece, responda 200 e ignore.