curl -X DELETE \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
-H 'x-api-key: YOUR_API_KEY'{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}API para excluir sessão: direito ao esquecimento do GDPR
A API do Didit exclui a sessão KYC/KYB e seus dados, incluindo o embedding facial; aplicações habilitadas podem reter template biométrico sem imagem.
curl -X DELETE \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/delete/ \
-H 'x-api-key: YOUR_API_KEY'{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}Suporte a KYC e KYB
Funciona tanto para sessões de Verificação de Usuário (KYC) quanto de Verificação de Empresas (KYB). Osession_id é buscado nos dois tipos de sessão, e o mesmo comportamento de exclusão se aplica a ambos. A retenção do template biométrico se aplica apenas a sessões KYC, porque somente sessões KYC contêm um embedding facial.
Comportamento
- A sessão é excluída junto com todas as tentativas de verificação que ela contém, incluindo resultados substituídos por um reenvio: sua decisão, seus dados extraídos, os registros dos recursos associados (verificações de identidade, consultas a registros, documentos, AML, análise de IP etc.), suas revisões e seu registro de atividades, além de todos os arquivos armazenados.
- Excluir uma sessão de Verificação de Empresas (KYB) também exclui, de forma recursiva, as verificações que ela criou para suas pessoas-chave (KYC) e para seus proprietários corporativos (KYB). A resposta informa quantas foram excluídas em
deleted_child_verifications. Uma verificação à qual ela apenas faz referência, como um KYC aprovado já existente que foi reutilizado, não é excluída. - Os dados de assinatura eletrônica também são excluídos: os documentos a assinar e seus arquivos Word originais, os PDFs assinados, os PDFs de evidências, as imagens das assinaturas e o valor de cada campo. Os caminhos de download desses arquivos retornam
404. - A sessão desaparece imediatamente das respostas de listagem e de decisão, e as URLs de mídia emitidas antes da chamada deixam de funcionar.
- As entregas de webhook ainda na fila para a sessão, assim como suas novas tentativas, são descartadas.
- O monitoramento AML contínuo e o monitoramento de registros KYB iniciados pelas verificações excluídas são interrompidos.
- A exclusão é permanente e irreversível. Não existe endpoint de restauração, então exporte tudo de que você precisar, como o PDF de uma decisão, antes de fazer a chamada.
- A resposta é
200 OK, enviada quando a exclusão é concluída, com um corpo JSON que informa o que aconteceu com os dados biométricos faciais da sessão. Consulte Migração se o seu cliente ainda espera204.
Dados em um relatório regulatório finalizado
Se a sessão fizer parte de um caso com um relatório regulatório finalizado, a requisição retorna409 e nada é excluído. A resposta usa code: in_filed_report e identifica cada relatório:
{
"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"
}
]
}
Dados biométricos faciais: excluir ou reter
Toda sessão de KYC com uma selfie de prova de vida contém um embedding facial que alimenta a Busca facial 1:N e a detecção de duplicatas. Por padrão, esse embedding é excluído junto com a sessão (face_retention_policy: delete_with_session), para que uma pessoa cuja sessão você excluiu possa se verificar novamente sem ser sinalizada como duplicata.
Aplicações que precisam que a detecção de duplicatas continue funcionando após a exclusão da sessão podem optar pela retenção de template biométrico. Nesse caso, a Didit exclui a sessão e todos os seus dados normalmente, e mantém um template biométrico facial sem imagem, gerenciado separadamente e vinculado ao Usuário da sessão.
| Retido | Nunca retido |
|---|---|
| O template facial numérico usado para correspondência | A imagem do rosto, o vídeo de prova de vida, as imagens do documento, os recortes do retrato e qualquer outra mídia |
Um novo id aleatório de template e um provenance_reference opaco | O id, o número, a decisão, os campos de identidade extraídos ou os payloads de recursos da sessão excluída |
O Usuário proprietário (vendor_user_uuid, vendor_data atual) | Status na lista de bloqueio, correspondências anteriores, rótulos de fraude ou declarações de identidade entre organizações |
Metadados de retenção: retained_at, expires_at, política, substituição, classe de instrução, instruction_id e o id do principal que executou a ação | Endereços de e-mail de quem executou a ação |
- Política da aplicação em Business Console → App Settings → Data retention ou por meio de
PATCH /v3/webhook/(face_retention_policy,face_retention_days). Consulte Retenção de dados. - Substituição por requisição com
retain_face_embeddingsneste endpoint e em Excluir sessões em lote. - Classe de instrução com
deletion_instruction. Uma instruçãoprivacy_erasuresempre prevalece: ela remove todos os templates retidos desse Usuário e nunca retém um novo.
Corpo da requisição
Todos os campos são opcionais. Omita o corpo para seguir a política da aplicação.| Campo | Tipo | Descrição |
|---|---|---|
retain_face_embeddings | booleano ou null | Substitui a política da aplicação nesta exclusão. true retém um template, false exclui o embedding junto com a sessão, null ou a omissão segue a política. |
face_retention_days | inteiro (1-3650) | Duração finita da retenção do template. Obrigatório quando um template é retido, a menos que a aplicação já defina face_retention_days. |
face_retention_deadline | datetime (ISO 8601) | Data-limite de expiração opcional. Deve estar no futuro. |
deletion_instruction | operational_session_delete (padrão) ou privacy_erasure | A classe da instrução que você está dando. privacy_erasure remove todos os templates retidos do Usuário da sessão antes de excluir a sessão e não pode ser combinado com retain_face_embeddings: true. |
instruction_id | string (máx. 255) | Sua referência permanente para esta instrução, por exemplo o id do seu ticket de apagamento. Fica registrado na trilha de auditoria e em qualquer template retido. Se você o omitir, a Didit gera um, que pode ser consultado no detalhe do template. |
Resposta
{
"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 excluída. |
session_number | O número da sessão excluída. |
face_retention_outcome | O que aconteceu com os dados biométricos faciais da sessão. Consulte a tabela abaixo. |
biometric_template_uuid | Id do template biométrico retido quando face_retention_outcome é retained_with_user; null nos demais casos. |
biometric_template_expires_at | Quando o template biométrico retido será excluído; null quando nenhum template é retido. |
deleted_child_verifications | Para uma sessão de KYB, quantas verificações criadas por ela (as sessões de KYC das suas pessoas-chave e as sessões de KYB dos seus proprietários corporativos, de forma recursiva) foram excluídas junto com ela. Sempre 0 para uma sessão de KYC. |
face_retention_outcome | Significado |
|---|---|
deleted | A sessão e o seu embedding facial são excluídos. Comportamento padrão. |
retained_with_user | A sessão é excluída. Um template biométrico sem imagem permanece vinculado ao Usuário; o id dele é biometric_template_uuid. Gerencie-o com a API de templates biométricos. |
none | A sessão não tinha embedding facial para excluir ou reter (por exemplo, uma sessão de KYB ou uma sessão de KYC sem selfie de prova de vida). |
ineligible_no_vendor_user | A retenção foi solicitada, mas a sessão não está vinculada a um Usuário (foi criada sem vendor_data), portanto não há onde vincular um template. A sessão e o seu embedding são excluídos. O resultado de inelegibilidade fica registrado na trilha de auditoria. |
instruction_id no seu próprio registro de apagamentos para poder correlacioná-lo com a trilha de auditoria depois.
Duração e expiração da retenção
Todo template retido tem umexpires_at finito. A Didit o define como a data mais próxima entre:
- o
face_retention_daysda requisição, ou oface_retention_daysda aplicação quando a requisição o omite; - a janela geral de retenção de dados da aplicação, quando houver uma configurada;
- o
face_retention_deadlineda requisição, quando informado.
400 e nada é excluído. Os templates retidos não podem ultrapassar o primeiro dos seguintes marcos: instrução aplicável do cliente, fim da finalidade, expiração configurada, instrução de apagamento do titular dos dados ou prazo legal para dados biométricos. Você é responsável por escolher uma duração que atenda às leis aplicáveis aos seus usuários; escolha uma mais curta sempre que uma regra aplicável exigir.
Apagamento por privacidade
Enviedeletion_instruction: "privacy_erasure" quando estiver atendendo a uma solicitação de um titular de dados. A Didit elimina todos os templates biométricos retidos vinculados ao Usuário da sessão e, em seguida, exclui a sessão e o seu embedding. A política de retenção da aplicação não pode se sobrepor a uma instrução de apagamento por privacidade, e retain_face_embeddings: true é rejeitado com 400.
Excluir o Usuário com Excluir usuários em lote também elimina os templates retidos dele.
O que não é afetado
Excluir uma sessão não remove os itens abaixo por você. Se você estiver atendendo a uma solicitação de exercício do direito ao apagamento, trate-os separadamente.- As entradas da lista de bloqueio criadas a partir da sessão (de rosto ou de documento) permanecem. Remova-as da lista de bloqueio. Uma entrada de rosto na lista de bloqueio mantém o seu próprio registro biométrico, independente de qualquer template retido.
- Os tokens de compartilhamento já emitidos para a sessão não são revogados, mas não resta nada para eles importarem: uma importação com um deles retorna
400com{"share_token": ["Original session does not exist."]}. - Os webhooks já entregues para a sessão não são afetados. As entregas ainda na fila e suas tentativas de reenvio são descartadas. Nenhum webhook é emitido para a exclusão em si.
- Os créditos já consumidos pela verificação não são reembolsados.
- As cópias assinadas já enviadas por e-mail a um signatário por uma etapa de Assinatura eletrônica estão na caixa de correio do signatário e não são afetadas.
- A entidade Usuário ou Empresa à qual a sessão pertence não é excluída. Use Excluir usuários ou Excluir empresas para isso. Se o retrato do perfil do Usuário veio da sessão excluída, o retrato é removido.
- Um template biométrico retido (somente quando você optou por isso) permanece até expirar ou até você eliminá-lo. Elimine-o com a API de templates biométricos, excluindo o Usuário ou repetindo a exclusão de outra sessão do mesmo Usuário com
deletion_instruction: "privacy_erasure".
Exemplos
- Padrão (política da aplicação)
- Reter um template biométrico
- Forçar a exclusão em uma aplicação com retenção ativada
- Eliminação por privacidade
- Sessão sem Usuário
- Sessão de Verificação de empresa (KYB)
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY"
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": true, "face_retention_days": 365, "instruction_id": "cleanup-2026-08-0142"}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "retained_with_user",
"biometric_template_uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"biometric_template_expires_at": "2027-10-09T10:15:00Z",
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": false}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"deletion_instruction": "privacy_erasure", "instruction_id": "dsar-2026-0142"}'
{
"session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02",
"session_number": 1024,
"face_retention_outcome": "deleted",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
vendor_data não tem um Usuário ao qual vincular um template:curl -X DELETE https://verification.didit.me/v3/session/7a1e9c2d-.../delete/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"retain_face_embeddings": true, "face_retention_days": 365}'
{
"session_id": "7a1e9c2d-5f4b-4c3a-8e2d-1b0a9f8e7d6c",
"session_number": 1031,
"face_retention_outcome": "ineligible_no_vendor_user",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 0
}
curl -X DELETE https://verification.didit.me/v3/session/bs-01HJX1.../delete/ \
-H "x-api-key: YOUR_API_KEY"
{
"session_id": "0f3c9b7e-2d1a-4e5f-8c6b-7a9d8e1f2c3b",
"session_number": 88,
"face_retention_outcome": "none",
"biometric_template_uuid": null,
"biometric_template_expires_at": null,
"deleted_child_verifications": 3
}
Erros
| Status | Quando | Corpo |
|---|---|---|
400 | privacy_erasure combinado com retain_face_embeddings: true | {"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]} |
400 | Retenção solicitada sem uma duração finita na requisição 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á excluída | {"detail": "Not found."} |
503 | Um serviço de armazenamento ou um provedor de monitoramento estava indisponível durante a exclusã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 repositório biométrico estava indisponível ao reter ou eliminar um modelo. 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."} |
400, nada é excluído. Com 503, a sessão ainda existe: repita a mesma requisição até ela retornar 200. Alguns dos arquivos armazenados da sessão ou o embedding facial dela podem já ter sido excluídos, então não dependa deles após um 503.
Permissão
Requerdelete:sessions. A mesma permissão abrange as sessões de Verificação de Usuários (KYC) e de Verificação de Empresas (KYB), além da substituição da retenção.
Exclusão em lote
Para operações em massa em sessões de KYC, usePOST /v3/sessions/delete/. Ele aceita os mesmos campos de retenção e de instrução. Até 20 sessões correspondentes são excluídas na própria requisição, com um resultado por sessão; acima disso, a exclusão é executada como um job de exclusão. Consulte Excluir sessões em lote.
Migração das respostas 204
Até esta versão, o endpoint retornava204 No Content. Agora ele retorna 200 OK com o corpo JSON documentado acima, para que toda exclusão informe o seu face_retention_outcome. Atualize os clientes que verificam 204.
O comportamento padrão não mudou: as aplicações existentes continuam em delete_with_session, e nenhuma migração ativa a retenção por você. Ative-a explicitamente no Console ou por meio de PATCH /v3/webhook/.
Relacionados
Autorizações
Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, 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á errada, 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 a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.
Parâmetros de caminho
UUID (session_id) da sessão de Verificação de usuários (KYC) ou de Verificação de empresas (KYB) a ser excluída, conforme retornado na criação da sessão. Deve ser um UUID canônico com hifens: um valor que não seja UUID não corresponde à rota e retorna 404.
"11111111-2222-3333-4444-555555555555"
Corpo
Opcional. Omita o corpo inteiro para seguir a política de retenção da aplicação com uma exclusão operacional.
Substitui a face_retention_policy da aplicação para esta exclusão. true mantém um template biométrico facial sem imagem vinculado ao User da sessão após a exclusão da sessão; false exclui o embedding facial junto 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.
true
Duração finita de retenção, em dias, de um template biométrico retido. Obrigatório quando um template é retido, a menos que a aplicação já defina face_retention_days. O expires_at do template é o mais próximo entre essa duração, o período geral de retenção de dados da aplicação e face_retention_deadline.
1 <= x <= 3650365
Expiração definitiva opcional para um template retido. Deve estar no futuro.
"2027-08-28T00:00:00Z"
A classe de instrução que você está dando. operational_session_delete exclui a sessão e retém um template apenas quando a política ou retain_face_embeddings assim determina. privacy_erasure elimina todos os templates biométricos retidos vinculados ao User da sessão antes de excluir 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).
operational_session_delete, privacy_erasure "operational_session_delete"
Sua referência permanente para esta instrução de exclusão (por exemplo, o ID de um ticket de apagamento). Registrada na trilha de auditoria e em qualquer template retido. Gerada pela Didit quando omitida.
255"dsar-2026-0142"
Resposta
Sessão excluída. O corpo informa o que aconteceu com os dados biométricos faciais da sessão e, para uma sessão KYB, quantas verificações criadas por ela foram excluídas junto.
A sessão excluída.
O número da sessão excluída.
O que aconteceu com os dados biométricos faciais da sessão. deleted: o embedding facial foi excluído junto com a sessão (padrão). retained_with_user: a sessão é excluída e um template biométrico sem imagem permanece vinculado ao User; veja biometric_template_uuid. none: a sessão não tinha 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 retenção foi solicitada, mas a sessão não tem um User vinculado, então o embedding foi excluído junto com a sessão. Uma falha no armazenamento biométrico nunca é informada por este campo neste endpoint: ele retorna 503 e a sessão não é excluída.
retained_with_user, deleted, none, ineligible_no_vendor_user Id do template biométrico retido quando face_retention_outcome é retained_with_user; caso contrário, null. Gerencie-o por meio de /v3/biometric-templates/{template_uuid}/.
Quando o template biométrico retido é excluído, quando face_retention_outcome é retained_with_user; null quando nenhum template é retido.
Para uma sessão de Verificação de empresas (KYB): quantas verificações criadas por ela (as sessões de KYC das suas pessoas-chave e as sessões de KYB dos seus proprietários corporativos, recursivamente) foram excluídas junto com ela. Sempre 0 para uma sessão de KYC.