Webhooks

Receba o resultado em tempo real, com assinatura HMAC.

Cadastre a URL pelo endpoint de webhooks e guarde o secret retornado. Cada entrega traz os headers x-kyc-event e x-kyc-signature (sha256=<hmac do corpo bruto>).

Eventos

applicant.submitted   // análise disparada
applicant.approved    // aprovado
applicant.rejected    // recusado
applicant.pending     // enviado para revisão manual

Node.js

import crypto from "crypto";

app.post("/webhooks/kyc", express.raw({ type: "*/*" }), (req, res) => {
  const expected = crypto.createHmac("sha256", SECRET).update(req.body).digest("hex");
  if (`sha256=${expected}` !== req.headers["x-kyc-signature"]) return res.status(401).end();
  const { event, data } = JSON.parse(req.body.toString());
  res.status(200).end();      // responda rápido e processe em background
});

Python

import hmac, hashlib

expected = "sha256=" + hmac.new(SECRET.encode(), raw_body, hashlib.sha256).hexdigest()
if not hmac.compare_digest(expected, request.headers["x-kyc-signature"]):
    abort(401)
Sempre valide a assinatura sobre o corpo bruto (antes de qualquer parse) e trate entregas repetidas de forma idempotente usando o applicantId.
Próximo guiaRegras de IA