Webhooks
Quando algo acontece na empresa, a Cyzyra envia um POST em JSON para o endereço que você cadastrar. Configure na Plataforma de API → Webhooks, escolhendo os eventos.
O que chega
X-Cyzyra-Event cabeçalho
O tipo do evento, ex.: payment.paid
X-Cyzyra-Delivery cabeçalho
O id desta entrega. Use para ignorar repetidos.
X-Cyzyra-Signature cabeçalho
t=<horário unix>,v1=<HMAC-SHA256>
Corpo
{
"id": "evt_3f9c…",
"type": "payment.paid",
"created_at": "2026-11-08T14:02:11Z",
"data": {
"entity_type": "payment",
"entity_id": "a93e…",
"title": "Pagamento confirmado",
"object": {
"id": "a93e…",
"amount": 1500,
"currency": "BRL",
"status": "paid"
}
}
}Exemplo ilustrativo.
Confirme a assinatura
Calcule o HMAC-SHA256 de <t>.<corpo bruto> com o segredo do endpoint e compare com v1. Recuse horários muito antigos para evitar reenvio por terceiros.
import { createHmac, timingSafeEqual } from "node:crypto";
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
return fresh && timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}Novas tentativas
Responda com um status 2xx em até 10 segundos. Se falhar, a Cyzyra tenta de novo até 5 vezes, com intervalos crescentes, e mostra cada tentativa no painel.
Eventos
Lead criado
lead.createdStatus do lead mudou
lead.status_changedCadastros unificados
lead.mergedNegociação criada
deal.createdNegociação mudou de etapa
deal.stage_changedVenda ganha
deal.wonVenda perdida
deal.lostProposta enviada
proposal.sentProposta aceita
proposal.acceptedProposta recusada
proposal.rejectedContrato enviado
contract.sentContrato assinado
contract.signedCobrança criada
payment.createdPagamento recebido
payment.paidPagamento falhou
payment.failedPagamento estornado
payment.refundedOrdem de serviço criada
work_order.createdMensagem recebida
message.received