Saltar al contenido principal
POST
curl

Comportamiento

Cada sesión seleccionada se elimina exactamente igual que con Eliminar sesión: se eliminan la sesión, todos los intentos de verificación que contiene, su decisión y los datos extraídos, sus registros de funciones y todos sus archivos almacenados; además, desaparece de todos los endpoints de lectura y las URL de contenido multimedia emitidas previamente dejan de resolverse. Las entregas de webhook que sigan en cola para una sesión eliminada, junto con sus reintentos, se descartan; los webhooks ya entregados no se ven afectados. La eliminación es permanente e irreversible. Si alguna de las sesiones seleccionadas forma parte de un informe regulatorio finalizado, toda la solicitud devuelve 409 y no se elimina nada. La respuesta usa code: in_filed_report e indica cada informe. Elimina cada informe con Eliminar informe y luego repite la solicitud. Eliminar el informe no elimina la sesión; la sesión se mantiene hasta que repitas esta solicitud. El número de sesiones coincidentes determina cómo se responde la solicitud, tanto si las seleccionas con session_numbers como con delete_all: Un resultado confirma que la sesión se eliminó, salvo cuando su face_retention_outcome es failed_retryable: esa sesión no se eliminó y sigue existiendo, así que trata ese resultado como un fallo que debes reintentar, nunca como confirmación de eliminación. Los números que no corresponden a una sesión KYC activa de tu aplicación se omiten y no aparecen en results.

Acotar delete_all con filtros

Con delete_all: true puedes acotar la selección con los filtros de Listar sesiones, cada uno con el prefijo filter_. Aceptan los mismos valores que los parámetros de consulta. Un filtro que admite varios valores (status, workflow_id, country, region, document_type, document_name, session_type, warning, organization_name) acepta una cadena separada por comas o un array:
  • Los filtros solo se aplican junto con delete_all; con session_numbers se validan, pero no cambian la selección.
  • Todos los demás filtros admiten un único valor. Un array se une en un único valor separado por comas, por lo que varias fechas, UUID o valores de api_service devuelven 400, y varios textos de vendor_data, search o screened_full_name no se tratan como alternativas.
  • Un filtro con un valor vacío se ignora, por lo que no acota la selección.
  • Una clave filter_* desconocida devuelve 400 {"filter_reviewer": "Unknown filter."}, y un valor que no se puede interpretar devuelve 400 con esa clave filter_*, como {"filter_date_from": ["Enter a valid date."]}. En ninguno de los dos casos se elimina nada, de modo que un filtro mal escrito nunca amplía la eliminación a todas las sesiones.
  • Un trabajo de eliminación aplica los mismos filtros y, como todo delete_all, solo abarca las sesiones creadas antes de la solicitud.

Campos de retención e instrucción

El endpoint acepta los mismos campos opcionales que el endpoint de sesión individual y los aplica a cada sesión coincidente: Consulta Eliminar sesión para saber qué contiene y qué no contiene una plantilla retenida, cómo se calcula expires_at y qué hace una instrucción de eliminación por privacidad.

Resultados por sesión

Con hasta 20 sesiones coincidentes, 200 OK devuelve un resultado por sesión:
Cada resultado incluye los mismos campos que la respuesta de Eliminar sesión. biometric_template_expires_at indica cuándo se elimina una plantilla retenida, y deleted_child_verifications siempre es 0 aquí, porque este endpoint solo elimina sesiones KYC. Las sesiones se eliminan en grupos. Cuando un grupo no se puede eliminar, todas sus sesiones se indican como failed_retryable; los demás grupos no se ven afectados y siguen eliminados.

Las selecciones grandes se ejecutan como un trabajo

Cuando coinciden más de 20 sesiones, la respuesta es 202 Accepted con un trabajo de eliminación en lugar de results:
Consulta Get Session Deletion Job cada pocos segundos hasta que status sea COMPLETED o FAILED.
  • El trabajo informa cuántas sesiones finalizaron con cada resultado, pero nunca indica qué sesiones eliminó.
  • Un trabajo delete_all elimina solo las sesiones creadas antes de tu solicitud. Las sesiones iniciadas mientras se ejecuta no se eliminan.
  • Los campos de retención e instrucciones de tu solicitud se aplican a todas las sesiones que elimina el trabajo.
  • Si un grupo todavía no se puede eliminar, el trabajo lo reintenta por sí solo.
  • Un trabajo FAILED explica el motivo en error. Las sesiones a las que no había llegado siguen existiendo: repite la solicitud para eliminarlas.

Ejemplos

Migración desde respuestas 204

Hasta esta versión, el endpoint devolvía 204 No Content. Ahora devuelve 200 OK con results[], o 202 Accepted con un trabajo de eliminación cuando coinciden más de 20 sesiones. Actualiza los clientes que comprueban 204. El comportamiento de eliminación predeterminado no cambia: las aplicaciones existentes siguen con delete_with_session hasta que cambies la política de forma explícita.

Relacionado

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.

Cuerpo

application/json
session_numbers
string[]

Valores numéricos de session_number de las sesiones de KYC que se van a eliminar, como cadenas que solo contienen dígitos (también se aceptan números JSON, que se convierten). Es obligatorio salvo que delete_all sea true; una lista vacía devuelve 400. Cualquier entrada que no sea solo dígitos rechaza toda la solicitud con 400 (salvo que delete_all sea true, en cuyo caso se omite la validación y las entradas se ignoran). Los números que no correspondan a una sesión activa de tu aplicación se omiten sin aviso.

