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

# API para eliminar sessão: direito ao apagamento RGPD

> Elimine uma sessão KYC ou KYB e respetivos dados na Didit. Por defeito, o embedding facial é apagado; pode manter um template biométrico sem imagem.



Prompt para eliminar sessão
        Copiar o prompt para a área de transferência



      
      

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



      
      

Colar em

## Suporte a KYC e KYBFunciona para sessões de **Verificação de utilizadores (KYC)** e de **Verificação de empresas (KYB)**. O `session_id` é resolvido nos dois tipos de sessão, e o comportamento de eliminação é o mesmo para ambos. A retenção do template biométrico aplica-se apenas às sessões KYC, porque só estas incluem um embedding facial.## Comportamento- A sessão é eliminada juntamente com todas as tentativas de verificação que contém, incluindo os resultados substituídos por uma nova submissão: a sua decisão, os dados extraídos, os registos das funcionalidades associadas (verificações de identidade, consultas a registos de empresas, documentos, AML, análise de IP e assim por diante), as respetivas revisões e o registo de atividade, e todos os ficheiros armazenados.
- Eliminar uma sessão de **Verificação de empresas (KYB)** elimina também, de forma recursiva, as verificações que esta criou para as suas pessoas-chave (KYC) e para os seus proprietários da empresa (KYB). A resposta indica o número de verificações eliminadas em `deleted_child_verifications`. Uma verificação à qual a sessão apenas está ligada, como um KYC aprovado já existente que foi reutilizado, não é eliminada.
- Os dados de assinatura eletrónica são eliminados em conjunto: os documentos a assinar e os respetivos ficheiros Word originais, os PDF assinados, os PDF de prova, as imagens de assinatura e todos os valores dos campos. Os respetivos caminhos de transferência devolvem `404`.
- A sessão deixa de aparecer imediatamente nas respostas de listagem e de decisão, e os URLs de multimédia emitidos antes da chamada deixam de funcionar.
- As entregas de webhook ainda em fila para a sessão, bem como as respetivas novas tentativas, são descartadas.
- A monitorização AML contínua e a monitorização do registo de empresas KYB iniciadas pelas verificações eliminadas terminam.
- A eliminação é permanente e irreversível. Não existe endpoint de restauro, por isso exporte tudo o que precisar, como um PDF de decisão, antes de chamar este endpoint.
- A resposta é `200 OK`, enviada apenas depois de a eliminação estar concluída, com um corpo JSON que indica o que aconteceu aos dados biométricos faciais da sessão. Consulte a [Migração](#migração-das-respostas-204) se o seu cliente ainda esperar `204`.## Dados num relatório regulatório finalizadoSe a sessão fizer parte de um caso com um relatório regulatório finalizado, o pedido devolve `409` e nada é eliminado. A resposta usa `code: in_filed_report` e indica cada relatório:```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"
    }
  ]
}
```Elimine cada relatório com [Eliminar relatório](https://docs.didit.me/pt/management-api/regulatory-reports/delete.md) e, em seguida, repita a eliminação. Eliminar o relatório não elimina a sessão; a sessão permanece até voltar a chamar este endpoint.## Dados biométricos faciais: eliminar ou conservarCada sessão KYC com uma selfie de prova de vida contém um embedding facial que alimenta a [Pesquisa facial 1:N](https://docs.didit.me/pt/core-technology/face-search/overview.md) e a deteção de duplicados. Por predefinição, esse embedding é eliminado com a sessão (`face_retention_policy: delete_with_session`), para que uma pessoa cuja sessão tenha sido eliminada possa voltar a verificar-se sem ser sinalizada como duplicado.As aplicações que precisem de manter a deteção de duplicados após a eliminação de uma sessão podem optar pela **conservação do template biométrico**. Nesse caso, a Didit elimina a sessão e todos os seus dados, como habitualmente, e mantém um único template biométrico facial, sem imagens e gerido em separado, associado ao [Utilizador](https://docs.didit.me/pt/entities/users/overview.md) da sessão.> [!WARNING]
>
> Um template biométrico conservado é um dado biométrico. Não é anónimo, não é transitório e não é eliminado com a sessão. Mantém-se até à sua data de expiração agendada, até um prazo anterior imposto pela lei aplicável, até à eliminação do Utilizador, até um pedido de eliminação por motivos de privacidade ou até uma purga explícita. Ative a conservação apenas quando a instrução que dá enquanto responsável pelo tratamento e o seu aviso de privacidade a abrangerem.O que um template conservado contém e o que nunca contém:| Conservado | Nunca conservado |
| - | - |
| O template facial numérico usado para correspondência | A imagem facial, o vídeo de prova de vida, as imagens do documento, os recortes de retrato e qualquer outro conteúdo multimédia |
| Um novo id aleatório do template e um `provenance_reference` opaco | O id, o número, a decisão, os campos de identidade extraídos ou os payloads das funcionalidades da sessão eliminada |
| O Utilizador proprietário (`vendor_user_uuid`, `vendor_data` atual) | O estado de lista de bloqueio, correspondências anteriores, rótulos de fraude ou alegações de identidade entre organizações |
| Metadados de conservação: `retained_at`, `expires_at`, política, substituição, classe de instrução, `instruction_id` e o id da entidade que atua | Endereços de e-mail dos autores das ações |A conservação é configurada em três locais, do mais abrangente ao mais específico:1) **Política da aplicação** em **Business Console → App Settings → Data retention** ou através de `PATCH /v3/webhook/` (`face_retention_policy`, `face_retention_days`). Consulte [Conservação de dados](https://docs.didit.me/pt/console/data-retention.md#retenção-de-modelo-biométrico).
2) **Substituição por pedido** com `retain_face_embeddings` neste endpoint e em [Batch Delete Sessions](https://docs.didit.me/pt/management-api/sessions/batch-delete.md).
3) **Classe de instrução** com `deletion_instruction`. Uma instrução `privacy_erasure` tem sempre prioridade: purga todos os templates conservados desse Utilizador e nunca conserva um novo.### Corpo do pedidoTodos os campos são opcionais. Omita o corpo para seguir a política da aplicação.| Campo | Tipo | Descrição |
| - | - | - |
| `retain_face_embeddings` | boolean ou null | Substitui a política da aplicação para esta eliminação. `true` conserva um template, `false` elimina o embedding com a sessão, `null` ou omitido segue a política. |
| `face_retention_days` | integer (1-3650) | Duração finita de conservação do template. Obrigatório quando um template é conservado, a menos que a aplicação já defina `face_retention_days`. |
| `face_retention_deadline` | datetime (ISO 8601) | Data limite rígida de expiração, opcional. Tem de ser futura. |
| `deletion_instruction` | `operational_session_delete` (predefinido) ou `privacy_erasure` | A classe da instrução que está a dar. `privacy_erasure` purga todos os templates conservados do Utilizador da sessão antes de eliminar a sessão e não pode ser combinado com `retain_face_embeddings: true`. |
| `instruction_id` | string (máximo 255) | A sua referência duradoura para esta instrução, por exemplo o id do seu pedido de eliminação. Fica registada no registo de auditoria e em qualquer template conservado. Se a omitir, a Didit gera uma, visível nos detalhes do template. |### 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
}
```| Campo | Descrição |
| - | - |
| `session_id` | A sessão eliminada. |
| `session_number` | O número da sessão eliminada. |
| `face_retention_outcome` | O que aconteceu aos dados biométricos faciais da sessão. Consulte a tabela abaixo. |
| `biometric_template_uuid` | Id do template biométrico conservado quando `face_retention_outcome` é `retained_with_user`; `null` nos restantes casos. |
| `biometric_template_expires_at` | Momento em que o template biométrico conservado é eliminado; `null` quando nenhum template é conservado. |
| `deleted_child_verifications` | Para uma sessão KYB, o número de verificações que criou (as sessões KYC das suas pessoas-chave e as sessões KYB dos seus proprietários empresariais, recursivamente) e que foram eliminadas com ela. É sempre `0` numa sessão KYC. || `face_retention_outcome` | Significado |
| - | - |
| `deleted` | A sessão e o seu embedding facial são eliminados. Comportamento predefinido. |
| `retained_with_user` | A sessão é eliminada. Um único template biométrico sem imagens mantém-se associado ao Utilizador; o seu id é `biometric_template_uuid`. Faça a gestão através da [Biometric Templates API](https://docs.didit.me/pt/management-api/biometric-templates/overview.md). |
| `none` | A sessão não tinha embedding facial para eliminar ou conservar (por exemplo, uma sessão KYB ou uma sessão KYC sem selfie de prova de vida). |
| `ineligible_no_vendor_user` | A conservação foi pedida, mas a sessão não está associada a um Utilizador (foi criada sem `vendor_data`), pelo que nada pode servir de âncora a um template. A sessão e o seu embedding são eliminados. O resultado de inelegibilidade fica registado no registo de auditoria. |A resposta confirma que a Didit aceitou e aplicou a sua instrução de eliminação. Não é um certificado de eliminação: guarde o `instruction_id` no seu próprio registo de eliminações para poder correlacionar mais tarde o registo de auditoria.### Duração da conservação e expiraçãoCada template conservado tem um `expires_at` finito. A Didit define-o como o prazo mais curto de entre os seguintes:1) `face_retention_days` do pedido ou, quando o pedido o omite, o `face_retention_days` da aplicação;
2) a janela geral de conservação de dados da aplicação, quando estiver configurada;
3) `face_retention_deadline` do pedido, quando for fornecido.Um pedido que conservaria um template sem qualquer duração finita é rejeitado com `400` e nada é eliminado. Os templates conservados não podem ultrapassar o que ocorrer primeiro entre a instrução aplicável do cliente, o fim da finalidade, a expiração configurada, a instrução de eliminação do titular dos dados e o prazo legal aplicável aos dados biométricos. É responsável por escolher uma duração que cumpra as leis aplicáveis aos seus utilizadores; escolha uma mais curta sempre que uma regra aplicável o exija.### Eliminação por motivos de privacidadeEnvie `deletion_instruction: "privacy_erasure"` quando estiver a agir sobre um pedido do titular dos dados. A Didit purga todos os templates biométricos conservados associados ao utilizador da sessão e, em seguida, elimina a sessão e o seu embedding facial. A política de conservação da aplicação não pode sobrepor-se a uma instrução de eliminação por motivos de privacidade, e `retain_face_embeddings: true` é rejeitado com `400`.Eliminar o utilizador com [Eliminar utilizadores em lote](https://docs.didit.me/pt/management-api/users/delete.md) também purga os templates conservados associados.## O que não é afetadoEliminar uma sessão não limpa estes dados por si. Se estiver a tratar um pedido de direito ao apagamento, trate-os separadamente.- **Entradas da lista de bloqueio** criadas a partir da sessão (facial ou de documento) permanecem no lugar. Remova-as da [lista de bloqueio](https://docs.didit.me/pt/entities/users/blocklist.md). Uma entrada facial na lista de bloqueio mantém a sua própria entrada biométrica, independente de qualquer template conservado.
- **Tokens de partilha** já emitidos para a sessão não são revogados, mas não há nada que possam importar: uma [importação](https://docs.didit.me/pt/sessions-api/share-session/import.md) com um desses tokens devolve `400` com `{"share_token": ["Original session does not exist."]}`.
- **Webhooks já entregues** para a sessão não são afetados. As entregas ainda em fila, e as respetivas tentativas, são descartadas. Não é emitido nenhum webhook pela própria eliminação.
- **Créditos já consumidos** pela verificação não são reembolsados.
- **Cópias assinadas já enviadas por e-mail** a um signatário através de um passo de Assinatura eletrónica estão na caixa de correio do signatário e não são afetadas.
- A entidade principal **Utilizador** ou **Empresa** não é eliminada. Use [Eliminar utilizadores](https://docs.didit.me/pt/management-api/users/delete.md) ou [Eliminar empresas](https://docs.didit.me/pt/management-api/businesses/delete.md) para as eliminar. Se o retrato de perfil do utilizador tiver vindo da sessão eliminada, o retrato é removido.
- Um **template biométrico conservado** (apenas se tiver optado por isso) mantém-se até expirar ou até o purgar. Purgue-o com a [API de templates biométricos](https://docs.didit.me/pt/management-api/biometric-templates/purge.md), eliminando o utilizador, ou repetindo a eliminação de outra sessão do mesmo utilizador com `deletion_instruction: "privacy_erasure"`.## Exemplos> [tab] Predefinido (política da aplicação)
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> Resposta numa aplicação que não optou por esta opção:
>
> ```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 um template biométrico
>
> ```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 a eliminação numa aplicação que optou por conservar
>
> ```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] Eliminação por motivos de privacidade
>
> ```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"}'
> ```
>
> Todos os templates conservados do utilizador da sessão são primeiro purgados e, em seguida, a sessão é eliminada:
>
> ```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] Sessão sem utilizador
>
> Uma sessão criada sem `vendor_data` não tem utilizador ao qual associar um template:
>
> ```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] Sessão de verificação de empresas (KYB)
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/bs-01HJX1.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> A Verificação de empresas é eliminada juntamente com as três verificações que criou para as suas pessoas-chave:
>
> ```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
> }
> ```## Erros| Estado | Quando | Corpo |
| - | - | - |
| `400` | `privacy_erasure` combinado com `retain_face_embeddings: true` | `{"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]}` |
| `400` | Conservação pedida sem uma duração finita, no pedido ou na aplicação | `{"detail": "A finite biometric-template retention duration is required."}` |
| `403` | A credencial não tem `delete:sessions` ou não é proprietária da sessão | `{"detail": "You do not have permission to perform this action."}` |
| `404` | Sessão desconhecida ou já eliminada | `{"detail": "Not found."}` |
| `503` | Um serviço de armazenamento ou um fornecedor de monitorização esteve indisponível durante a eliminação da sessão. | `{"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` | Um armazenamento biométrico esteve indisponível ao conservar ou purgar um template. As novas tentativas convergem para um único template. | `{"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."}` |Com `400`, nada é eliminado. Com `503`, a sessão continua no lugar: repita o mesmo pedido até devolver `200`. Alguns dos seus ficheiros armazenados ou o seu embedding facial podem já ter sido eliminados, por isso não dependa deles após um `503`.## PermissãoÉ necessária a permissão `delete:sessions`. A mesma permissão abrange as sessões de Verificação de utilizadores (KYC) e de Verificação de empresas (KYB), bem como a substituição da política de conservação.## Eliminação em lotePara operações em massa sobre sessões KYC, use `POST /v3/sessions/delete/`. Aceita os mesmos campos de conservação e de instrução. Até 20 sessões correspondentes são eliminadas no pedido, com um resultado por sessão; as restantes são processadas através de uma [tarefa de eliminação](https://docs.didit.me/pt/management-api/sessions/get-deletion-job.md). Consulte [Eliminar sessões em lote](https://docs.didit.me/pt/management-api/sessions/batch-delete.md).## Migração das respostas 204Até esta versão, o endpoint devolvia `204 No Content`. Passa agora a devolver `200 OK` com o corpo JSON documentado acima, para que cada eliminação reporte o seu `face_retention_outcome`. Atualize os clientes que validam `204`.O comportamento predefinido mantém-se: as aplicações existentes continuam em `delete_with_session`, e nenhuma migração ativa a conservação em seu nome. Ative-a explicitamente na Consola ou através de `PATCH /v3/webhook/`.## Relacionados- [Templates biométricos](https://docs.didit.me/pt/management-api/biometric-templates/overview.md)
- [Conservação de dados](https://docs.didit.me/pt/console/data-retention.md)
- [Visão geral das sessões](https://docs.didit.me/pt/sessions-api/overview.md)


## OpenAPI

````yaml pt/openapi-25.json DELETE /v3/session/{sessionId}/delete/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de Verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/delete/:
    delete:
      tags:
        - Sessions
      summary: Eliminar uma sessão de verificação (KYC ou KYB)
      description: >-
        Elimine uma única sessão de verificação, Verificação de utilizadores
        (KYC) ou Verificação de empresas (KYB), através do respetivo
        `session_id`. O id é resolvido primeiro em relação a sessões de KYC e,
        em seguida, a sessões de KYB, pelo que ambos os tipos são eliminados
        através deste único URL.


        **O que é eliminado:**

        - A sessão e todas as tentativas de verificação que esta contém,
        incluindo os resultados substituídos por um novo envio: a decisão, os
        dados extraídos, todos os registos de funcionalidades relacionados
        (verificação de identidade, rosto, prova de vida, correspondência
        facial, AML, verificações de registos, análise de IP, entre outros), as
        suas revisões e o respetivo registo de atividade.

        - Todos os ficheiros armazenados pertencentes à sessão: fotografias da
        frente/verso do documento (versões completas, recortadas e com
        desfocagem para privacidade), vídeos de captura de documentos, recortes
        de retrato, imagens de retrato e de assinatura do chip NFC, imagens de
        referência facial, vídeos de prova de vida, imagens de origem/destino de
        correspondência facial, documentos de Comprovativo de morada e quaisquer
        ficheiros adicionais carregados (KYC); documentos da empresa carregados
        e ficheiros adicionais (KYB). Documentos de Assinatura eletrónica, PDFs
        assinados, PDFs de prova e imagens de assinatura (KYC e KYB): os
        respetivos caminhos de transferência deixam de funcionar. URLs de
        multimédia emitidos anteriormente (`https://<media-host>/...`) deixam de
        resolver.

        - Os dados faciais da sessão. O respetivo embedding facial também é
        eliminado, a menos que opte por manter um template sem imagem (consulte
        **Dados biométricos faciais**).

        - Envios de webhooks ainda em fila para a sessão e as respetivas
        tentativas de repetição. Os webhooks já entregues não são afetados.

        - Para uma sessão de Verificação de empresas (KYB): as verificações
        criadas para as suas pessoas-chave (KYC) e para as suas empresas
        proprietárias (KYB), de forma recursiva, comunicadas como
        `deleted_child_verifications`. Uma verificação à qual apenas esteja
        associada, como um KYC aprovado existente que tenha reutilizado, não é
        eliminada.


        A sessão desaparece imediatamente de todos os endpoints de leitura: `GET
        /v3/session/{sessionId}/decision/` devolve `404` e `GET /v3/sessions/`
        deixa de a listar. A monitorização AML contínua e a monitorização de
        registos de KYB iniciadas pelas verificações eliminadas são
        interrompidas.


        **O que não é afetado:** as entradas na lista de bloqueio criadas a
        partir desta sessão (rosto ou documento) **não** são removidas; faça a
        gestão das mesmas com os endpoints da lista de bloqueio. Os tokens de
        partilha emitidos para a sessão não são revogados, mas já não existe
        nada para importarem: uma importação com um deles devolve `400` com
        `{"share_token": ["Original session does not exist."]}`. Os créditos já
        consumidos **não** são reembolsados. A entidade Utilizador ou
        Empresa-mãe **não** é eliminada; utilize `POST /v3/users/delete/` ou
        `POST /v3/businesses/delete/` para esse efeito. Se o retrato de perfil
        do Utilizador tiver tido origem nesta sessão, o retrato é removido
        juntamente com ela.


        **Dados biométricos faciais:** por predefinição, o embedding facial da
        sessão é eliminado juntamente com a sessão (`face_retention_outcome:
        deleted`). Uma aplicação que tenha optado pela retenção de templates
        biométricos (`face_retention_policy: retain_until_user_deleted` no
        `PATCH /v3/webhook/`), ou um pedido com `retain_face_embeddings: true`,
        mantém um template biométrico facial sem imagem, gerido separadamente e
        associado ao Utilizador da sessão (`retained_with_user`), para que a
        deteção de duplicados, a Pesquisa facial e a autenticação biométrica
        continuem a funcionar. O template nunca contém a imagem facial,
        multimédia, campos de identidade, a decisão ou o id da sessão eliminada;
        trata-se de dados biométricos eliminados em
        `biometric_template_expires_at`, ou antes disso em caso de eliminação do
        Utilizador, eliminação por motivos de privacidade ou uma purga explícita
        através de `/v3/biometric-templates/`. Uma sessão sem um Utilizador
        associado não pode reter um template (`ineligible_no_vendor_user`).
        Envie `deletion_instruction: privacy_erasure` para pedidos de titulares
        de dados: isto purga todos os templates retidos para esse Utilizador e
        nunca retém um novo.


        **Irreversível:** a eliminação é permanente e não existe nenhum endpoint
        de restauro. Exporte tudo o que precisar (por exemplo, um PDF da
        decisão) antes de chamar o endpoint.


        **Efeitos secundários:** nenhum webhook é emitido para eliminações.


        **Resposta:** `200 OK` assim que a eliminação estiver concluída, com um
        corpo JSON que reporta o `face_retention_outcome`, a expiração do
        template retido e, para uma sessão de KYB,
        `deleted_child_verifications`. Versões anteriores deste endpoint
        devolviam `204 No Content`; atualize os clientes que validam o código
        `204`. Mantenha o seu `instruction_id` no seu próprio registo de
        eliminações.


        **Idempotência:** não é idempotente ao nível do HTTP: a primeira chamada
        devolve `200`; repeti-la devolve `404` porque a sessão já não resolve.
        Após um `503`, a sessão continua ativa; repita o mesmo pedido para
        concluir a respetiva eliminação.


        **Autenticação:** envie a chave de API da sua aplicação no cabeçalho
        `x-api-key`; a sessão tem de pertencer a essa aplicação. Os tokens de
        acesso de utilizadores da consola (`Authorization: Bearer ...`) também
        podem chamar este endpoint se tiverem a permissão `delete:sessions`. As
        falhas de autenticação e de permissão devolvem ambas `403`; esta API
        nunca devolve `401`.


        **Limite de pedidos:** quota de escrita partilhada de 300 pedidos/min
        por chave de API em todos os endpoints POST/PATCH/DELETE; exceder este
        valor devolve `429`.


        Para eliminar sessões de KYC em massa através do respetivo
        `session_number` numérico, utilize `POST /v3/sessions/delete/`.


        **Relatórios regulamentares submetidos:** se os dados selecionados
        constarem de um relatório regulamentar finalizado, todo o pedido é
        recusado com `409` e nada é eliminado. O corpo utiliza `code:
        in_filed_report` e identifica cada relatório com `uuid`,
        `report_number`, `report_type` e `case_uuid`. Elimine os relatórios e,
        em seguida, repita o pedido.
      operationId: delete_v3_session_by_id
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID (`session_id`) da sessão de Verificação de utilizadores (KYC)
            ou de Verificação de empresas (KYB) a eliminar, conforme retornado
            aquando da criação da sessão. Tem de ser um UUID canónico com
            hífenes — um valor que não seja UUID não corresponde à rota e
            devolve `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      requestBody:
        required: false
        description: >-
          Opcional. Omita totalmente o corpo para seguir a política de
          conservação da aplicação com uma eliminação operacional.
        content:
          application/json:
            schema:
              type: object
              properties:
                retain_face_embeddings:
                  type: boolean
                  nullable: true
                  description: >-
                    Substitui a `face_retention_policy` da aplicação para esta
                    eliminação. `true` mantém um template biométrico facial sem
                    imagem associado ao utilizador da sessão após a sessão ser
                    eliminada; `false` elimina o embedding facial com a sessão;
                    omita ou use `null` para seguir a política da aplicação.
                    Ignorado para sessões KYB e para sessões sem embedding
                    facial.
                  example: true
                face_retention_days:
                  type: integer
                  minimum: 1
                  maximum: 3650
                  description: >-
                    Duração finita de conservação, em dias, para um modelo
                    conservado. Obrigatória quando um modelo é conservado, a
                    menos que a aplicação já defina `face_retention_days`. O
                    `expires_at` do modelo é determinado pelo limite mais cedo
                    entre esta duração, a janela geral de conservação de dados
                    da aplicação e `face_retention_deadline`.
                  example: 365
                face_retention_deadline:
                  type: string
                  format: date-time
                  description: >-
                    Data de expiração definitiva opcional para um modelo retido.
                    Tem de ser no futuro.
                  example: '2027-08-28T00:00:00Z'
                deletion_instruction:
                  type: string
                  enum:
                    - operational_session_delete
                    - privacy_erasure
                  default: operational_session_delete
                  description: >-
                    A classe de instrução que está a fornecer.
                    `operational_session_delete` elimina a sessão e retém um
                    modelo apenas quando a política ou `retain_face_embeddings`
                    o determinar. `privacy_erasure` elimina permanentemente
                    todos os templates biométricos retidos associados ao
                    utilizador da sessão antes de eliminar a sessão, não pode
                    ser substituído pela política da aplicação e não pode ser
                    combinado com `retain_face_embeddings: true` (`400`).
                  example: operational_session_delete
                instruction_id:
                  type: string
                  maxLength: 255
                  description: >-
                    A sua referência duradoura para esta instrução de eliminação
                    (por exemplo, o id de um pedido de eliminação). Registada no
                    registo de auditoria e em qualquer modelo retido. Gerada
                    pela Didit quando omitida.
                  example: dsar-2026-0142
            examples:
              Retain a biometric template:
                summary: >-
                  Eliminar a sessão, mantendo um modelo sem imagem durante 365
                  dias
                value:
                  retain_face_embeddings: true
                  face_retention_days: 365
                  instruction_id: post-approval-cleanup-2026-08
              Force deletion on an opted-in application:
                summary: >-
                  Eliminar o embedding facial independentemente da política da
                  aplicação
                value:
                  retain_face_embeddings: false
              Privacy erasure:
                summary: >-
                  Pedido do titular dos dados: eliminar a sessão e purgar todos
                  os modelos retidos dessa pessoa
                value:
                  deletion_instruction: privacy_erasure
                  instruction_id: dsar-2026-0142
      responses:
        '200':
          description: >-
            Sessão eliminada. O corpo indica o que aconteceu aos dados
            biométricos faciais da sessão e, para uma sessão KYB, quantas
            verificações criadas por esta foram eliminadas em conjunto.
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id:
                    type: string
                    format: uuid
                    description: A sessão eliminada.
                  session_number:
                    type: integer
                    nullable: true
                    description: O número da sessão eliminada.
                  face_retention_outcome:
                    type: string
                    enum:
                      - retained_with_user
                      - deleted
                      - none
                      - ineligible_no_vendor_user
                    description: >-
                      O que aconteceu aos dados biométricos faciais da sessão.
                      `deleted`: o embedding facial foi eliminado com a sessão
                      (predefinição). `retained_with_user`: a sessão é eliminada
                      e um template biométrico sem imagem permanece associado ao
                      Utilizador; consulte `biometric_template_uuid`. `none`: a
                      sessão não tinha nenhum embedding facial (por exemplo, uma
                      sessão de KYB ou uma sessão de KYC sem selfie de prova de
                      vida). `ineligible_no_vendor_user`: a conservação foi
                      solicitada, mas a sessão não tem nenhum Utilizador
                      associado, pelo que o embedding foi eliminado com a
                      sessão. Uma falha no armazenamento biométrico nunca é
                      comunicada através deste campo neste endpoint: devolve
                      `503` e a sessão não é eliminada.
                  biometric_template_uuid:
                    type: string
                    format: uuid
                    nullable: true
                    description: >-
                      ID do template biométrico retido quando
                      `face_retention_outcome` é `retained_with_user`; `null`
                      caso contrário. Faça a sua gestão através de
                      `/v3/biometric-templates/{template_uuid}/`.
                  biometric_template_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Quando o template biométrico retido é eliminado, quando
                      `face_retention_outcome` é `retained_with_user`; `null`
                      quando nenhum template é retido.
                  deleted_child_verifications:
                    type: integer
                    description: >-
                      Para uma sessão de Verificação de empresas (KYB): quantas
                      verificações que ela criou (as sessões de KYC das suas
                      pessoas-chave e as sessões de KYB dos seus proprietários
                      empresariais, recursivamente) foram eliminadas juntamente
                      com ela. Sempre `0` para uma sessão 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: Conservação solicitada numa sessão criada sem 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: >-
                    Uma verificação de empresas eliminada com as três
                    verificações que criou para as suas pessoas-chave
        '400':
          description: Erro de validação — nada é eliminado.
          content:
            application/json:
              examples:
                Privacy erasure cannot retain:
                  value:
                    retain_face_embeddings:
                      - Privacy erasure cannot retain biometric templates.
                No finite retention duration:
                  summary: >-
                    Conservação solicitada sem face_retention_days no pedido ou
                    na aplicação
                  value:
                    detail: >-
                      A finite biometric-template retention duration is
                      required.
        '403':
          description: >-
            Falha de autenticação ou permissão. Uma chave em falta também
            devolve `403`; uma chave incorreta, revogada ou expirada devolve
            `401`. Exceção: quando o `sessionId` não corresponde a uma sessão
            ativa, a consulta prévia de proprietário devolve `404` primeiro,
            mesmo com credenciais em falta ou inválidas.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: Sem cabeçalho x-api-key ou a chave é inválida
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Insufficient permission:
                  summary: >-
                    Token de utilizador sem delete:sessions, ou credenciais de
                    uma aplicação que não é proprietária da sessão
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Não existe nenhuma sessão ativa de KYC ou KYB com este `session_id`
            — o ID é desconhecido ou a sessão já foi eliminada (repetir uma
            eliminação bem-sucedida resulta nesta resposta).
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not Found:
                  summary: Sessão desconhecida ou já eliminada
                  value:
                    detail: Not found.
        '409':
          description: >-
            A sessão faz parte de um relatório regulatório finalizado. Nada é
            eliminado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InFiledReportError'
        '429':
          description: >-
            Limite de pedidos de escrita partilhado excedido (300 pedidos
            POST/PATCH/DELETE por minuto por chave de API). Inspecione o
            cabeçalho `Retry-After` e os cabeçalhos de resposta `X-RateLimit-*`
            antes de tentar novamente.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Rate limited:
                  summary: Orçamento de escrita esgotado
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
        '503':
          description: >-
            A eliminação não pôde ser concluída porque um serviço de
            armazenamento, um repositório biométrico ou um fornecedor de
            monitorização estava indisponível. A sessão continua a existir;
            repita o mesmo pedido até que devolva `200`. Alguns dos seus
            ficheiros guardados ou o seu embedding facial podem já ter sido
            eliminados, pelo que não deve confiar neles após um `503`. As
            tentativas convergem para um modelo único.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Session deletion unavailable:
                  summary: >-
                    Um serviço de armazenamento ou um fornecedor de
                    monitorização esteve indisponível
                  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: >-
                    Um armazenamento biométrico estava indisponível durante a
                    retenção ou eliminação de um modelo biométrico
                  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: >-
        A eliminação foi recusada porque os dados selecionados constam de um
        relatório regulamentar finalizado. Nada é eliminado. Elimine o relatório
        e, em seguida, repita o pedido.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - in_filed_report
          description: >-
            Código de erro estável para uma eliminação bloqueada por um
            relatório regulamentar finalizado.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: >-
            Relatórios que bloqueiam a eliminação de uma pessoa, empresa, caso
            ou sessão.
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/FiledReportTransaction'
          description: >-
            Transações que bloqueiam a eliminação de uma transação, cada uma com
            os relatórios que a listam.
    FiledRegulatoryReport:
      type: object
      description: Um relatório regulamentar finalizado que impede a eliminação pedida.
      required:
        - uuid
        - report_number
        - report_type
        - case_uuid
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID do relatório.
        report_number:
          type: string
          description: Número do relatório apresentado na Consola (por exemplo, SAR-0001).
        report_type:
          type: string
          enum:
            - SAR
            - STR
            - CTR
            - TTR
            - UTR
            - IFT
            - CBR
            - TFR
          description: Tipo de relatório regulamentar.
        case_uuid:
          type: string
          format: uuid
          description: Caso ao qual o relatório pertence.
    FiledReportTransaction:
      type: object
      description: >-
        Uma transação que não pode ser eliminada porque um relatório
        regulamentar finalizado a inclui.
      required:
        - uuid
        - transaction_id
        - reports
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID da transação Didit.
        transaction_id:
          type: string
          description: >-
            O identificador de transação fornecido aquando da criação da
            transação.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: Relatórios finalizados que listam esta transação.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por
        recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de
        endereços IP e a uma data de validade. 401 significa que a chave está
        incorreta, revogada ou expirada; 403 significa que nenhuma chave foi
        enviada, que a chave não tem acesso a este recurso ou ação, ou que o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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