> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API para consultar un trabajo de eliminación de sesiones

> Consulta con la API de Didit el estado y los resultados de una eliminación masiva de sesiones que devolvió 202 por coincidir más de 20 sesiones.



Prompt para obtener el trabajo de eliminación de sesiones
        Copiar el prompt al portapapeles



      
      

\<pre>

\`Goal: Read the progress of a bulk session deletion that POST /v3/sessions/delete/ answered with 202. That happens when more than 20 KYC sessions match the request, whether they are selected by session_numbers or with delete_all.

Endpoint: GET https://verification.didit.me/v3/sessions/delete/{job_id}/
Auth header: x-api-key: <DIDIT_API_KEY>

Path param:
\- job_id: the job_id returned with the 202.

curl:
curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
-H 'x-api-key: YOUR_API_KEY'

Response 200:
\{
"job_id": "<uuid>",
"status": "PROCESSING",            // PENDING | PROCESSING | COMPLETED | FAILED
"total": 250,                      // sessions selected when the deletion was requested
"processed": 100,                  // sessions the job has finished with so far
"outcomes": {"deleted": 82, "none": 18, "retained_with_user": 0, "ineligible_no_vendor_user": 0, "failed_retryable": 0, "already_deleted": 0},
"deleted_child_verifications": 0,  // always 0 for jobs from POST /v3/sessions/delete/ (KYC sessions only)
"error": null,                     // why the deletion stopped, when status is FAILED
"created_at": "<datetime>",
"completed_at": null
}

outcomes counts:
\- deleted: sessions deleted together with their face embedding.
\- none: sessions deleted that had no face embedding.
\- retained_with_user: sessions deleted while one image-free biometric template was retained for their User, as the request or the application policy asked.
\- ineligible_no_vendor_user: retention was requested but the session had no linked User; the session and its embedding were deleted.
\- failed_retryable: sessions reported as not deleted. The job retries a group it could not delete by itself instead of counting it here.
\- already_deleted: selected sessions that were already deleted, for example by another request, when the job reached them.

Polling: request the job every few seconds while status is PENDING or PROCESSING; stop at COMPLETED or FAILED. The job never lists which sessions it deleted, only counts. A FAILED job explains why in error; the sessions it had not reached are still in place, so repeat the deletion request to delete them. Deletion is permanent and irreversible.

Failure modes:
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401). { "detail": "You do not have permission to perform this action." }
\- 404: no such job for this application (a job is only visible to the application that created it).

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Pegar en

## Visión generalDevuelve una eliminación masiva de sesiones iniciada con [Eliminar sesiones en lote](https://docs.didit.me/es/management-api/sessions/batch-delete.md): su estado, cuántas sesiones ha procesado y cuántas terminaron en cada resultado.Cuando más de 20 sesiones KYC coinciden con una eliminación en lote, seleccionadas con `session_numbers` o con `delete_all`, la solicitud devuelve `202` con un trabajo `PENDING` y las sesiones se eliminan en segundo plano. Consulta este endpoint cada pocos segundos hasta que `status` sea `COMPLETED` o `FAILED`.El trabajo elimina cada sesión exactamente igual que mediante [Eliminar sesión](https://docs.didit.me/es/sessions-api/delete-session.md): se eliminan la sesión, todos los intentos de verificación que contiene y todos sus archivos almacenados, y sus URL de medios dejan de funcionar. La eliminación es permanente e irreversible.El trabajo solo informa recuentos. Nunca enumera qué sesiones eliminó.## Estado del trabajo| `status` | Significado |
| - | - |
| `PENDING` | Aceptado, aún no ha comenzado. |
| `PROCESSING` | Eliminando; `processed` y `outcomes` se están actualizando. |
| `COMPLETED` | Todas las sesiones seleccionadas están registradas en `outcomes`. |
| `FAILED` | El trabajo se detuvo antes de tiempo y `error` indica el motivo. Las sesiones a las que no llegó siguen existiendo: repite la solicitud de eliminación para eliminarlas. |Un trabajo `delete_all` elimina solo las sesiones creadas antes de la solicitud. Las sesiones iniciadas mientras se ejecuta no se eliminan.## Recuentos de resultados| Clave de `outcomes` | Significado |
| - | - |
| `deleted` | Sesiones eliminadas junto con su embedding facial. |
| `none` | Sesiones eliminadas que no tenían embedding facial. |
| `retained_with_user` | Sesiones eliminadas en las que se conservó una plantilla biométrica sin imagen para su Usuario, según lo indicaba la solicitud o la política de la aplicación. Consulta [Eliminar sesión](https://docs.didit.me/es/sessions-api/delete-session.md#datos-biométricos-faciales-eliminar-o-conservar). |
| `ineligible_no_vendor_user` | Se solicitó la conservación, pero la sesión no tenía ningún Usuario vinculado. Se eliminaron la sesión y su embedding facial. |
| `failed_retryable` | Sesiones notificadas como no eliminadas. El trabajo reintenta un grupo que no pudo eliminar por sí mismo en lugar de contarlo aquí. |
| `already_deleted` | Sesiones seleccionadas que ya estaban eliminadas, por ejemplo por otra solicitud, cuando el trabajo llegó a ellas. |`deleted_child_verifications` cuenta las verificaciones creadas por las verificaciones de empresa eliminadas y eliminadas junto con ellas. Siempre es `0` en un trabajo iniciado con [Eliminar sesiones en lote](https://docs.didit.me/es/management-api/sessions/batch-delete.md), que solo elimina sesiones KYC.## PermisosCualquier clave de API activa de la aplicación puede invocar este endpoint. Un trabajo solo es visible para la aplicación que lo creó; cualquier otro `job_id` devuelve `404`.## Contenido relacionado- [Eliminar sesiones en lote](https://docs.didit.me/es/management-api/sessions/batch-delete.md)
- [Eliminar sesión](https://docs.didit.me/es/sessions-api/delete-session.md)
- [Retención de datos](https://docs.didit.me/es/console/data-retention.md)


## OpenAPI

````yaml es/openapi-25.json GET /v3/sessions/delete/{job_id}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/sessions/delete/{job_id}/:
    get:
      tags:
        - Sessions
      summary: Obtener un trabajo de eliminación masiva de sesiones
      description: >-
        Progreso de una eliminación masiva de sesiones a la que `POST
        /v3/sessions/delete/` respondió con `202` (más de 20 sesiones
        coincidentes, seleccionadas mediante `session_numbers` o con
        `delete_all`). Consulta cada pocos segundos mientras `status` sea
        `PENDING` o `PROCESSING`; detente cuando sea `COMPLETED` o `FAILED`.


        El trabajo informa de cuántas sesiones terminaron en cada resultado y
        cuántas ha procesado, nunca de qué sesiones eliminó. Un trabajo `FAILED`
        indica el motivo en `error`; las sesiones a las que no había llegado
        siguen existiendo, así que repite la solicitud de eliminación para
        eliminarlas.


        **Autenticación:** clave de API en el encabezado `x-api-key`. Un trabajo
        solo es visible para la aplicación que lo creó; cualquier otro `job_id`
        devuelve `404`. Si faltan las credenciales o no son válidas, se devuelve
        `403`; esta API nunca devuelve `401`.
      operationId: get_session_deletion_job
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: El `job_id` devuelto con el `202` de `POST /v3/sessions/delete/`.
      responses:
        '200':
          description: El trabajo.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDeletionJob'
              examples:
                Processing:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: PROCESSING
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: null
                Completed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: COMPLETED
                    total: 250
                    processed: 250
                    outcomes:
                      deleted: 204
                      none: 44
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 2
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:16:40Z'
                Failed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: FAILED
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: >-
                      The deletion stopped before it finished. The sessions it
                      had not reached are still in place; repeat the request to
                      delete them.
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:15:52Z'
        '403':
          description: >-
            Falta la clave de API. Si falta la clave, se devuelve `403`; si la
            clave es incorrecta, está revocada o ha expirado, se devuelve `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: Falta el encabezado x-api-key, o la clave no es válida
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            No existe ningún trabajo de eliminación con este `job_id` para la
            aplicación que hace la llamada. Los trabajos solo son visibles para
            la aplicación que los creó.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.retrieve_deletion_job(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.sessions.retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RetrieveDeletionJob(ctx, \"11111111-2222-3333-4444-555555555555\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->sessions->retrieveDeletionJob('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.retrieve_deletion_job("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Sessions.RetrieveDeletionJobAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionDeletionJob:
      type: object
      description: >-
        Una eliminación masiva de sesiones que se ejecuta en segundo plano:
        progreso y recuentos por resultado, nunca qué sesiones eliminó.
      properties:
        job_id:
          type: string
          format: uuid
          description: >-
            Consulta periódicamente `GET /v3/sessions/delete/{job_id}/` con este
            id.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
          description: >-
            `PENDING`: aceptado, aún no ha comenzado. `PROCESSING`: eliminando;
            `processed` y `outcomes` se están actualizando. `COMPLETED`: se han
            contabilizado todas las sesiones seleccionadas. `FAILED`: el trabajo
            se detuvo antes de tiempo; consulta `error`.
        total:
          type: integer
          description: Sesiones seleccionadas cuando se solicitó la eliminación.
        processed:
          type: integer
          description: Sesiones que el trabajo ha terminado de procesar hasta el momento.
        outcomes:
          type: object
          description: >-
            Cuántas sesiones terminaron con cada resultado. Todas las claves
            están siempre presentes.
          properties:
            deleted:
              type: integer
              description: Sesiones eliminadas junto con su embedding facial.
            none:
              type: integer
              description: Sesiones eliminadas que no tenían embedding facial.
            retained_with_user:
              type: integer
              description: >-
                Sesiones eliminadas mientras se conservaba una plantilla
                biométrica sin imágenes para su Usuario, según lo indicado en la
                solicitud o en la política de la aplicación.
            ineligible_no_vendor_user:
              type: integer
              description: >-
                Sesiones eliminadas, junto con su embedding facial, porque se
                solicitó la retención pero no tenían un Usuario vinculado.
            failed_retryable:
              type: integer
              description: >-
                Sesiones notificadas como no eliminadas. Un trabajo reintenta
                por sí mismo un grupo que no pudo eliminar en lugar de
                contabilizarlo aquí.
            already_deleted:
              type: integer
              description: >-
                Sesiones seleccionadas que ya estaban eliminadas, por ejemplo
                por otra solicitud, cuando el proceso llegó a ellas.
        deleted_child_verifications:
          type: integer
          description: >-
            Verificaciones creadas por las verificaciones de empresas
            eliminadas, que se eliminaron junto con ellas. Siempre es `0` en un
            trabajo iniciado con `POST /v3/sessions/delete/`, que solo elimina
            sesiones KYC.
        error:
          type: string
          nullable: true
          description: >-
            `null` salvo que `status` sea `FAILED`; en ese caso, el motivo por
            el que se detuvo la eliminación. Las sesiones a las que el trabajo
            no había llegado siguen existiendo: repite la solicitud para
            eliminarlas.
        created_at:
          type: string
          format: date-time
          description: Cuándo se solicitó la eliminación.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Fecha y hora en que terminó el trabajo; `null` mientras se ejecuta.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.