Minimum array length: 1
Pattern: ^[0-9]+$
Ejemplo:
delete_all
boolean
predeterminado:false

Si es true, se eliminan todas las sesiones de KYC restantes de la aplicación que hace la llamada y se ignora session_numbers, salvo que acotes la selección con claves filter_*. Si coinciden más de 20 sesiones, se ejecuta un trabajo de eliminación (202) que solo abarca las sesiones creadas antes de la solicitud. El valor predeterminado es false. Es irreversible; no hay paso de confirmación.

Ejemplo:

false

retain_face_embeddings
boolean | null

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.

Ejemplo:

true

face_retention_days
integer

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.

Rango requerido: 1 <= x <= 3650
Ejemplo:

365

face_retention_deadline
string<date-time>

Caducidad estricta opcional para una plantilla retenida. Debe ser una fecha futura.

Ejemplo:

"2027-08-28T00:00:00Z"

deletion_instruction
enum<string>
predeterminado:operational_session_delete

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).

Opciones disponibles:
operational_session_delete,
privacy_erasure
Ejemplo:

"operational_session_delete"

instruction_id
string

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.

Maximum string length: 255
Ejemplo:

"dsar-2026-0142"

filter_status

Restringe un delete_all a las sesiones que coinciden con el filtro status de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_vendor_data
string

Restringe un delete_all a las sesiones que coinciden con el filtro vendor_data de Listar sesiones, con el mismo valor. Un solo valor, no una lista: un array se une en un único texto separado por comas, por lo que varios valores no se tratan como alternativas. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

Restringe un delete_all a las sesiones que coinciden con el filtro search de Listar sesiones, con el mismo valor. Un solo valor, no una lista: un array se une en un único texto separado por comas, por lo que varios valores no se tratan como alternativas. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_workflow_id

Restringe un delete_all a las sesiones que coinciden con el filtro workflow_id de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_date_from
string<date>

Limita un delete_all a las sesiones que coinciden con el filtro date_from de List Sessions, con el mismo valor. Un solo valor, no una lista: un array se une en un único valor separado por comas, por lo que varios valores se rechazan con 400. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_date_to
string<date>

Limita un delete_all a las sesiones que coinciden con el filtro date_to de List Sessions, con el mismo valor. Un solo valor, no una lista: un array se une en un único valor separado por comas, por lo que varios valores se rechazan con 400. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_country

Limita un delete_all a las sesiones que coinciden con el filtro country de List Sessions, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_document_type

Limita un delete_all a las sesiones que coinciden con el filtro document_type de List Sessions, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_document_name

Limita un delete_all a las sesiones que coinciden con el filtro document_name de List Sessions, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_region

Restringe un delete_all a las sesiones que coinciden con el filtro region de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_didit_internal_id
string<uuid>

Limita un delete_all a las sesiones que coinciden con el filtro didit_internal_id de List Sessions, con el mismo valor. Un solo valor, no una lista: un array se une en un único valor separado por comas, por lo que varios valores se rechazan con 400. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_session_type

Restringe un delete_all a las sesiones que coinciden con el filtro session_type de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_api_service
string

Limita un delete_all a las sesiones que coinciden con el filtro api_service de List Sessions, con el mismo valor. Un solo valor, no una lista: un array se une en un único valor separado por comas, por lo que varios valores se rechazan con 400. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_screened_full_name
string

Restringe un delete_all a las sesiones que coinciden con el filtro screened_full_name de Listar sesiones, con el mismo valor. Un solo valor, no una lista: un array se une en un único texto separado por comas, por lo que varios valores no se tratan como alternativas. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_warning

Restringe un delete_all a las sesiones que coinciden con el filtro warning de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_status_initialized_as_in_review
boolean

Restringe un delete_all a las sesiones que coinciden con el filtro status_initialized_as_in_review de Listar sesiones, con los mismos valores. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

filter_is_kyc_to_be_reviewed
boolean

Limita un delete_all a las sesiones que coinciden con el filtro is_kyc_to_be_reviewed de List Sessions, con los mismos valores. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_euuid
string<uuid>

Limita un delete_all a las sesiones que coinciden con el filtro euuid de List Sessions, con el mismo valor. Un solo valor, no una lista: un array se une en un único valor separado por comas, por lo que varios valores se rechazan con 400. Se ignora sin delete_all. Un valor vacío se ignora y no limita la selección.

filter_organization_name

Restringe un delete_all a las sesiones que coinciden con el filtro organization_name de Listar sesiones, con los mismos valores. Una cadena separada por comas o un array. Con una clave de API solo puede coincidir con el nombre de tu propia organización, así que selecciona todas tus sesiones o ninguna. Se ignora sin delete_all. Un valor vacío se ignora y no restringe la selección.

Respuesta

Hasta 20 sesiones coincidieron y se procesaron en la solicitud. Hay un resultado por cada sesión coincidente; los números que no coincidieron con nada (desconocidos o ya eliminados) se omiten y no aparecen. Un resultado confirma la eliminación, excepto cuando face_retention_outcome es failed_retryable: esa sesión NO se eliminó y debe reintentarse.

results
object[]
Última modificación el 1 de noviembre de 2026