curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}API para eliminar usuarios en lote: borrado RGPD
Elimina en lote usuarios de Didit por vendor_data o todos los usuarios de una aplicación. Cumple con el derecho al olvido del RGPD y la CCPA.
curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}Descripción general
Elimina una o más entidades de usuario. Los registros de usuario se eliminan de forma permanente. Este endpoint no abarca sus sesiones de verificación, que se conservan sin su vínculo con el usuario; elimínalas con Eliminar sesión o Eliminar sesiones en lote. Tampoco abarca las transacciones; elimínalas con Eliminar transacciones en lote.Cuándo usarlo
- Solicitudes de derecho al olvido (RGPD / CCPA).
- Limpieza de usuarios de prueba durante QA.
- Desaprovisionamiento de usuarios eliminados de tu propia plataforma.
Notas
- Acepta una lista de valores
vendor_data, una lista de valoresdidit_internal_idodelete_all: true. Las dos listas se pueden combinar y se combinan mediante OR. - Este endpoint nunca acota
delete_allcon filtros, y los parámetros de lotefilter_*de la Console se rechazan con un400, de modo que una intención acotada no elimina a todos los usuarios de la aplicación. Las excepciones sonfilter_has_approved_sessionsyfilter_has_declined_sessions: no se rechazan ni se aplican, así que no los envíes condelete_all. - Todo o nada: si la eliminación no se puede completar para los usuarios que seleccionaste, no se elimina ninguno y puedes repetir la misma solicitud con seguridad.
- Idempotente: reenviar la misma lista devuelve
deleted: 0después de la primera ejecución. - Devuelve solo el recuento de lo eliminado, no un informe por elemento. Los valores que no coinciden con nada se omiten sin aviso. Envía una lista sin duplicados si quieres comparar
deletedcon el número de identificadores que enviaste, ya que un identificador repetido solo se cuenta una vez. - Una eliminación no emite ningún webhook. Los webhooks se disparan con los cambios de estado y de datos del usuario, no con la eliminación, por lo que una integración que necesite una señal de eliminación debe registrarla en su propio sistema.
- Este endpoint NO elimina las sesiones de verificación vinculadas al usuario. Se conservan, con el vínculo con el usuario eliminado, por lo que sus documentos, rostros y archivos multimedia solo se eliminan cuando eliminas las propias sesiones.
retain_face_embeddings(booleano, valor predeterminadofalse) yface_retention_days(de 1 a 3650) son tu decisión explícita de conservar una plantilla biométrica sin imagen por cada persona eliminada para la detección de duplicados, durante ese número de días. No se conserva nada más de la persona. Omite ambos para eliminar las plantillas junto con los usuarios.face_retention_dayssinretain_face_embeddings: true, oretain_face_embeddings: truesinface_retention_days, devuelve400enface_retention_days.- Salvo que establezcas
retain_face_embeddingsentrue, las plantillas biométricas conservadas que están asociadas al usuario SÍ se purgan, antes de eliminar al usuario. Si una plantilla no se puede purgar porque un almacén biométrico no está disponible, la solicitud devuelve503, no se elimina ningún usuario de la solicitud y al repetir la solicitud, se completa la eliminación.
Datos en un informe regulatorio finalizado
Si alguna de las personas seleccionadas forma parte de un caso con un informe regulatorio finalizado, toda la solicitud devuelve409 y no se elimina nada. La respuesta usa code: in_filed_report e identifica cada informe, para que puedas abrirlo en la Console:
{
"detail": "A case about this person or company has a filed 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"
}
]
}
Permisos
Cualquier clave de API activa de la aplicación puede llamar a este endpoint. Las claves de API de Didit tienen alcance de aplicación, no de rol: los roles y permisos de la Console (delete:users y el resto) determinan lo que una persona puede hacer en la Console, y no se evalúan
para el tráfico de la Management API. Controla quién puede invocar este endpoint controlando quién puede leer
la clave de API de la aplicación.
Relacionado
Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Cuerpo
Proporciona vendor_data_list, didit_internal_id_list o delete_all: true. Las dos listas se pueden combinar y se aplican con OR. Cuando delete_all es true, tiene precedencia y se ignoran ambas listas.
Tus propios identificadores que se van a eliminar, comparados exactamente como se enviaron.
IDs internos de usuario de Didit que se van a eliminar: el didit_internal_id que devuelven los endpoints de creación y obtención.
Si es true, elimina todos los usuarios de la aplicación.
Tu decisión explícita de conservar una plantilla biométrica sin imágenes de cada persona eliminada para la detección de duplicados, durante face_retention_days. Todo lo demás sobre la persona se elimina. Omítelo, o envía false, para eliminar las plantillas junto con los usuarios. Cuando es true, face_retention_days es obligatorio.
Número de días que se conserva la plantilla biométrica sin imágenes cuando retain_face_embeddings es true. Es obligatorio junto con él, y sin él se rechaza con un 400 en face_retention_days.
1 <= x <= 3650365
Respuesta
Usuarios eliminados. Devuelve el número de usuarios realmente eliminados.
Número de usuarios eliminados (excluye los valores de vendor_data que no coincidieron con nada).