Pular para o conteúdo principal
Os webhooks de KYB da Didit avisam o seu backend quando uma sessão de verificação de empresas muda de status ou quando um revisor ou o registro de empresas altera os dados dela. As entidades empresariais têm seus próprios eventos. Assine os eventos que interessam a você pela API de destinos de webhook ou pelo Business Console.

Catálogo de eventos

Os eventos de sessão são compartilhados entre sessões de usuário e de empresa. O campo session_kind no payload indica a que tipo de sessão o evento se refere. Os eventos de entidade são separados dos eventos de sessão.

Eventos de sessão

data.updated não é enviado quando o solicitante faz upload de um documento ou envia as pessoas-chave, nem quando uma nova varredura AML termina. Use status.updated ou consulte a decisão da sessão para acompanhar esse andamento.

Eventos da entidade de empresa

Assine qualquer combinação de eventos no seu destino de webhook. Consulte webhooks de entidade para a referência completa dos eventos das entidades de empresa e de usuário.

Formato do payload

Os webhooks de sessão usam um payload plano, sem um invólucro data. O envelope, os cabeçalhos de assinatura e todos os campos compartilhados estão documentados na referência de webhooks. Uma sessão de KYB adiciona estes campos:

status.updated para uma sessão de KYB

O bloco decision traz registry_checks[], key_people_checks[], document_verifications[], aml_screenings[] e os demais arrays de KYB.

data.updated para uma sessão de KYB

data.updated traz o mesmo envelope plano de status.updated, mais um trigger que indica o motivo do disparo. Quando o status da sessão é Approved, Declined, In Review ou Abandoned, ele também traz a decision atual. Busque a decision novamente para ver o que mudou. O payload não tem uma lista changed_fields.

business.status.updated e business.data.updated

Os eventos de entidade também são planos. Eles trazem vendor_business_id, vendor_data, status (ACTIVE, FLAGGED ou BLOCKED) e created_at. business.status.updated adiciona previous_status. business.data.updated adiciona changed_fields e um mapa changes no formato { field: { previous, current } }.

Verificação de assinatura

Todo webhook é assinado com HMAC-SHA256 usando o segredo compartilhado do seu destino. Verifique o corpo bruto da requisição com o cabeçalho X-Signature-V2 (recomendado) e rejeite as entregas cujo X-Timestamp tenha mais de 300 segundos. A referência de webhooks lista todos os cabeçalhos de assinatura, o período de sobreposição na rotação do segredo de assinatura e exemplos de código.

Política de novas tentativas

  • Uma resposta 5xx ou 404, um timeout ou uma falha de conexão gera até 2 novas tentativas, após cerca de 1 minuto e cerca de 4 minutos, e depois a entrega é descartada.
  • Outras respostas 4xx e 3xx não geram novas tentativas.
  • Cada nova tentativa mantém o mesmo event_id, então faça a deduplicação com base nele.
  • Você pode reenviar uma entrega pelo log de entregas do destino. A referência de webhooks traz a política completa.

Como assinar

Assine os eventos que interessam a você em um destino de webhook:
Filtre as sessões de empresa do seu lado verificando session_kind === "business" dentro dos eventos status.updated e data.updated.

Próximos passos

Referência de webhooks

Destinos, assinatura, novas tentativas e padrões comuns.

Status

Referência de status de sessões e recursos.

Esquema de resposta

Como interpretar o payload da decisão de KYB.
Última modificação em 1 de novembro de 2026