Saltar al contenido principal
Los webhooks de KYB de Didit avisan a tu backend cuando una sesión de verificación de empresas cambia de estado o cuando un revisor o el registro modifican los datos de la sesión. Las entidades de empresa tienen sus propios eventos. Suscríbete a los eventos que te interesen mediante la API de destinos de webhook o desde la Business Console.

Catálogo de eventos

Los eventos de sesión son comunes a las sesiones de usuario y de empresa. El campo session_kind del payload indica a qué tipo de sesión se refiere el evento. Los eventos de entidad son independientes de los eventos de sesión.

Eventos de sesión

data.updated no se envía cuando el solicitante sube un documento o envía las personas clave, ni cuando termina un reanálisis AML. Usa status.updated o consulta la decisión de la sesión para seguir ese progreso.

Eventos de entidad de empresa

Suscríbete a cualquier combinación de eventos en tu destino de webhook. Consulta los webhooks de entidades para ver la referencia completa de eventos de entidades de empresa y de usuario.

Estructura del payload

Los webhooks de sesión usan un payload plano, sin el contenedor data. El sobre, los encabezados de firma y todos los campos comunes se documentan en la referencia de webhooks. Una sesión KYB añade estos campos:

status.updated para una sesión KYB

El bloque decision incluye registry_checks[], key_people_checks[], document_verifications[], aml_screenings[] y el resto de arrays de KYB.

data.updated para una sesión KYB

data.updated usa el mismo sobre plano que status.updated, además de un trigger que indica por qué se envió. Cuando el estado de la sesión es Approved, Declined, In Review o Abandoned, también incluye la decision actual. Vuelve a consultar la decisión para ver qué cambió. El payload no incluye una lista changed_fields.

business.status.updated y business.data.updated

Los eventos de entidad también son planos. Incluyen vendor_business_id, vendor_data, status (ACTIVE, FLAGGED o BLOCKED) y created_at. business.status.updated añade previous_status. business.data.updated añade changed_fields y un mapa changes con la forma { field: { previous, current } }.

Verificación de firma

Cada webhook se firma con HMAC-SHA256 usando el secreto compartido de tu destino. Verifica el cuerpo sin procesar de la solicitud con el encabezado X-Signature-V2 (recomendado) y rechaza las entregas cuyo X-Timestamp tenga más de 300 segundos de antigüedad. La referencia de webhooks enumera todos los encabezados de firma, el periodo de solapamiento durante la rotación del secreto de firma y ejemplos de código.

Política de reintentos

  • Una respuesta 5xx o 404, un tiempo de espera agotado o un fallo de conexión provocan hasta 2 reintentos, tras aproximadamente 1 minuto y aproximadamente 4 minutos; después, la entrega se descarta.
  • Las demás respuestas 4xx y 3xx no se reintentan.
  • Cada reintento conserva el mismo event_id, así que úsalo para eliminar duplicados.
  • Puedes reenviar una entrega desde el registro de entregas del destino. La referencia de webhooks describe la política completa.

Suscripción

Suscríbete a los eventos que te interesen en un destino de webhook:
Filtra las sesiones de empresa en tu sistema comprobando session_kind === "business" dentro de los eventos status.updated y data.updated.

Próximos pasos

Referencia de webhooks

Destinos, firma, reintentos y patrones habituales.

Estados

Referencia de estados de sesiones y funciones.

Esquema de respuesta

Cómo interpretar el payload de decisión de KYB.
Última modificación el 1 de noviembre de 2026