curl -X DELETE \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
-H 'x-api-key: YOUR_API_KEY'{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}API para eliminar sesiones: derecho al olvido del RGPD
Didit elimina una sesión KYC o KYB y todos sus datos, incluido el embedding facial. Si se activa, queda una plantilla biométrica sin imágenes.
curl -X DELETE \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
-H 'x-api-key: YOUR_API_KEY'{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}Compatibilidad con KYC y KYB
Funciona tanto con sesiones de Verificación de usuario (KYC) como de Verificación de empresas (KYB). Elsession_id se busca en ambos tipos de sesión y el comportamiento de eliminación es el mismo para ambos. La retención de la plantilla biométrica solo se aplica a las sesiones KYC, porque solo las sesiones KYC contienen un embedding facial.
Comportamiento
- La sesión se elimina junto con todos los intentos de verificación que contiene, incluidos los resultados sustituidos por un reenvío: su decisión, sus datos extraídos, los registros de las funciones asociadas (verificaciones de identidad, consultas a registros, documentos, AML, análisis de IP, etc.), sus revisiones y su registro de actividad, y todos sus archivos almacenados.
- Al eliminar una sesión de Verificación de empresas (KYB) también se eliminan, de forma recursiva, las verificaciones que creó para sus personas clave (KYC) y sus propietarios corporativos (KYB). La respuesta indica cuántas se eliminaron en
deleted_child_verifications. Una verificación a la que solo está vinculada, como un KYC aprobado ya existente que reutilizó, no se elimina. - Los datos de firma electrónica también se eliminan: los documentos para firmar y sus archivos Word originales, los PDF firmados, los PDF de evidencias, las imágenes de las firmas y el valor de cada campo. Sus rutas de descarga devuelven
404. - La sesión desaparece de inmediato de las respuestas de listado y de decisión, y las URL de archivos multimedia emitidas antes de la llamada dejan de funcionar.
- Las entregas de webhook que seguían en cola para la sesión, y sus reintentos, se descartan.
- La monitorización AML continua y la monitorización de registros KYB iniciadas por las verificaciones eliminadas se detienen.
- La eliminación es permanente e irreversible. No existe ningún endpoint de restauración, así que exporta todo lo que necesites, como el PDF de una decisión, antes de invocar este endpoint.
- La respuesta es
200 OK, se envía cuando la eliminación ha terminado e incluye un cuerpo JSON que indica qué ocurrió con los datos biométricos faciales de la sesión. Consulta Migración si tu cliente todavía espera204.
Datos en un informe regulatorio finalizado
Si la sesión forma parte de un caso con un informe regulatorio finalizado, la solicitud devuelve409 y no se elimina nada. La respuesta usa code: in_filed_report e identifica cada informe:
{
"detail": "This session is part of a finalized regulatory report, so it cannot be deleted.",
"code": "in_filed_report",
"reports": [
{
"uuid": "5ec00000-0000-4000-8000-000000000007",
"report_number": "SAR-0001",
"report_type": "SAR",
"case_uuid": "c1a5e000-0000-4000-8000-000000000001"
}
]
}
Datos biométricos faciales: eliminar o conservar
Cada sesión de KYC con una selfie de prueba de vida incluye un embedding facial que permite la Búsqueda facial 1:N y la detección de duplicados. De forma predeterminada, ese embedding se elimina junto con la sesión (face_retention_policy: delete_with_session), de modo que una persona cuya sesión eliminaste puede verificarse de nuevo sin que se la marque como duplicada.
Las aplicaciones que necesitan que la detección de duplicados se mantenga tras eliminar una sesión pueden activar la conservación de plantillas biométricas. En ese caso, Didit elimina la sesión y todos sus datos como siempre, y conserva una plantilla biométrica facial sin imágenes, gestionada por separado y vinculada al Usuario de la sesión.
| Se conserva | Nunca se conserva |
|---|---|
| La plantilla facial numérica que se usa para la comparación | La imagen del rostro, el video de prueba de vida, las imágenes del documento, los recortes del retrato y cualquier otro contenido multimedia |
Un nuevo ID aleatorio de plantilla y un provenance_reference opaco | El ID, el número, la decisión, los campos de identidad extraídos o los payloads de funciones de la sesión eliminada |
El Usuario propietario (vendor_user_uuid, vendor_data actual) | El estado de la lista de bloqueo, las coincidencias anteriores, las etiquetas de fraude o las afirmaciones de identidad entre organizaciones |
Metadatos de conservación: retained_at, expires_at, la política, la anulación, la clase de instrucción, instruction_id y el ID del principal que actúa | Las direcciones de correo electrónico de quien actúa |
- Política de la aplicación en Business Console → App Settings → Data retention o mediante
PATCH /v3/webhook/(face_retention_policy,face_retention_days). Consulta Retención de datos. - Anulación por solicitud con
retain_face_embeddingsen este endpoint y en Eliminar sesiones en lote. - Clase de instrucción con
deletion_instruction. Una instrucciónprivacy_erasuresiempre prevalece: purga todas las plantillas conservadas de ese Usuario y nunca conserva una nueva.
Cuerpo de la solicitud
Todos los campos son opcionales. Omite el cuerpo para seguir la política de la aplicación.| Campo | Tipo | Descripción |
|---|---|---|
retain_face_embeddings | booleano o null | Anula la política de la aplicación para esta eliminación. true conserva una plantilla, false elimina el embedding con la sesión, y null o su omisión siguen la política. |
face_retention_days | entero (1-3650) | Duración finita de conservación de la plantilla. Es obligatorio cuando se conserva una plantilla, salvo que la aplicación ya defina face_retention_days. |
face_retention_deadline | fecha y hora (ISO 8601) | Caducidad máxima opcional. Debe ser una fecha futura. |
deletion_instruction | operational_session_delete (predeterminado) o privacy_erasure | La clase de instrucción que das. privacy_erasure purga todas las plantillas conservadas del Usuario de la sesión antes de eliminar la sesión y no se puede combinar con retain_face_embeddings: true. |
instruction_id | string (máx. 255) | Tu referencia permanente para esta instrucción, por ejemplo el ID de tu ticket de supresión. Se registra en el registro de auditoría y en cualquier plantilla conservada. Si lo omites, Didit genera uno, que puedes consultar en el detalle de la plantilla. |
Respuesta
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "retained_with_user",
"biometric_template_uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"biometric_template_expires_at": "2027-10-09T10:15:00Z",
"deleted_child_verifications": 0
}
| Campo | Descripción |
|---|---|
session_id | La sesión eliminada. |
session_number | El número de la sesión eliminada. |
face_retention_outcome | Qué ocurrió con los datos biométricos faciales de la sesión. Consulta la tabla siguiente. |
biometric_template_uuid | ID de la plantilla biométrica conservada cuando face_retention_outcome es retained_with_user; null en los demás casos. |
biometric_template_expires_at | Cuándo se elimina la plantilla biométrica conservada; null cuando no se conserva ninguna plantilla. |
deleted_child_verifications | En una sesión de KYB, cuántas de las verificaciones que creó (las sesiones de KYC de sus personas clave y las sesiones de KYB de sus propietarios corporativos, de forma recursiva) se eliminaron con ella. Siempre 0 en una sesión de KYC. |
face_retention_outcome | Significado |
|---|---|
deleted | La sesión y su embedding facial se eliminan. Comportamiento predeterminado. |
retained_with_user | La sesión se elimina. Una plantilla biométrica sin imágenes permanece vinculada al Usuario; su ID es biometric_template_uuid. Gestiónala con la API de plantillas biométricas. |
none | La sesión no tenía ningún embedding facial que eliminar o conservar (por ejemplo, una sesión de KYB o una sesión de KYC sin selfie de prueba de vida). |
ineligible_no_vendor_user | Se solicitó la conservación, pero la sesión no está vinculada a un Usuario (se creó sin vendor_data), por lo que no hay nada a lo que vincular una plantilla. La sesión y su embedding se eliminan. El resultado de no elegibilidad se registra en el registro de auditoría. |
instruction_id en tu propio registro de supresiones para poder correlacionarlo más adelante con el registro de auditoría.
Duración de la conservación y caducidad
Cada plantilla conservada tiene unexpires_at finito. Didit lo fija en el primero de estos valores:
face_retention_daysde la solicitud, o elface_retention_daysde la aplicación cuando la solicitud lo omite;- el plazo general de retención de datos de la aplicación, cuando hay uno configurado;
face_retention_deadlinede la solicitud, cuando se proporciona.
400 y no se elimina nada. Las plantillas conservadas no pueden durar más allá de lo primero que ocurra entre la instrucción aplicable del cliente, el fin de la finalidad, la caducidad configurada, la instrucción de supresión del interesado o el plazo legal para datos biométricos. Eres responsable de elegir una duración que cumpla las leyes aplicables a tus usuarios; elige una más corta siempre que una norma aplicable lo exija.
Supresión por privacidad
Envíadeletion_instruction: "privacy_erasure" cuando atiendas una solicitud de un titular de los datos. Didit purga todas las plantillas biométricas conservadas vinculadas al Usuario de la sesión y, después, elimina la sesión y su embedding. La política de retención de la aplicación no puede anular una instrucción de supresión por privacidad, y retain_face_embeddings: true se rechaza con 400.
Eliminar el Usuario con Batch Delete Users también purga sus plantillas conservadas.
Qué no se ve afectado
Eliminar una sesión no elimina estos elementos por ti. Si atiendes una solicitud de derecho de supresión, gestiónalos por separado.- Las entradas de la lista de bloqueo creadas a partir de la sesión (de rostro o de documento) se mantienen. Elimínalas de la lista de bloqueo. Una entrada de rostro en la lista de bloqueo conserva su propia entrada biométrica, independiente de cualquier plantilla conservada.
- Los tokens para compartir ya emitidos para la sesión no se revocan, pero ya no queda nada que puedan importar: una operación de importación con uno de ellos devuelve
400con{"share_token": ["Original session does not exist."]}. - Los webhooks ya entregados para la sesión no se ven afectados. Las entregas que aún están en cola, y sus reintentos, se descartan. No se emite ningún webhook por la propia eliminación.
- Los créditos ya consumidos por la verificación no se reembolsan.
- Las copias firmadas ya enviadas por correo a un firmante por un paso de firma electrónica están en el buzón del firmante y no se ven afectadas.
- La entidad principal (Usuario o Empresa) no se elimina. Para ello, usa Delete Users o Delete Businesses. Si el retrato de perfil del Usuario procedía de la sesión eliminada, el retrato se elimina.
- Una plantilla biométrica conservada (solo si activaste esta opción) se mantiene hasta que caduca o la purgas. Púrgala con la API de plantillas biométricas, eliminando el Usuario o repitiendo la eliminación de otra sesión del mismo Usuario con
deletion_instruction: "privacy_erasure".
Ejemplos
- Predeterminado (política de la aplicación)
- Conservar una plantilla biométrica
- Forzar la eliminación en una aplicación con retención activada
- Supresión por privacidad
- Sesión sin Usuario
- Sesión de Verificación de empresas (KYB)
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY"
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": true, "face_retention_days": 365, "instruction_id": "cleanup-2026-08-0142"}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "retained_with_user",
"biometric_template_uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"biometric_template_expires_at": "2027-10-09T10:15:00Z",
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": false}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"deletion_instruction": "privacy_erasure", "instruction_id": "dsar-2026-0142"}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
vendor_data no tiene ningún Usuario al que vincular una plantilla:curl -X DELETE https://verification.didit.me/v3/session/7a1e9c2d-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": true, "face_retention_days": 365}'
{
"session_id": "7a1e9c2d-5f4b-4c3a-8e2d-1b0a9f8e7d6c",
"session_number": 1031,
"face_retention_outcome": "ineligible_no_vendor_user",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/bs-01HJX1.../delete/ \
-H "x-api-key: YOUR_API_KEY"
{
"session_id": "0f3c9b7e-2d1a-4e5f-8c6b-7a9d8e1f2c3b",
"session_number": 88,
"face_retention_outcome": "none",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 3
}
Errores
| Estado | Cuándo | Cuerpo |
|---|---|---|
400 | privacy_erasure combinado con retain_face_embeddings: true | {"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]} |
400 | Se solicitó la retención sin una duración finita en la solicitud ni en la aplicación | {"detail": "A finite biometric-template retention duration is required."} |
403 | La credencial no tiene delete:sessions o no es propietaria de la sesión | {"detail": "You do not have permission to perform this action."} |
404 | Sesión desconocida o ya eliminada | {"detail": "Not found."} |
503 | Un servicio de almacenamiento o un proveedor de monitorización no estaba disponible al eliminar la sesión. | {"detail": "The session could not be deleted because a storage service or a monitoring provider is unavailable. The session is still in place; repeat the request to finish deleting it."} |
503 | Un almacén biométrico no estaba disponible al conservar o purgar una plantilla. Los reintentos se aplican a una única plantilla. | {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} |
400 no se elimina nada. Con 503 la sesión sigue existiendo: repite la misma solicitud hasta que devuelva 200. Es posible que algunos de sus archivos almacenados o su embedding facial ya se hayan eliminado, así que no dependas de ellos después de un 503.
Permiso
Requieredelete:sessions. El mismo permiso cubre tanto las sesiones de verificación de usuarios (KYC) como las de verificación de empresas (KYB), además de la anulación de la retención.
Eliminación por lotes
Para operaciones masivas sobre sesiones KYC, usaPOST /v3/sessions/delete/. Acepta los mismos campos de retención y de instrucción. En la propia solicitud se eliminan hasta 20 sesiones coincidentes, con un resultado por sesión; si hay más, se ejecutan como un trabajo de eliminación. Consulta Batch Delete Sessions.
Migración de respuestas 204
Hasta esta versión, el endpoint devolvía204 No Content. Ahora devuelve 200 OK con el cuerpo JSON documentado más arriba, para que cada eliminación informe de su face_retention_outcome. Actualiza los clientes que comprueban 204.
El comportamiento predeterminado no cambia: las aplicaciones existentes se mantienen en delete_with_session y ninguna migración activa la retención en tu nombre. Actívala de forma explícita en la consola o mediante PATCH /v3/webhook/.
Relacionado
Autorizaciones
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
UUID (session_id) de la sesión de Verificación de usuarios (KYC) o Verificación de empresas (KYB) que se va a eliminar, tal como se devolvió al crear la sesión. Debe ser un UUID canónico con guiones: un valor que no sea un UUID no coincide con la ruta y devuelve 404.
"11111111-2222-3333-4444-555555555555"
Cuerpo
Opcional. Omite el cuerpo por completo para seguir la política de retención de la aplicación con una eliminación operativa.
Anula la face_retention_policy de la aplicación para esta eliminación. true conserva una plantilla biométrica facial sin imágenes vinculada al usuario de la sesión después de eliminar la sesión; false elimina el embedding facial junto con la sesión; omítelo o usa null para seguir la política de la aplicación. Se ignora en las sesiones KYB y en las sesiones sin embedding facial.
true
Duración de retención finita, en días, de una plantilla conservada. Es obligatoria cuando se conserva una plantilla, salvo que la aplicación ya defina face_retention_days. El expires_at de la plantilla es el más temprano entre esta duración, el periodo general de retención de datos de la aplicación y face_retention_deadline.
1 <= x <= 3650365
Caducidad estricta opcional para una plantilla retenida. Debe ser una fecha futura.
"2027-08-28T00:00:00Z"
El tipo de instrucción que das. operational_session_delete elimina la sesión y conserva una plantilla solo cuando la política o retain_face_embeddings lo indican. privacy_erasure purga todas las plantillas biométricas conservadas vinculadas al usuario de la sesión antes de eliminar la sesión, la política de la aplicación no puede anularla y no se puede combinar con retain_face_embeddings: true (400).
operational_session_delete, privacy_erasure "operational_session_delete"
Tu referencia permanente para esta instrucción de eliminación (por ejemplo, el ID de un ticket de supresión). Se registra en el registro de auditoría y en cualquier plantilla conservada. Didit la genera si se omite.
255"dsar-2026-0142"
Respuesta
Sesión eliminada. El cuerpo indica qué ocurrió con los datos biométricos faciales de la sesión y, en una sesión KYB, cuántas de las verificaciones que creó se eliminaron junto con ella.
La sesión eliminada.
El número de la sesión eliminada.
Qué ocurrió con los datos biométricos faciales de la sesión. deleted: el embedding facial se eliminó junto con la sesión (valor predeterminado). retained_with_user: la sesión se elimina y se conserva una plantilla biométrica sin imágenes vinculada al User; consulta biometric_template_uuid. none: la sesión no tenía embedding facial (por ejemplo, una sesión KYB o una sesión KYC sin selfie de prueba de vida). ineligible_no_vendor_user: se solicitó la retención, pero la sesión no tiene ningún User vinculado, por lo que el embedding se eliminó junto con la sesión. Este endpoint nunca informa de un fallo del almacén biométrico a través de este campo: devuelve 503 y la sesión no se elimina.
retained_with_user, deleted, none, ineligible_no_vendor_user ID de la plantilla biométrica conservada cuando face_retention_outcome es retained_with_user; null en caso contrario. Gestiónala a través de /v3/biometric-templates/{template_uuid}/.
Fecha y hora en que se elimina la plantilla biométrica conservada, cuando face_retention_outcome es retained_with_user; null cuando no se conserva ninguna plantilla.
En una sesión de Verificación de empresas (KYB): cuántas de las verificaciones que creó (las sesiones KYC de sus personas clave y las sesiones KYB de sus propietarios corporativos, de forma recursiva) se eliminaron con ella. Siempre 0 en una sesión KYC.