Saltar al contenido principal
GET
curl
El payload dentro de request_body es el que se describe en Webhooks, y los encabezados son los que se explican en verificación de firma. Para enviar la entrega de nuevo, usa Reenviar la entrega del webhook de una sesión.

Autorizaciones

x-api-key
string
header
requerido

La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.

Parámetros de ruta

sessionId
string<uuid>
requerido

UUID de la sesión de verificación, de usuario (KYC) o de empresa (KYB): el session_id que devuelve POST /v3/session/. El servidor lo resuelve en ambos tipos de sesión.

Debe ser un UUID válido. La ruta solo coincide con UUID bien formados, por lo que el enrutador de URL rechaza un valor mal formado antes de que se ejecute el código de la aplicación, y la respuesta es una página HTML 404 en lugar del envoltorio JSON {"detail": ...} que se muestra a continuación.

webhook_uuid
string<uuid>
requerido

UUID de la entrega: el uuid de una entrada devuelta por GET /v3/session/{sessionId}/webhooks/. Debe pertenecer a la sesión indicada en la ruta.

Respuesta

La entrega, con los encabezados y el cuerpo de su solicitud.

Un intento de entrega de webhook registrado para una sesión de verificación, con los encabezados y el cuerpo exactos de la solicitud que envió Didit.

uuid
string<uuid>
requerido

ID de entrega. Úsalo como {webhook_uuid} para obtener o reenviar esta entrega.

session_id
string<uuid>
requerido

La sesión a la que pertenece la entrega (la sesión de la ruta).

request_url
string<uri> | null
requerido

URL a la que se envió la entrega.

response_status
integer | null
requerido

Estado HTTP que devolvió tu endpoint. null mientras la entrega está en cola y aún no se ha intentado. Cuando no se recibe ninguna respuesta HTTP, Didit registra un estado propio: 504 cuando tu endpoint no respondió en 5 segundos, 503 para un fallo de conexión, 400 cuando la URL se rechazó por no ser segura (por ejemplo, una dirección privada o interna) y 404 para cualquier otro error de la solicitud. 400 o superior cuenta como entrega fallida.

status
string | null
requerido

Estado de la sesión cuando se generó el evento, por ejemplo In Progress, Approved o Declined.

webhook_type
enum<string>
requerido

Nombre de evento de webhook admitido. Usa exactamente estas cadenas en subscribed_events; los valores no admitidos se rechazan.

Opciones disponibles:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated,
travel_rule.status.updated,
workflow.compliance_changed,
transaction_rule_suggestions.created,
auth.signup,
auth.login,
auth.login_failed,
auth.password_reset_requested,
auth.password_reset_completed,
auth.mfa_changed,
auth.new_device,
auth.account_locked,
investigator.report.ready,
investigator.decision.automated,
investigator.decision.overridden,
investigator.decision.contested,
investigator.question.raised,
investigator.automation.paused,
investigator.rfi.answered,
investigator.rfi.overdue,
investigator.drift.detected,
investigator.sla.breached,
investigator.qa.failed,
investigator.external.report.ready
request_header
string
requerido

Texto JSON (una cadena) de los encabezados de la solicitud que envió Didit: Content-Type, X-Signature, X-Signature-V2, X-Signature-Simple, X-Timestamp y User-Agent. Analízalo con un parser JSON. Contiene firmas, nunca el secreto de firma.

request_body
string
requerido

Texto JSON (una cadena) del payload exacto que envió Didit, con las claves ordenadas, incluidos event_id y timestamp. Analízalo con un parser JSON; consulta Estructura del payload. Para una clave con alcance limitado sin media: read, las URL de medios que contiene son null; sin sessions: write, los tokens de sesión y los enlaces de verificación alojados son null. Un cuerpo modificado de esa forma ya no coincide con sus firmas. Didit no registra el cuerpo de la respuesta que devolvió tu endpoint.

created_at
string<date-time>
requerido

Cuándo se creó la entrega.

Última modificación el 1 de noviembre de 2026