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

# Recupera job di eliminazione sessioni API

> Didit: controlla stato ed esiti del job di eliminazione in blocco avviato da Batch Delete Sessions con 202 per più di 20 sessioni.



Prompt per ottenere il job di eliminazione delle sessioni
        Copia il prompt negli appunti



      
      

\<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>



      
      

Incolla in

## PanoramicaRestituisce informazioni su un'eliminazione in blocco di sessioni avviata con [Batch Delete Sessions](https://docs.didit.me/it/management-api/sessions/batch-delete.md): il suo stato, quante sessioni ha elaborato e quante si sono concluse con ciascun esito.Quando un'eliminazione in batch selezionata con `session_numbers` oppure con `delete_all` riguarda più di 20 sessioni KYC, la richiesta restituisce `202` con un job `PENDING` e le sessioni vengono eliminate in background. Interroga questo endpoint ogni pochi secondi finché `status` non è `COMPLETED` o `FAILED`.Ogni sessione che il job elimina viene cancellata esattamente come con [Delete Session](https://docs.didit.me/it/sessions-api/delete-session.md): la sessione, ogni tentativo di verifica associato a essa e tutti i file archiviati vengono eliminati, e i suoi URL multimediali non sono più risolvibili. L'eliminazione è definitiva e irreversibile.Il job riporta solo conteggi. Non elenca mai le sessioni che ha eliminato.## Stato del job| `status` | Significato |
| - | - |
| `PENDING` | Accettato, non ancora avviato. |
| `PROCESSING` | Eliminazione in corso; `processed` e `outcomes` vengono aggiornati. |
| `COMPLETED` | Ogni sessione selezionata è conteggiata in `outcomes`. |
| `FAILED` | Il job si è interrotto prima del previsto e `error` ne indica il motivo. Le sessioni che non ha raggiunto sono ancora presenti: ripeti la richiesta di eliminazione per eliminarle. |Un job `delete_all` elimina solo le sessioni create prima della richiesta. Le sessioni avviate mentre il job è in esecuzione non vengono eliminate.## Conteggi degli esiti| Chiave di `outcomes` | Significato |
| - | - |
| `deleted` | Sessioni eliminate insieme al loro embedding facciale. |
| `none` | Sessioni eliminate che non avevano un embedding facciale. |
| `retained_with_user` | Sessioni eliminate mentre è stato conservato un modello biometrico senza immagini per il loro utente, come richiesto o previsto dalla politica dell'applicazione. Vedi [Delete Session](https://docs.didit.me/it/sessions-api/delete-session.md#dati-biometrici-del-volto-da-eliminare-o-conservare). |
| `ineligible_no_vendor_user` | La conservazione era richiesta, ma la sessione non aveva un utente collegato. La sessione e il suo embedding facciale sono stati eliminati. |
| `failed_retryable` | Sessioni segnalate come non eliminate. Il job ritenta un gruppo che non è riuscito a eliminare da solo, invece di contarlo qui. |
| `already_deleted` | Sessioni selezionate già eliminate, per esempio da un'altra richiesta, quando il job le ha raggiunte. |`deleted_child_verifications` conta le verifiche che le verifiche aziendali eliminate avevano creato e che sono state eliminate insieme a esse. Per un job avviato da [Batch Delete Sessions](https://docs.didit.me/it/management-api/sessions/batch-delete.md), che elimina solo sessioni KYC, è sempre `0`.## AutorizzazioniQualsiasi chiave API attiva dell'applicazione può chiamare questo endpoint. Un job è visibile solo all'applicazione che lo ha creato; qualsiasi altro `job_id` restituisce `404`.## Correlati- [Batch Delete Sessions](https://docs.didit.me/it/management-api/sessions/batch-delete.md)
- [Delete Session](https://docs.didit.me/it/sessions-api/delete-session.md)
- [Conservazione dei dati](https://docs.didit.me/it/console/data-retention.md)


## OpenAPI

````yaml it/openapi-25.json GET /v3/sessions/delete/{job_id}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/sessions/delete/{job_id}/:
    get:
      tags:
        - Sessions
      summary: Recupera un job di eliminazione massiva delle sessioni
      description: >-
        Avanzamento di un'eliminazione massiva di sessioni a cui `POST
        /v3/sessions/delete/` ha risposto con `202` (più di 20 sessioni
        corrispondenti, selezionate tramite `session_numbers` o con
        `delete_all`). Esegui il polling ogni pochi secondi mentre `status` è
        `PENDING` o `PROCESSING`; interrompi quando è `COMPLETED` o `FAILED`.


        Il job riporta quante sessioni hanno avuto ciascun esito e quante ne ha
        elaborate, mai quali sessioni ha eliminato. Un job `FAILED` riporta il
        motivo in `error`; le sessioni non ancora raggiunte rimangono invariate,
        quindi ripeti la richiesta di eliminazione per eliminarle.


        **Autenticazione:** chiave API nell'intestazione `x-api-key`. Un job è
        visibile solo all'applicazione che lo ha creato; qualsiasi altro
        `job_id` restituisce `404`. Credenziali mancanti o non valide
        restituiscono `403`; questa API non restituisce mai `401`.
      operationId: get_session_deletion_job
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Il `job_id` restituito con il `202` da `POST /v3/sessions/delete/`.
      responses:
        '200':
          description: Il job.
          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: >-
            Chiave API mancante. L'assenza della chiave restituisce `403`; una
            chiave errata, revocata o scaduta restituisce `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: >-
                    Nessuna intestazione x-api-key, oppure la chiave non è
                    valida
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Non esiste alcun job di eliminazione con questo `job_id` per
            l'applicazione chiamante. I job sono visibili solo all'applicazione
            che li ha creati.
      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: >-
        Un'eliminazione massiva di sessioni in esecuzione in background:
        avanzamento e conteggi per esito, mai quali sessioni sono state
        eliminate.
      properties:
        job_id:
          type: string
          format: uuid
          description: >-
            Esegui il polling di `GET /v3/sessions/delete/{job_id}/` con questo
            id.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
          description: >-
            `PENDING`: accettato, non ancora avviato. `PROCESSING`: eliminazione
            in corso; `processed` e `outcomes` si stanno aggiornando.
            `COMPLETED`: ogni sessione selezionata è stata gestita. `FAILED`: il
            job si è interrotto prima del completamento; vedi `error`.
        total:
          type: integer
          description: Sessioni selezionate al momento della richiesta di eliminazione.
        processed:
          type: integer
          description: Sessioni completate dal processo fino a questo momento.
        outcomes:
          type: object
          description: >-
            Quante sessioni si sono concluse con ciascun esito. Ogni chiave è
            sempre presente.
          properties:
            deleted:
              type: integer
              description: Sessioni eliminate insieme al rispettivo embedding facciale.
            none:
              type: integer
              description: Sessioni eliminate prive di embedding facciale.
            retained_with_user:
              type: integer
              description: >-
                Sessioni eliminate mantenendo un modello biometrico privo di
                immagini per il relativo utente, come indicato nella richiesta o
                previsto dalla policy dell'applicazione.
            ineligible_no_vendor_user:
              type: integer
              description: >-
                Sessioni eliminate, insieme al rispettivo embedding facciale,
                poiché era stata richiesta la conservazione dei dati ma non
                avevano alcun utente collegato.
            failed_retryable:
              type: integer
              description: >-
                Sessioni segnalate come non eliminate. Un processo effettua un
                nuovo tentativo per un gruppo che non è riuscito a eliminare
                autonomamente invece di conteggiarlo qui.
            already_deleted:
              type: integer
              description: >-
                Sessioni selezionate che erano già state eliminate, ad esempio
                da un'altra richiesta, nel momento in cui il job le ha
                raggiunte.
        deleted_child_verifications:
          type: integer
          description: >-
            Verifiche create dalle verifiche aziendali eliminate, eliminate
            insieme a esse. Sempre `0` per un processo avviato da `POST
            /v3/sessions/delete/`, che elimina solo sessioni KYC.
        error:
          type: string
          nullable: true
          description: >-
            `null` a meno che `status` non sia `FAILED`; in tal caso, indica il
            motivo per cui l'eliminazione si è interrotta. Le sessioni non
            ancora raggiunte dal processo rimangono invariate: ripeti la
            richiesta per eliminarle.
        created_at:
          type: string
          format: date-time
          description: Data e ora della richiesta di eliminazione.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Quando il processo è terminato; `null` mentre è in esecuzione.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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