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
}Eliminare una sessione via API: diritto all'oblio GDPR
Con Didit elimina una sessione KYC/KYB e i suoi dati. Di default va via anche l’embedding facciale; un modello senza immagini solo se attivato.
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
}Supporto KYC e KYB
Funziona sia per le sessioni di Verifica degli utenti (KYC) sia per quelle di Verifica aziendale (KYB). Ilsession_id viene risolto confrontandolo con entrambi i tipi di sessione; il comportamento di eliminazione è lo stesso per entrambi. La conservazione del modello biometrico si applica solo alle sessioni KYC, perché solo le sessioni KYC contengono un embedding facciale.
Comportamento
- La sessione viene eliminata insieme a tutti i tentativi di verifica che contiene, compresi i risultati sostituiti da una nuova presentazione: la sua decisione, i dati estratti, i relativi record delle funzionalità (verifiche dell’identità, controlli nei registri, documenti, AML, analisi IP e così via), le sue revisioni e il registro delle attività, e tutti i file archiviati.
- Eliminare una sessione di Verifica aziendale (KYB) elimina anche le verifiche create per le sue persone chiave (KYC) e per i suoi titolari effettivi (KYB), in modo ricorsivo. La risposta riporta quante sono in
deleted_child_verifications. Una verifica alla quale la sessione è solo collegata, come un KYC già approvato e riutilizzato, non viene eliminata. - I dati della firma elettronica vengono eliminati con essa: i documenti da firmare e i relativi file Word originali, i PDF firmati, i PDF delle prove, le immagini delle firme e tutti i valori dei campi. I loro percorsi di download restituiscono
404. - La sessione scompare immediatamente dalle risposte di elenco e di decisione, e gli URL dei contenuti multimediali emessi prima della chiamata smettono di funzionare.
- Le consegne di webhook ancora in coda per la sessione, e i relativi nuovi tentativi, vengono scartate.
- Il monitoraggio AML continuo e il monitoraggio del registro KYB avviati dalle verifiche eliminate si interrompono.
- L’eliminazione è definitiva e irreversibile. Non esiste un endpoint di ripristino, quindi esporta tutto ciò che ti serve, ad esempio un PDF della decisione, prima di effettuare la chiamata.
- La risposta è
200 OK, inviata solo al completamento dell’eliminazione, con un corpo JSON che riporta cosa è successo ai dati biometrici del volto della sessione. Vedi Migrazione se il tuo client si aspetta ancora204.
Dati in un report normativo finalizzato
Se la sessione fa parte di un caso con un report normativo finalizzato, la richiesta restituisce409 e non viene eliminato nulla. La risposta usa code: in_filed_report e indica ciascun report:
{
"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"
}
]
}
Dati biometrici del volto da eliminare o conservare
Ogni sessione KYC con un selfie di prova di vita contiene un embedding facciale, che alimenta la Ricerca facciale 1:N e il rilevamento dei duplicati. Per impostazione predefinita, l’embedding viene eliminato insieme alla sessione (face_retention_policy: delete_with_session), quindi una persona la cui sessione hai eliminata può effettuare nuovamente la verifica senza essere segnalata come duplicata.
Le applicazioni che hanno bisogno che il rilevamento dei duplicati sopravviva all’eliminazione della sessione possono attivare la conservazione del modello biometrico. In questo caso Didit elimina la sessione e tutti i suoi dati come di consueto, e conserva un unico modello biometrico del volto, gestito separatamente e privo di immagini, associato all’utente della sessione.
| Conservati | Mai conservati |
|---|---|
| Il modello numerico del volto usato per il confronto | L’immagine del volto, il video di prova di vita, le immagini dei documenti, i ritagli del ritratto e qualsiasi altro contenuto multimediale |
Un nuovo id casuale del modello e un provenance_reference opaco | L’id della sessione eliminata, il suo numero, la decisione, i campi di identità estratti o i payload delle funzionalità |
L’utente proprietario (vendor_user_uuid, vendor_data attuale) | Stato della blocklist, corrispondenze precedenti, etichette di frode o dichiarazioni di identità tra organizzazioni diverse |
Metadati di conservazione: retained_at, expires_at, policy, override, classe di istruzione, instruction_id e l’id del soggetto che agisce | Indirizzi email dei soggetti che agiscono |
- Politica dell’applicazione in Business Console → App Settings → Data retention oppure tramite
PATCH /v3/webhook/(face_retention_policy,face_retention_days). Vedi Conservazione dei dati. - Override per singola chiamata con
retain_face_embeddingssu questo endpoint e su Eliminazione in batch delle sessioni. - Classe di istruzione con
deletion_instruction. Un’istruzioneprivacy_erasureha sempre la precedenza: elimina ogni modello conservato per quell’utente e non ne conserva mai uno nuovo.
Corpo della richiesta
Tutti i campi sono facoltativi. Ometti il corpo per seguire la politica dell’applicazione.| Campo | Tipo | Descrizione |
|---|---|---|
retain_face_embeddings | booleano o null | Sostituisce la politica dell’applicazione per questa eliminazione. true conserva un modello, false elimina l’embedding insieme alla sessione, null o omesso segue la politica. |
face_retention_days | intero (1-3650) | Durata di conservazione limitata del modello. Obbligatorio quando un modello viene conservato, a meno che l’applicazione non imposti già face_retention_days. |
face_retention_deadline | datetime (ISO 8601) | Scadenza definitiva facoltativa. Deve essere nel futuro. |
deletion_instruction | operational_session_delete (predefinito) o privacy_erasure | La classe dell’istruzione che stai impartendo. privacy_erasure elimina ogni modello conservato per l’utente della sessione prima di eliminare la sessione e non può essere combinato con retain_face_embeddings: true. |
instruction_id | stringa (max 255) | Il tuo riferimento durevole per questa istruzione, ad esempio l’id del ticket di cancellazione. Viene registrato nel registro di audit e su ogni modello conservato. Se lo ometti, Didit ne genera uno, leggibile nel dettaglio del modello. |
Risposta
{
"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 | Descrizione |
|---|---|
session_id | La sessione eliminata. |
session_number | Il numero della sessione eliminata. |
face_retention_outcome | Che cosa è successo ai dati biometrici del volto della sessione. Vedi la tabella seguente. |
biometric_template_uuid | Id del modello biometrico conservato quando face_retention_outcome è retained_with_user; altrimenti null. |
biometric_template_expires_at | Quando viene eliminato il modello biometrico conservato; null quando nessun modello viene conservato. |
deleted_child_verifications | Per una sessione KYB, quante verifiche da essa create (le sessioni KYC delle sue persone chiave e le sessioni KYB dei suoi titolari effettivi, in modo ricorsivo) sono state eliminate insieme a essa. Per una sessione KYC è sempre 0. |
face_retention_outcome | Significato |
|---|---|
deleted | La sessione e il suo embedding facciale sono eliminati. Comportamento predefinito. |
retained_with_user | La sessione è eliminata. Un unico modello biometrico privo di immagini resta associato all’utente; il suo id è biometric_template_uuid. Gestiscilo con l’API dei modelli biometrici. |
none | La sessione non aveva alcun embedding facciale da eliminare o conservare (ad esempio una sessione KYB, o una sessione KYC senza selfie di prova di vita). |
ineligible_no_vendor_user | È stata richiesta la conservazione, ma la sessione non è collegata a un utente (è stata creata senza vendor_data), quindi non c’è nulla a cui associare un modello. La sessione e il suo embedding facciale vengono eliminati. L’esito non idoneo viene registrato nel registro di audit. |
instruction_id nel tuo registro di cancellazione, così potrai correlarlo in seguito con il registro di audit.
Durata della conservazione e scadenza
Ogni modello conservato ha unexpires_at definito. Didit lo imposta in base alla scadenza più anticipata determinata dai seguenti valori:
face_retention_daysdella richiesta, oppureface_retention_daysdell’applicazione quando la richiesta lo omette;- la finestra generale di conservazione dei dati dell’applicazione, quando è configurata;
face_retention_deadlinedella richiesta, quando è fornito.
400 e non viene eliminato nulla. I modelli conservati non possono sopravvivere alla più breve tra le istruzioni applicabili del cliente, la fine della finalità, la scadenza configurata, un’istruzione di cancellazione dell’interessato o una scadenza biometrica prevista dalla legge. Sei tu a scegliere una durata che rispetti le leggi applicabili ai tuoi utenti; scegli una durata più breve ogni volta che una norma applicabile lo richiede.
Cancellazione per privacy
Inviadeletion_instruction: "privacy_erasure" quando agisci su una richiesta dell’interessato. Didit elimina ogni modello biometrico conservato collegato all’Utente della sessione, poi elimina la sessione e il relativo embedding. La politica di conservazione dell’applicazione non può prevalere su un’istruzione di cancellazione per motivi di privacy, e retain_face_embeddings: true viene rifiutato con 400.
Eliminare l’Utente con Batch Delete Users elimina anche i modelli conservati collegati.
Cosa non viene influenzato
Eliminare una sessione non esegue automaticamente queste operazioni. Se stai gestendo una richiesta di cancellazione dei dati, occupatene separatamente.- Voci della blocklist create a partire dalla sessione (volto o documento) restano al loro posto. Rimuovile dalla blocklist. Una voce della blocklist facciale mantiene la propria voce biometrica, indipendente da qualsiasi modello conservato.
- Token di condivisione già emessi per la sessione non vengono revocati, ma non c’è più nulla da importare: un import con uno di questi token restituisce
400con{"share_token": ["Original session does not exist."]}. - Webhook già consegnati per la sessione non sono interessati. Le consegne ancora in coda e i relativi nuovi tentativi vengono eliminati. Per la cancellazione in sé non viene emesso alcun webhook.
- Crediti già consumati dalla verifica non vengono rimborsati.
- Copie firmate già inviate via email a un firmatario da un passaggio di firma elettronica si trovano nella casella di posta del firmatario e non sono interessate.
- L’entità padre Utente o azienda non viene eliminata. Per queste usa Delete Users o Delete Businesses. Se il ritratto del profilo dell’Utente proviene dalla sessione eliminata, il ritratto viene rimosso.
- Un modello biometrico conservato (solo se hai scelto di conservarlo) resta finché non scade o non lo elimini. Eliminalo con la Biometric Templates API, eliminando l’Utente, oppure ripetendo l’eliminazione di un’altra sessione dello stesso Utente con
deletion_instruction: "privacy_erasure".
Esempi
- Predefinito (politica dell'applicazione)
- Conserva un modello biometrico
- Forza l'eliminazione su un'applicazione con conservazione attiva
- Cancellazione per privacy
- Sessione senza Utente
- Sessione di Verifica aziendale (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 non ha un Utente a cui collegare un modello: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
}
Errori
| Stato | Quando | Corpo |
|---|---|---|
400 | privacy_erasure combinato con retain_face_embeddings: true | {"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]} |
400 | Conservazione richiesta senza una durata finita, nella richiesta o nell’applicazione | {"detail": "A finite biometric-template retention duration is required."} |
403 | La credenziale non ha delete:sessions oppure non è proprietaria della sessione | {"detail": "You do not have permission to perform this action."} |
404 | Sessione sconosciuta o già eliminata | {"detail": "Not found."} |
503 | Un servizio di archiviazione o un provider di monitoraggio non era disponibile durante l’eliminazione della sessione. | {"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 archivio biometrico non era disponibile durante la conservazione o l’eliminazione di un modello. I nuovi tentativi convergono su un unico modello. | {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} |
400 non viene eliminato nulla. Con 503 la sessione resta al suo posto: ripeti la stessa richiesta finché non restituisce 200. Alcuni dei suoi file archiviati o il suo embedding facciale potrebbero essere già stati eliminati, quindi non fare affidamento su di essi dopo un 503.
Autorizzazione
Richiededelete:sessions. La stessa autorizzazione copre sia le sessioni di Verifica degli utenti (KYC) sia quelle di Verifica aziendale (KYB), e l’override della conservazione.
Eliminazione in batch
Per le operazioni di massa sulle sessioni KYC usaPOST /v3/sessions/delete/. Accetta gli stessi campi di conservazione e istruzione. Fino a 20 sessioni corrispondenti vengono eliminate nella richiesta, con un esito per ciascuna sessione; le altre vengono eliminate tramite un job di eliminazione. Vedi Batch Delete Sessions.
Migrazione dalle risposte 204
Fino a questa release l’endpoint restituiva204 No Content. Ora restituisce 200 OK con il corpo JSON descritto sopra, così che ogni eliminazione riporti il proprio face_retention_outcome. Aggiorna i client che verificano la presenza di 204.
Il comportamento predefinito non cambia: le applicazioni esistenti restano su delete_with_session, e nessuna migrazione attiva la conservazione per tuo conto. Attivala esplicitamente nella Console oppure tramite PATCH /v3/webhook/.
Documentazione correlata
Autorizzazioni
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.
Parametri del percorso
UUID (session_id) della sessione di Verifica degli utenti (KYC) o Verifica aziendale (KYB) da eliminare, come restituito al momento della creazione della sessione. Deve essere un UUID canonico separato da trattini: un valore che non è un UUID non corrisponde al percorso e restituisce 404.
"11111111-2222-3333-4444-555555555555"
Corpo
Opzionale. Ometti interamente il corpo per seguire la politica di conservazione dell'applicazione con un'eliminazione operativa.
Esegui l'override della face_retention_policy dell'applicazione per questa eliminazione. true mantiene un modello biometrico facciale privo di immagini associato all'Utente della sessione dopo l'eliminazione della sessione; false elimina l'embedding facciale insieme alla sessione; ometti o imposta su null per seguire la politica dell'applicazione. Ignorato per le sessioni KYB e per le sessioni senza un embedding facciale.
true
Periodo di conservazione limitato, in giorni, per un modello conservato. Obbligatorio quando un modello viene conservato, a meno che l'applicazione non imposti già face_retention_days. Il campo expires_at del modello corrisponde al valore più anticipato tra questa durata, la finestra generale di conservazione dei dati dell'applicazione e face_retention_deadline.
1 <= x <= 3650365
Scadenza definitiva opzionale per un modello conservato. Deve essere nel futuro.
"2027-08-28T00:00:00Z"
La classe di istruzione che stai fornendo. operational_session_delete elimina la sessione e conserva un modello solo quando la policy o retain_face_embeddings lo prevede. privacy_erasure elimina definitivamente ogni modello biometrico conservato e associato all'Utente della sessione prima di eliminarla, non può essere sovrascritta dalla policy dell'applicazione e non può essere combinata con retain_face_embeddings: true (400).
operational_session_delete, privacy_erasure "operational_session_delete"
Il tuo riferimento permanente per questa istruzione di eliminazione (ad esempio l'ID di un ticket di cancellazione). Registrato nel registro di audit e su qualsiasi modello conservato. Generato da Didit se omesso.
255"dsar-2026-0142"
Risposta
Sessione eliminata. Il corpo riporta cosa è successo ai dati biometrici facciali della sessione e, per una sessione KYB, quante verifiche create da essa sono state eliminate insieme ad essa.
La sessione eliminata.
Il numero della sessione eliminata.
Cosa è successo ai dati biometrici facciali della sessione. deleted: l'embedding facciale è stato eliminato insieme alla sessione (impostazione predefinita). retained_with_user: la sessione viene eliminata e un modello biometrico senza immagini rimane associato all'Utente; vedi biometric_template_uuid. none: la sessione non aveva alcun embedding facciale (ad esempio una sessione KYB o una sessione KYC senza selfie per la prova di vita). ineligible_no_vendor_user: la conservazione era stata richiesta ma la sessione non ha alcun Utente collegato, quindi l'embedding è stato eliminato con la sessione. Un errore dello store biometrico non viene mai segnalato tramite questo campo su questo endpoint: restituisce 503 e la sessione non viene eliminata.
retained_with_user, deleted, none, ineligible_no_vendor_user ID del modello biometrico conservato quando face_retention_outcome è retained_with_user; null altrimenti. Gestiscilo tramite /v3/biometric-templates/{template_uuid}/.
Quando il modello biometrico conservato viene eliminato, se face_retention_outcome è retained_with_user; null quando nessun modello viene conservato.
Per una sessione di Verifica aziendale (KYB): quante verifiche ha creato (le sessioni KYC delle sue persone chiave e le sessioni KYB dei suoi proprietari aziendali, ricorsivamente) che sono state eliminate insieme ad essa. Sempre 0 per una sessione KYC.