Przejdź do treści

Haki internetowe

Kiedy coś się dzieje w firmie, Cyzyra wysyła POST w JSON na adres, który rejestrujesz. Skonfiguruj w Platforma API → Webhooki, wybierając wydarzenia.

Co nadchodzi

X-Cyzyra-Event cabeçalho

Rodzaj zdarzenia, np. płatność.zapłacona

X-Cyzyra-Delivery cabeçalho

Identyfikator tej dostawy. Użyj, aby zignorować powtórzenia.

Podpis X-Cyzyry cabeçalho

t=<czas uniksowy>,v1=<HMAC-SHA256>

Ciało
{
  "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"
    }
  }
}

Anschauliches Beispiel.

Potwierdź subskrypcję

Oblicz HMAC-SHA256 z <t>.<surowe ciało> z sekretem punktu końcowego i porównaj z 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));
}

Nowe próby

Odpowiedz, podając status 2xx w ciągu 10 sekund. Jeśli się nie powiedzie, Cyzyra spróbuje ponownie do 5 razy, w coraz większych odstępach czasu, a każdą próbę wyświetli na desce rozdzielczej.

Wydarzenia

Lead criadolead.created
Status do lead mudoulead.status_changed
Cadastros unificadoslead.merged
Negociação criadadeal.created
Negociação mudou de etapadeal.stage_changed
Venda ganhadeal.won
Venda perdidadeal.lost
Propozycja wysłanaproposal.sent
Propozycja przyjętaproposal.accepted
Proposta recusadaproposal.rejected
Umowa wysłanacontract.sent
Contrato assinadocontract.signed
Utworzono opłatępayment.created
Pagamento recebidopayment.paid
Pagamento falhoupayment.failed
Pagamento estornadopayment.refunded
Ordem de serviço criadawork_order.created
Mensagem recebidamessage.received