> ## 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 per eliminar sessions: dret a l'oblit (RGPD)

> Didit elimina una sessió KYC o KYB i les seves dades; per defecte, també l'embedding facial. Opcionalment, conserva una plantilla biomètrica.



Prompt per eliminar la sessió
        Copia el prompt al porta-retalls



      
      

\<pre>

\`Delete a single Didit verification session and all of its data, and control what happens to the face biometric data.

Endpoint:
DELETE https://verification.didit.me/v3/session/{session_id}/delete/

Authentication:
Use the x-api-key header with your Didit API key. Privilege: delete:sessions.

Path parameter:
\- session_id (UUID) — works for both User Verification (KYC) and Business Verification (KYB) sessions. Didit resolves the id against both session types.

Optional JSON body (send Content-Type: application/json; omit the body entirely for the default behavior):
\- retain_face_embeddings (boolean | null) — override the application's face_retention_policy for this deletion. true keeps an image-free biometric template anchored to the session's User; false deletes the face embedding with the session; omit or null to follow the application policy.
\- face_retention_days (integer 1-3650) — finite retention duration for the template. Required when retaining unless the application already sets face_retention_days.
\- face_retention_deadline (ISO 8601 datetime, future) — optional hard expiry. The template expires at the earliest of face_retention_days, the application's data-retention window, and this deadline.
\- deletion_instruction ("operational_session_delete" default | "privacy_erasure") — privacy_erasure purges every retained biometric template for the session's User and never retains a new one, regardless of the application policy. Combining privacy_erasure with retain_face_embeddings: true is rejected with 400.
\- instruction_id (string, max 255) — your own durable reference for this deletion instruction (for example your erasure-ticket id). Stored on the audit trail and on any retained template.

curl examples:
Default (follow the application policy; delete_with_session unless you opted in):
curl -X DELETE https://verification.didit.me/v3/session/<SESSION_ID>/delete/ \
-H "x-api-key: <API_KEY>"

Delete the session but keep an image-free biometric template for 365 days:
curl -X DELETE https://verification.didit.me/v3/session/<SESSION_ID>/delete/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": true, "face_retention_days": 365}'

Right-to-erasure request (delete the session AND purge every retained template for that person):
curl -X DELETE https://verification.didit.me/v3/session/<SESSION_ID>/delete/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"deletion_instruction": "privacy_erasure", "instruction_id": "dsar-2026-0142"}'

Response: 200 OK with a JSON body once the deletion has completed (this endpoint no longer returns 204):
\{
"session_id": "<uuid>",
"session_number": 1024,
"face_retention_outcome": "deleted" | "retained_with_user" | "none" | "ineligible_no_vendor_user",
"biometric_template_uuid": "<uuid>" | null,
"biometric_template_expires_at": "<ISO 8601 datetime>" | null,
"deleted_child_verifications": 0
}
\- deleted: the session and its face embedding are deleted (default behavior).
\- retained_with_user: the session is deleted; an image-free biometric template with the returned biometric_template_uuid stays anchored to the User until biometric_template_expires_at, User deletion, privacy erasure, or explicit purge. Manage it with GET/DELETE /v3/biometric-templates/{uuid}/.
\- none: the session had no face embedding (for example a KYB session or a document-only KYC session).
\- ineligible_no_vendor_user: retention was requested but the session has no linked User (no vendor_data), so nothing can anchor the template. The session and its embedding are deleted.
\- biometric_template_expires_at: when the retained template is deleted; null when no template is retained.
\- deleted_child_verifications: for a KYB session, how many verifications it created (its key people's KYC sessions and its corporate owners' KYB sessions, recursively) were deleted with it. Always 0 for a KYC session.

Behavior:
\- The session and every verification attempt it holds are deleted, including results a resubmission replaced: the decision, the extracted data, the associated feature records (ID verification, registry checks, documents, AML, IP, etc.), its reviews and activity log, and all stored files (document images, videos, portraits, selfies, POA documents, extra uploads, and E-signature documents, signed PDFs, evidence PDFs and signature images).
\- A KYB session is deleted together with the verifications it created for its key people and corporate owners. A verification it only links to (for example a reused, already approved KYC) is not deleted.
\- The session disappears immediately from /v3/sessions/ and /v3/session/{id}/decision/, and media URLs issued before the call stop resolving.
\- Webhook deliveries still queued for the session, and their retries, are dropped. Webhooks already delivered are not affected.
\- Ongoing AML monitoring and KYB registry monitoring started by the deleted verifications stop.
\- A retained biometric template never contains the face image, liveness video, document data, extracted identity fields, the decision, or the deleted session's id. It is biometric data, tenant-scoped, used only for your duplicate-face, multi-account, biometric-authentication, and list matching, and it is never used for model training or cross-customer fraud processing.
\- Share tokens issued for the session are NOT revoked, but there is nothing left for them to import: an import with one returns 400 {"share_token": ["Original session does not exist."]}.
\- Blocklist entries created from the session are NOT removed; manage those with the Lists endpoints.
\- Credits already consumed by the verification are NOT refunded.
\- The parent User or Business entity is NOT deleted; use POST /v3/users/delete/ or POST /v3/businesses/delete/ for those. Deleting the User also purges its retained biometric templates. If the User's profile portrait came from this session, the portrait is removed.
\- No webhook fires for the deletion itself.

Idempotency:
Idempotent in effect: the second call to the same session returns 404 because the session no longer exists. Deletion is permanent and cannot be undone.

Failure modes:
\- 400: {"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]} or {"detail": "A finite biometric-template retention duration is required."} (retention requested without face_retention_days on the request or the application). Nothing is deleted.
\- 403: {"detail": "You do not have permission to perform this action."} when the key lacks delete:sessions.
\- 404: {"detail": "Not found."} when the session does not exist (or was already deleted).
\- 409: {"detail": "...", "code": "in_filed_report", "reports": [{"uuid": "...", "report_number": "SAR-0001", "report_type": "SAR", "case_uuid": "..."}]} when the session is part of a finalized regulatory report. Nothing is deleted. Delete the reports, then repeat the request.
\- 503: {"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."} or {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} The session is still in place; repeat the same request until it returns 200. Some of its stored files or its face embedding may already be deleted. Retries converge on a single template.

Bulk delete:
For many KYC sessions at once, use POST /v3/sessions/delete/ with body {"session_numbers": ["1001", "1002"]} or {"delete_all": true}; it accepts the same retention and instruction fields. Up to 20 matching sessions return 200 with a per-session outcome; more return 202 with a job to poll at GET /v3/sessions/delete/{job_id}/.

Migration note:
Until this release the endpoint returned 204 No Content. It now returns 200 OK with the JSON body above. Update clients that assert on 204. The default deletion behavior is unchanged: existing applications stay on delete_with_session until you explicitly change the policy.

When to call:
\- Customer requests data erasure (GDPR Article 17): use deletion_instruction: "privacy_erasure".
\- Operational clean-up after approval while keeping duplicate detection: retain_face_embeddings: true with a finite face_retention_days.
\- Cleaning up test sessions from a staging application.
\- After exporting a decision PDF for long-term archival outside Didit.

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

\</pre>



      
      

Enganxa a

## Suport per a KYC i KYBFunciona tant per a sessions de **Verificació d'usuaris (KYC)** com per a sessions de **Verificació d'empreses (KYB)**. L'`session_id` es resol amb els dos tipus de sessió, i el comportament d'eliminació és el mateix per a tots dos. La retenció de la plantilla biomètrica només s'aplica a les sessions KYC, perquè només aquestes contenen un embedding facial.## Comportament- La sessió s'elimina juntament amb tots els intents de verificació que conté, inclosos els resultats que una nova presentació ha substituït: la seva decisió, les dades extretes, els registres de les funcionalitats associades (verificacions d'identitat, consultes al registre, documents, AML, anàlisi d'IP, etc.), les revisions i el registre d'activitat, i tots els seus fitxers emmagatzemats.
- Eliminar una sessió de **Verificació d'empreses (KYB)** també elimina, de manera recursiva, les verificacions que s'han creat per a les seves persones clau (KYC) i per als seus propietaris corporatius (KYB). La resposta indica quantes n'hi ha al camp `deleted_child_verifications`. Una verificació només enllaçada, com un KYC aprovat existent que s'hagi reutilitzat, no s'elimina.
- Les dades de signatura electrònica s'eliminen amb la sessió: els documents per signar i els seus fitxers originals de Word, els PDF signats, els PDF d'evidències, les imatges de signatura i tots els valors dels camps. Les seves rutes de descàrrega retornen `404`.
- La sessió deixa d'aparèixer immediatament a les respostes de llista i de decisió, i les URL de contingut multimèdia emeses abans de la crida deixen de resoldre's.
- Els lliuraments de webhook pendents de la sessió, i els seus reintents, es descarten.
- El monitoratge AML continu i el monitoratge del registre KYB iniciats per les verificacions eliminades s'aturen.
- L'eliminació és permanent i irreversible. No hi ha cap endpoint per restaurar la sessió, de manera que has d'exportar tot el que necessitis, com ara un PDF de la decisió, abans de cridar-lo.
- La resposta és `200 OK`, enviada un cop completada l'eliminació, amb un cos JSON que indica què ha passat amb les dades biomètriques facials de la sessió. Consulta la [Migració](#migració-des-de-respostes-204) si el teu client encara espera `204`.## Dades en un informe regulatori finalitzatSi la sessió forma part d'un cas amb un informe regulatori finalitzat, la sol·licitud retorna `409` i no s'elimina res. La resposta utilitza `code: in_filed_report` i nomena cada informe:```json theme={null}
{
  "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"
    }
  ]
}
```Elimina cada informe amb [Eliminar informe](https://docs.didit.me/ca/management-api/regulatory-reports/delete.md) i després repeteix l'eliminació. Eliminar l'informe no elimina la sessió; la sessió es mantindrà fins que tornis a cridar aquest endpoint.## Dades biomètriques facials: eliminar o conservarCada sessió KYC amb un selfie de prova de vida conté un embedding facial que alimenta la [Cerca facial 1:N](https://docs.didit.me/ca/core-technology/face-search/overview.md) i la detecció de duplicats. Per defecte, aquest embedding s'elimina amb la sessió (`face_retention_policy: delete_with_session`), de manera que una persona la sessió de la qual has eliminat pot tornar a verificar-se sense que el sistema la marqui com a duplicat.Les aplicacions que necessiten que la detecció de duplicats sobrevisqui a l'eliminació de la sessió poden optar per la **retenció de plantilla biomètrica**. Didit aleshores elimina la sessió i totes les seves dades com de costum, i conserva una plantilla biomètrica facial sense imatges, gestionada per separat i vinculada a l'[usuari](https://docs.didit.me/ca/entities/users/overview.md) de la sessió.> [!WARNING]
>
> Una plantilla biomètrica retinguda és una dada biomètrica. No és anònima, no és transitòria i no s'elimina amb la sessió. Es conserva fins a la seva data de caducitat programada, fins a un termini anterior establert per la llei aplicable, fins a l'eliminació de l'usuari, fins a una sol·licitud d'esborrat per privacitat o fins a una purga explícita. Activa la retenció només quan la instrucció del responsable del tractament i l'avís de privacitat la cobreixin.Què conté i què no conté una plantilla retinguda:| Retingut | Mai retingut |
| - | - |
| La plantilla facial numèrica utilitzada per a la comparació | La imatge facial, el vídeo de prova de vida, les imatges del document, els retalls del retrat i qualsevol altre contingut multimèdia |
| Un nou identificador aleatori de la plantilla i un `provenance_reference` opac | L'identificador, el número, la decisió, els camps d'identitat extrets i els payloads de funcionalitats de la sessió eliminada |
| L'usuari propietari (`vendor_user_uuid`, `vendor_data` actual) | L'estat de la llista de bloqueig, les coincidències prèvies, les etiquetes de frau o les afirmacions d'identitat entre organitzacions |
| Metadades de retenció: `retained_at`, `expires_at`, política, substitució, classe d'instrucció, `instruction_id` i l'identificador del principal que actua | Adreces de correu electrònic dels actors |La retenció es configura en tres llocs, del més general al més específic:1) **Política de l'aplicació** a **Business Console → App Settings → Data retention** o mitjançant `PATCH /v3/webhook/` (`face_retention_policy`, `face_retention_days`). Consulta [Conservació de dades](https://docs.didit.me/ca/console/data-retention.md#conservació-de-plantilles-biomètriques).
2) **Substitució per crida** amb `retain_face_embeddings` en aquest endpoint i a [Eliminar sessions en lot](https://docs.didit.me/ca/management-api/sessions/batch-delete.md).
3) **Classe d'instrucció** amb `deletion_instruction`. Una instrucció `privacy_erasure` sempre preval: purga totes les plantilles retingudes d'aquest usuari i mai no en retén de noves.### Cos de la sol·licitudTots els camps són opcionals. Omet el cos per seguir la política de l'aplicació.| Camp | Tipus | Descripció |
| - | - | - |
| `retain_face_embeddings` | booleà o null | Substitueix la política de l'aplicació per a aquesta eliminació. `true` reté una plantilla, `false` elimina l'embedding amb la sessió, `null` o omès segueix la política. |
| `face_retention_days` | enter (1-3650) | Durada finita de conservació de la plantilla. És obligatori quan es reté una plantilla, tret que l'aplicació ja defineixi `face_retention_days`. |
| `face_retention_deadline` | datetime (ISO 8601) | Caducitat màxima opcional. Ha de ser en el futur. |
| `deletion_instruction` | `operational_session_delete` (per defecte) o `privacy_erasure` | La classe d'instrucció que dones. `privacy_erasure` purga totes les plantilles retingudes de l'usuari de la sessió abans d'eliminar-la i no es pot combinar amb `retain_face_embeddings: true`. |
| `instruction_id` | cadena (màx. 255) | La teva referència duradora per a aquesta instrucció, per exemple l'identificador del teu tiquet d'esborrat. Es registra a la traça d'auditoria i a qualsevol plantilla retinguda. Si l'omets, Didit en genera una, visible al detall de la plantilla. |### Resposta```json theme={null}
{
  "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
}
```| Camp | Descripció |
| - | - |
| `session_id` | La sessió eliminada. |
| `session_number` | El número de la sessió eliminada. |
| `face_retention_outcome` | Què ha passat amb les dades biomètriques facials de la sessió. Consulta la taula següent. |
| `biometric_template_uuid` | Identificador de la plantilla biomètrica retinguda quan `face_retention_outcome` és `retained_with_user`; `null` en cas contrari. |
| `biometric_template_expires_at` | Quan s'elimina la plantilla biomètrica retinguda; `null` quan no se'n reté cap. |
| `deleted_child_verifications` | Per a una sessió KYB, quantes verificacions que va crear (les sessions KYC de les seves persones clau i les sessions KYB dels seus titulars corporatius, de manera recursiva) es van eliminar amb ella. Sempre `0` per a una sessió KYC. || `face_retention_outcome` | Significat |
| - | - |
| `deleted` | La sessió i el seu embedding facial s'eliminen. Comportament per defecte. |
| `retained_with_user` | La sessió s'elimina. Una plantilla biomètrica sense imatges es manté vinculada a l'usuari; el seu identificador és `biometric_template_uuid`. Gestiona-la amb l'[API de plantilles biomètriques](https://docs.didit.me/ca/management-api/biometric-templates/overview.md). |
| `none` | La sessió no tenia cap embedding facial per eliminar o retenir (per exemple, una sessió KYB, o una sessió KYC sense selfie de prova de vida). |
| `ineligible_no_vendor_user` | S'ha demanat la retenció, però la sessió no està vinculada a cap usuari (es va crear sense `vendor_data`), així que no hi ha res a què vincular una plantilla. La sessió i el seu embedding s'eliminen. El resultat no elegible queda registrat a la traça d'auditoria. |La resposta confirma que Didit ha acceptat i aplicat la teva instrucció d'eliminació. No és un certificat d'esborrat: guarda el `instruction_id` al teu propi registre d'esborrats perquè després puguis correlacionar la traça d'auditoria.### Durada de la retenció i caducitatCada plantilla retinguda té un `expires_at` finit. Didit el fixa al més primerenc dels valors següents:1) `face_retention_days` de la sol·licitud o, quan la sol·licitud l'omet, el `face_retention_days` de l'aplicació;
2) la finestra general de conservació de dades de l'aplicació, quan n'hi ha una de configurada;
3) `face_retention_deadline` de la sol·licitud, quan se n'ha proporcionat un.Una sol·licitud que retingués una plantilla sense cap durada finita es rebutja amb `400` i no s'elimina res. Les plantilles retingudes no poden sobreviure a la instrucció del client aplicable més primerenca, a la finalització de la finalitat, a una caducitat configurada, a una instrucció d'esborrat de l'interessat ni a un termini legal aplicable a les dades biomètriques. Tu ets responsable de triar una durada que compleixi les lleis que s'apliquen als teus usuaris; tria una de més curta sempre que una norma aplicable ho exigeixi.### Esborrat per motius de privacitatEnvia `deletion_instruction: "privacy_erasure"` quan actuïs en resposta a una sol·licitud de l'interessat. Didit purga totes les plantilles biomètriques retingudes vinculades a l'usuari de la sessió i, després, esborra la sessió i el seu embedding facial. La política de conservació de l'aplicació no pot anul·lar una instrucció d'esborrament per privacitat, i `retain_face_embeddings: true` es rebutja amb `400`.Esborrar l'usuari amb [Esborrament en lot d'usuaris](https://docs.didit.me/ca/management-api/users/delete.md) també purga les seves plantilles retingudes.## Què no es veu afectatEsborrar una sessió no neteja aquests elements automàticament. Si gestiones una sol·licitud de dret de supressió, tracta'ls per separat.- **Les entrades de la llista de bloqueig** creades a partir de la sessió (facial o de document) es mantenen. Elimina-les de la [llista de bloqueig](https://docs.didit.me/ca/entities/users/blocklist.md). Una entrada facial a la llista de bloqueig conserva la seva pròpia entrada biomètrica, independent de qualsevol plantilla retinguda.
- **Els tokens de compartició** ja emesos per a la sessió no es revoquen, però ja no hi ha res que puguin importar: una [importació](https://docs.didit.me/ca/sessions-api/share-session/import.md) amb un d'aquests tokens retorna `400` amb `{"share_token": ["Original session does not exist."]}`.
- **Els webhooks ja lliurats** de la sessió no es veuen afectats. Els lliuraments encara pendents a la cua, i els seus reintents, es descarten. No s'emet cap webhook per l'esborrament en si.
- **Els crèdits ja consumits** per la verificació no es reemborsen.
- **Les còpies signades ja enviades per correu electrònic** a un signant mitjançant un pas de signatura electrònica són a la safata d'entrada del signant i no es veuen afectades.
- L'entitat pare **Usuari** o **Empresa** no s'esborra. Utilitza [Esborrar usuaris](https://docs.didit.me/ca/management-api/users/delete.md) o [Esborrar empreses](https://docs.didit.me/ca/management-api/businesses/delete.md) per a aquestes. Si el retrat del perfil de l'usuari provenia de la sessió esborrada, el retrat s'elimina.
- Una **plantilla biomètrica retinguda** (només si hi has optat) es manté fins que caduca o fins que la purgues. Purga-la amb l'[API de plantilles biomètriques](https://docs.didit.me/ca/management-api/biometric-templates/purge.md), esborrant l'usuari, o repetint l'esborrament d'una altra sessió del mateix usuari amb `deletion_instruction: "privacy_erasure"`.## Exemples> [tab] Per defecte (política de l'aplicació)
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> Resposta en una aplicació que no hi ha optat:
>
> ```json theme={null}
> {
>   "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
> }
> ```> [tab] Conservar una plantilla biomètrica
>
> ```bash theme={null}
> 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"}'
> ```
>
> ```json theme={null}
> {
>   "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
> }
> ```> [tab] Forçar l'esborrament en una aplicació que n'ha optat
>
> ```bash theme={null}
> 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}'
> ```
>
> ```json theme={null}
> {
>   "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
> }
> ```> [tab] Esborrament per privacitat
>
> ```bash theme={null}
> 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"}'
> ```
>
> Primer es purga cada plantilla retinguda de l'usuari de la sessió i, després, s'esborra la sessió:
>
> ```json theme={null}
> {
>   "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
> }
> ```> [tab] Sessió sense usuari
>
> Una sessió creada sense `vendor_data` no té cap usuari al qual vincular una plantilla:
>
> ```bash theme={null}
> 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}'
> ```
>
> ```json theme={null}
> {
>   "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
> }
> ```> [tab] Sessió de verificació d'empreses (KYB)
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/bs-01HJX1.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> La **Verificació d'empreses (KYB)** s'esborra juntament amb les tres verificacions que va crear per a les seves persones clau:
>
> ```json theme={null}
> {
>   "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
> }
> ```## Errors| Estat | Quan | Cos |
| - | - | - |
| `400` | `privacy_erasure` combinat amb `retain_face_embeddings: true` | `{"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]}` |
| `400` | Es demana conservació sense una durada finita, ni a la sol·licitud ni a l'aplicació | `{"detail": "A finite biometric-template retention duration is required."}` |
| `403` | La credencial no té `delete:sessions` o no és propietària de la sessió | `{"detail": "You do not have permission to perform this action."}` |
| `404` | Sessió inexistent o ja esborrada | `{"detail": "Not found."}` |
| `503` | Un servei d'emmagatzematge o un proveïdor de monitoratge no estava disponible en esborrar la sessió. | `{"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 magatzem biomètric no estava disponible en conservar o purgar una plantilla. Els reintents conflueixen en una única plantilla. | `{"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."}` |En cas de `400` no s'esborra res. En cas de `503` la sessió encara existeix: repeteix la mateixa sol·licitud fins que retorni `200`. Alguns dels seus fitxers emmagatzemats o el seu embedding facial poden ja haver estat esborrats, així que no hi confiïs després d'un `503`.## PermísCal `delete:sessions`. El mateix permís cobreix les sessions de Verificació d'usuaris (KYC) i de Verificació d'empreses (KYB), i l'anul·lació de la conservació.## Esborrament en lotPer a operacions massives sobre sessions KYC, utilitza `POST /v3/sessions/delete/`. Accepta els mateixos camps de conservació i d'instrucció. Fins a 20 sessions coincidents s'esborren en la mateixa sol·licitud, amb un resultat per sessió; les sessions addicionals es processen com a [tasca d'esborrament](https://docs.didit.me/ca/management-api/sessions/get-deletion-job.md). Consulta [Esborrament en lot de sessions](https://docs.didit.me/ca/management-api/sessions/batch-delete.md).## Migració des de respostes 204Fins a aquesta versió, l'endpoint retornava `204 No Content`. Ara retorna `200 OK` amb el cos JSON documentat més amunt, perquè cada esborrament informi del seu `face_retention_outcome`. Actualitza els clients que comproven `204`.El comportament per defecte no canvia: les aplicacions existents es mantenen amb `delete_with_session`, i cap migració activa la conservació en nom teu. Activa-la explícitament a la Console o amb `PATCH /v3/webhook/`.## Relacionat- [Plantilles biomètriques](https://docs.didit.me/ca/management-api/biometric-templates/overview.md)
- [Conservació de dades](https://docs.didit.me/ca/console/data-retention.md)
- [Visió general de les sessions](https://docs.didit.me/ca/sessions-api/overview.md)


## OpenAPI

````yaml ca/openapi-25.json DELETE /v3/session/{sessionId}/delete/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/delete/:
    delete:
      tags:
        - Sessions
      summary: Elimina una sessió de verificació (KYC o KYB)
      description: >-
        Elimina una sola sessió de verificació, Verificació d'usuaris (KYC) o
        Verificació d'empreses (KYB), pel seu `session_id`. L'identificador es
        resol primer amb les sessions de KYC i després amb les de KYB, de manera
        que tots dos tipus s'eliminen a través d'aquesta única URL.


        **Què s'elimina:**

        - La sessió i cada intent de verificació que conté, inclosos els
        resultats que un reenviament va substituir: la decisió, les dades
        extretes, tots els registres de funcionalitats relacionades (verificació
        d'identitat, cara, prova de vida, coincidència facial, AML,
        comprovacions de registres, anàlisi d'IP, etc.), les seves revisions i
        el seu registre d'activitat.

        - Tots els fitxers emmagatzemats propietat de la sessió: fotos de
        l'anvers/revers del document (variants completes, retallades i
        desenfocades per privacitat), vídeos de captura de documents, retalls de
        retrats, imatges de retrat i signatura del xip NFC, imatges de
        referència facial, vídeos de prova de vida, imatges d'origen/destinació
        de coincidència facial, documents de Comprovant de domicili i qualsevol
        fitxer addicional pujat (KYC); documents d'empresa pujats i fitxers
        addicionals (KYB). Documents de Signatura electrònica, PDF signats, PDF
        de proves i imatges de signatures (KYC i KYB): les seves rutes de
        baixada deixen de funcionar. Les URL de mitjans emeses anteriorment
        (`https://<media-host>/...`) deixen de resoldre's.

        - Les dades facials de la sessió. El seu embedding facial també
        s'elimina, tret que triïs conservar una plantilla sense imatges
        (consulta **Dades biomètriques facials**).

        - Els lliuraments de webhook encara en cua per a la sessió i els seus
        reintents. Els webhooks ja lliurats no es veuen afectats.

        - Per a una sessió de Verificació d'empreses (KYB): les verificacions
        que va crear per a les seves persones clau (KYC) i els seus propietaris
        corporatius (KYB), de manera recursiva, notificades com a
        `deleted_child_verifications`. Una verificació a la qual només enllaça,
        com ara un KYC aprovat existent que hagi reutilitzat, no s'elimina.


        La sessió desapareix de tots els endpoints de lectura immediatament:
        `GET /v3/session/{sessionId}/decision/` retorna `404` i `GET
        /v3/sessions/` deixa de llistar-la. El monitoratge AML continu i el
        monitoratge de registres mercantils de KYB iniciats per les
        verificacions eliminades s'aturen.


        **Què no es veu afectat:** les entrades a la llista de bloqueig creades
        a partir d'aquesta sessió (facials o de documents) **no** s'eliminen;
        gestiona-les amb els endpoints de la llista de bloqueig. Els tokens de
        compartició emesos per a la sessió no es revoquen, però ja no queda res
        per importar: una importació amb un d'ells retorna `400` amb
        `{"share_token": ["Original session does not exist."]}`. Els crèdits ja
        consumits **no** es reemborsen. L'entitat d'usuari o d'empresa principal
        **no** s'elimina; fes servir `POST /v3/users/delete/` o `POST
        /v3/businesses/delete/` per a aquests casos. Si el retrat de perfil de
        l'usuari procedia d'aquesta sessió, el retrat s'elimina conjuntament.


        **Dades biomètriques facials:** per defecte, l'embedding facial de la
        sessió s'elimina amb la sessió (`face_retention_outcome: deleted`). Una
        aplicació que hagi activat la conservació de plantilles biomètriques
        (`face_retention_policy: retain_until_user_deleted` a `PATCH
        /v3/webhook/`), o una sol·licitud amb `retain_face_embeddings: true`,
        conserva una plantilla biomètrica facial gestionada per separat i sense
        imatges ancorada a l'usuari de la sessió (`retained_with_user`) perquè
        la detecció de duplicats, la Cerca facial i l'autenticació biomètrica
        continuïn funcionant. La plantilla mai conté la imatge de la cara,
        fitxers multimèdia, camps d'identitat, la decisió ni l'id de la sessió
        eliminada; com a dada biomètrica, s'elimina a
        `biometric_template_expires_at`, o abans si s'elimina l'usuari, per
        supressió per motius de privacitat o per una purga explícita a través de
        `/v3/biometric-templates/`. Una sessió sense un usuari vinculat no pot
        conservar cap plantilla (`ineligible_no_vendor_user`). Envia
        `deletion_instruction: privacy_erasure` per a sol·licituds dels titulars
        de les dades: purga totes les plantilles conservades per a aquest usuari
        i mai en conserva cap de nova.


        **Irreversible:** l'eliminació és permanent i no hi ha cap endpoint de
        restauració. Exporta tot el que necessitis (per exemple, un PDF de
        decisió) abans de cridar-lo.


        **Efectes secundaris:** no s'emet cap webhook per a les eliminacions.


        **Resposta:** `200 OK` un cop completada l'eliminació, amb un cos JSON
        que informa de `face_retention_outcome`, la caducitat de la plantilla
        conservada i, per a una sessió de KYB, `deleted_child_verifications`.
        Les versions anteriors d'aquest endpoint retornaven `204 No Content`;
        actualitza els clients que verifiquin `204`. Guarda el teu
        `instruction_id` al teu propi registre de supressió.


        **Idempotència:** no és idempotent a nivell d'HTTP: la primera crida
        retorna `200`; repetir-la retorna `404` perquè la sessió ja no es resol.
        Després d'un `503`, la sessió continua existint; repeteix la mateixa
        sol·licitud per acabar d'eliminar-la.


        **Autenticació:** envia la clau d'API de la teva aplicació a la
        capçalera `x-api-key`; la sessió ha de pertànyer a aquesta aplicació.
        Els tokens d'accés d'usuari de la Console (`Authorization: Bearer ...`)
        també poden cridar aquest endpoint quan disposen del permís
        `delete:sessions`. Els errors d'autenticació i de permisos retornen tots
        dos `403`; aquesta API mai retorna `401`.


        **Límit de freqüència:** pressupost d'escriptura compartit de 300
        sol·licituds/min per clau d'API entre tots els endpoints
        POST/PATCH/DELETE; superar-lo retorna `429`.


        Per eliminar de manera massiva sessions de KYC pel seu `session_number`
        numèric, fes servir `POST /v3/sessions/delete/` en el seu lloc.


        **Informes regulatoris presentats:** si les dades seleccionades formen
        part d'un informe regulatori finalitzat, tota la sol·licitud es rebutja
        amb `409` i no s'elimina res. El cos utilitza `code: in_filed_report` i
        identifica cada informe amb `uuid`, `report_number`, `report_type` i
        `case_uuid`. Elimina els informes i després repeteix la sol·licitud.
      operationId: delete_v3_session_by_id
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID (`session_id`) de la sessió de Verificació d'usuaris (KYC) o de
            Verificació d'empreses (KYB) que cal suprimir, tal com es va
            retornar en crear la sessió. Ha de ser un UUID canònic separat per
            guions; un valor que no sigui un UUID no coincideix amb la ruta i
            retorna `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      requestBody:
        required: false
        description: >-
          Opcional. Omet el cos completament per seguir la política de
          conservació de l'aplicació amb una supressió operativa.
        content:
          application/json:
            schema:
              type: object
              properties:
                retain_face_embeddings:
                  type: boolean
                  nullable: true
                  description: >-
                    Sobreescriu la `face_retention_policy` de l'aplicació per a
                    aquesta supressió. `true` manté una plantilla biomètrica
                    facial sense imatge vinculada a l'usuari de la sessió
                    després que se suprimeixi la sessió; `false` suprimeix
                    l'embedding facial amb la sessió; omet o posa `null` per
                    seguir la política de l'aplicació. S'ignora en sessions de
                    KYB i en sessions sense embedding facial.
                  example: true
                face_retention_days:
                  type: integer
                  minimum: 1
                  maximum: 3650
                  description: >-
                    Durada de conservació finita, en dies, per a una plantilla
                    conservada. Obligatori quan es conserva una plantilla tret
                    que l'aplicació ja defineixi `face_retention_days`. El camp
                    `expires_at` de la plantilla és la data més primerenca entre
                    aquesta durada, la finestra general de conservació de dades
                    de l'aplicació i `face_retention_deadline`.
                  example: 365
                face_retention_deadline:
                  type: string
                  format: date-time
                  description: >-
                    Caducitat estricta opcional per a una plantilla conservada.
                    Ha de ser posterior a la data actual.
                  example: '2027-08-28T00:00:00Z'
                deletion_instruction:
                  type: string
                  enum:
                    - operational_session_delete
                    - privacy_erasure
                  default: operational_session_delete
                  description: >-
                    La classe d'instrucció que estàs donant.
                    `operational_session_delete` suprimeix la sessió i conserva
                    una plantilla només quan la política o
                    `retain_face_embeddings` així ho indiquen. `privacy_erasure`
                    purga totes les plantilles biomètriques conservades
                    vinculades a l'Usuari de la sessió abans de suprimir la
                    sessió, no pot ser anul·lada per la política de l'aplicació
                    i no es pot combinar amb `retain_face_embeddings: true`
                    (`400`).
                  example: operational_session_delete
                instruction_id:
                  type: string
                  maxLength: 255
                  description: >-
                    La teva referència persistent per a aquesta instrucció de
                    supressió (per exemple, l'id d'un tiquet de supressió). Es
                    registra al registre d'auditoria i a qualsevol plantilla
                    conservada. Didit la genera si s'omet.
                  example: dsar-2026-0142
            examples:
              Retain a biometric template:
                summary: >-
                  Elimina la sessió i mantén una plantilla sense imatges durant
                  365 dies
                value:
                  retain_face_embeddings: true
                  face_retention_days: 365
                  instruction_id: post-approval-cleanup-2026-08
              Force deletion on an opted-in application:
                summary: >-
                  Elimina l'embedding facial independentment de la política de
                  l'aplicació
                value:
                  retain_face_embeddings: false
              Privacy erasure:
                summary: >-
                  Sol·licitud de l'interessat: suprimeix la sessió i purga totes
                  les plantilles conservades per a aquesta persona
                value:
                  deletion_instruction: privacy_erasure
                  instruction_id: dsar-2026-0142
      responses:
        '200':
          description: >-
            Sessió suprimida. El cos informa de què ha passat amb les dades
            biomètriques facials de la sessió i, per a una sessió de KYB,
            quantes verificacions que va crear es van suprimir amb ella.
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id:
                    type: string
                    format: uuid
                    description: La sessió eliminada.
                  session_number:
                    type: integer
                    nullable: true
                    description: El número de la sessió eliminada.
                  face_retention_outcome:
                    type: string
                    enum:
                      - retained_with_user
                      - deleted
                      - none
                      - ineligible_no_vendor_user
                    description: >-
                      Què ha passat amb les dades biomètriques facials de la
                      sessió. `deleted`: l'embedding facial s'ha suprimit amb la
                      sessió (per defecte). `retained_with_user`: la sessió se
                      suprimeix i una plantilla biomètrica sense imatges es
                      manté vinculada a l'usuari; consulta
                      `biometric_template_uuid`. `none`: la sessió no tenia cap
                      embedding facial (per exemple, una sessió de KYB o una
                      sessió de KYC sense selfie de prova de vida).
                      `ineligible_no_vendor_user`: s'ha sol·licitat la
                      conservació però la sessió no té cap usuari enllaçat, de
                      manera que l'embedding s'ha suprimit amb la sessió. Una
                      fallada a l'emmagatzematge biomètric mai es notifica
                      mitjançant aquest camp en aquest endpoint: retorna `503` i
                      la sessió no se suprimeix.
                  biometric_template_uuid:
                    type: string
                    format: uuid
                    nullable: true
                    description: >-
                      ID de la plantilla biomètrica conservada quan
                      `face_retention_outcome` és `retained_with_user`; `null`
                      en cas contrari. Gestiona-la mitjançant
                      `/v3/biometric-templates/{template_uuid}/`.
                  biometric_template_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Quan s'elimina la plantilla biomètrica conservada, quan
                      `face_retention_outcome` és `retained_with_user`; `null`
                      quan no es conserva cap plantilla.
                  deleted_child_verifications:
                    type: integer
                    description: >-
                      Per a una sessió de Verificació d'empreses (KYB): quantes
                      verificacions que va crear (les sessions de KYC de les
                      seves persones clau i les sessions de KYB dels seus
                      propietaris corporatius, de forma recursiva) s'han
                      eliminat amb ella. Sempre `0` per a una sessió de KYC.
              examples:
                Deleted (default):
                  value:
                    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
                Retained with User:
                  value:
                    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
                'Ineligible: no User':
                  summary: >-
                    Conservació de dades sol·licitada en una sessió creada sense
                    vendor_data
                  value:
                    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
                KYB session:
                  value:
                    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
                  summary: >-
                    Una verificació d'empresa eliminada juntament amb les tres
                    verificacions que va crear per a les seves persones clau
        '400':
          description: Error de validació — no s'elimina res.
          content:
            application/json:
              examples:
                Privacy erasure cannot retain:
                  value:
                    retain_face_embeddings:
                      - Privacy erasure cannot retain biometric templates.
                No finite retention duration:
                  summary: >-
                    Conservació de dades sol·licitada sense face_retention_days
                    a la sol·licitud o a l'aplicació
                  value:
                    detail: >-
                      A finite biometric-template retention duration is
                      required.
        '403':
          description: >-
            Fallada d'autenticació o de permís. Si falta la clau també es
            retorna `403`; una clau incorrecta, revocada o caducada retorna
            `401`. Excepció: quan el `sessionId` no es resol en una sessió
            activa, la cerca de titularitat prèvia a l'autenticació retorna
            primer `404`, fins i tot si falten les credencials o no són vàlides.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: Falta la capçalera x-api-key, o la clau no és vàlida
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Insufficient permission:
                  summary: >-
                    Token d'usuari sense delete:sessions, o credencials d'una
                    aplicació que no és propietària de la sessió
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            No existeix cap sessió activa de KYC o KYB amb aquest `session_id` —
            l'id és desconegut o la sessió ja s'havia suprimit (repetir una
            supressió satisfactòria porta aquí).
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not Found:
                  summary: Sessió desconeguda o ja suprimida
                  value:
                    detail: Not found.
        '409':
          description: >-
            La sessió forma part d'un informe regulador finalitzat. No se
            suprimeix res.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InFiledReportError'
        '429':
          description: >-
            S'ha superat el límit de freqüència d'escriptura compartit (300
            sol·licituds POST/PATCH/DELETE per minut per clau d'API). Revisa les
            capçaleres de resposta `Retry-After` i `X-RateLimit-*` abans de
            reintentar.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Rate limited:
                  summary: Pressupost d'escriptura esgotat
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
        '503':
          description: >-
            L'eliminació no s'ha pogut completar perquè un servei
            d'emmagatzematge, un magatzem biomètric o un proveïdor de
            monitoratge no estaven disponibles. La sessió continua al seu lloc;
            repeteix la mateixa sol·licitud fins que retorni `200`. És possible
            que alguns dels seus fitxers emmagatzemats o el seu embedding facial
            ja s'hagin eliminat, de manera que no hi confiïs després d'un `503`.
            Els reintents convergeixen en una única plantilla.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Session deletion unavailable:
                  summary: >-
                    Un servei d'emmagatzematge o un proveïdor de monitoratge no
                    estava disponible
                  value:
                    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.
                Biometric store unavailable:
                  summary: >-
                    Un magatzem biomètric no estava disponible en conservar o
                    purgar una plantilla
                  value:
                    detail: >-
                      The biometric-template operation could not finish because
                      an external store is unavailable. The operation is
                      retryable.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl (default policy)
          source: |-
            curl -X DELETE \
              https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: curl
          label: curl (retain template)
          source: |-
            curl -X DELETE \
              https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"retain_face_embeddings": true, "face_retention_days": 365}'
        - lang: curl
          label: curl (privacy erasure)
          source: |-
            curl -X DELETE \
              https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"deletion_instruction": "privacy_erasure", "instruction_id": "dsar-2026-0142"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.delete(
                "11111111-2222-3333-4444-555555555555",
                retain_face_embeddings=True,
                face_retention_days=365,
                instruction_id="post-approval-cleanup-2026-08",
            )
            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.delete("11111111-2222-3333-4444-555555555555", {
              retain_face_embeddings: true,
              face_retention_days: 365,
              instruction_id: "post-approval-cleanup-2026-08",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.Delete(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsDeleteParams{\n\tRetainFaceEmbeddings: didit.Bool(true),\n\tFaceRetentionDays:    didit.Int(365),\n\tInstructionID:        didit.String(\"post-approval-cleanup-2026-08\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.SessionsDeleteParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().delete("11111111-2222-3333-4444-555555555555",
            SessionsDeleteParams.builder()
                    .retainFaceEmbeddings(true)
                    .faceRetentionDays(365L)
                    .instructionId("post-approval-cleanup-2026-08")
                    .build());
            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->delete('11111111-2222-3333-4444-555555555555', [
                'retain_face_embeddings' => true,
                'face_retention_days' => 365,
                'instruction_id' => 'post-approval-cleanup-2026-08',
            ]);

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

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.sessions.delete(
              "11111111-2222-3333-4444-555555555555",
              retain_face_embeddings: true,
              face_retention_days: 365,
              instruction_id: "post-approval-cleanup-2026-08"
            )
            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.DeleteAsync("11111111-2222-3333-4444-555555555555",
            new SessionsDeleteParams

            {
                RetainFaceEmbeddings = true,
                FaceRetentionDays = 365,
                InstructionId = "post-approval-cleanup-2026-08",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    InFiledReportError:
      type: object
      description: >-
        L'eliminació s'ha rebutjat perquè les dades seleccionades formen part
        d'un informe regulador finalitzat. No s'ha eliminat res. Elimina
        l'informe i després repeteix la sol·licitud.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - in_filed_report
          description: >-
            Codi d'error estable per a una eliminació bloquejada per un informe
            normatiu finalitzat.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: >-
            Informes que bloquegen la supressió d'una persona, empresa, cas o
            sessió.
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/FiledReportTransaction'
          description: >-
            Transaccions que bloquegen l'eliminació d'una transacció, cadascuna
            amb els informes que la llisten.
    FiledRegulatoryReport:
      type: object
      description: Un informe regulador finalitzat que impedeix l'eliminació sol·licitada.
      required:
        - uuid
        - report_number
        - report_type
        - case_uuid
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID de l'informe.
        report_number:
          type: string
          description: Número d'informe mostrat a la Console (per exemple, SAR-0001).
        report_type:
          type: string
          enum:
            - SAR
            - STR
            - CTR
            - TTR
            - UTR
            - IFT
            - CBR
            - TFR
          description: Tipus d'informe regulador.
        case_uuid:
          type: string
          format: uuid
          description: Cas al qual pertany l'informe.
    FiledReportTransaction:
      type: object
      description: >-
        Una transacció que no es pot suprimir perquè un informe regulador
        finalitzat la inclou.
      required:
        - uuid
        - transaction_id
        - reports
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID de transacció de Didit.
        transaction_id:
          type: string
          description: >-
            L'identificador de la transacció proporcionat quan es va crear la
            transacció.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: Informes finalitzats que inclouen aquesta transacció.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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