Удаление сессии API: право на забвение по GDPR
Удаление сессии KYC или KYB и всех её данных в Didit. По умолчанию удаляется эмбеддинг лица; при согласии можно сохранить шаблон без изображения.
Поддержка KYC и KYB
Работает как для сессий Проверка пользователей (KYC), так и для сессий Верификация бизнеса (KYB).session_id сопоставляется с сессиями обоих типов, и поведение удаления одинаково для обоих. Хранение биометрического шаблона применяется только к сессиям KYC, поскольку только они содержат эмбеддинг лица.
Поведение
- Сессия удаляется вместе со всеми попытками верификации, которые она содержит, включая результаты, замененные повторной отправкой: её решение, извлечённые данные, связанные записи функций (верификации личности, проверки реестров, документы, AML, анализ IP и так далее), её ручные проверки и журнал активности, а также все её сохранённые файлы.
- Удаление сессии Верификация бизнеса (KYB) также удаляет верификации, созданные для её ключевых лиц (KYC) и корпоративных владельцев (KYB), рекурсивно. В ответе количество таких верификаций указано в
deleted_child_verifications. Верификация, на которую сессия только ссылается, например уже одобренный KYC, который был повторно использован, не удаляется. - Данные электронной подписи удаляются вместе с сессией: документы для подписания и их исходные файлы Word, подписанные PDF, PDF с доказательствами, изображения подписей и значения всех полей. Пути их загрузки возвращают
404. - Сессия сразу исчезает из ответов списка и решений, а URL медиафайлов, выданные до вызова, перестают открываться.
- Доставки webhook, которые ещё стоят в очереди для сессии, и их повторные попытки отбрасываются.
- Постоянный AML-мониторинг и мониторинг реестров KYB, запущенные верификациями, которые были удалены, останавливаются.
- Удаление окончательное и необратимое. Эндпоинта для восстановления нет, поэтому экспортируйте всё необходимое, например PDF с решением, до вызова этого endpoint.
- Ответ имеет статус
200 OK, отправляется после завершения удаления и содержит JSON-тело, которое сообщает, что произошло с биометрическими данными лица сессии. См. Миграция, если ваш клиент всё ещё ожидает204.
Данные в окончательно оформленном регуляторном отчёте
Если сессия входит в кейс с окончательно оформленным регуляторным отчётом, запрос возвращает409, и ничего не удаляется. Ответ содержит code: in_filed_report и перечисляет каждый отчёт:
{
"detail": "This session is part of a finalized regulatory report, so it cannot be deleted.",
"code": "in_filed_report",
"reports": [
{
"uuid": "5ec00000-0000-4000-8000-000000000007",
"report_number": "SAR-0001",
"report_type": "SAR",
"case_uuid": "c1a5e000-0000-4000-8000-000000000001"
}
]
}
Биометрические данные лица: удалить или сохранить
Каждая KYC-сессия с селфи для проверки живости содержит эмбеддинг лица, который используется для Поиск по лицу 1:N и обнаружения дубликатов. По умолчанию эмбеддинг удаляется вместе с сессией (face_retention_policy: delete_with_session), поэтому человек, чью сессию вы удалили, может пройти верификацию повторно без пометки как дубликат.
Приложения, которым нужно сохранять обнаружение дубликатов после удаления сессии, могут включить сохранение биометрического шаблона. Didit удаляет сессию и все её данные, как обычно, но сохраняет один отдельно управляемый биометрический шаблон лица без изображений, привязанный к пользователю этой сессии.
| Сохраняется | Никогда не сохраняется |
|---|---|
| Числовой шаблон лица, используемый для сравнения | Изображение лица, видео проверки живости, изображения документов, фрагменты портрета и любые другие медиафайлы |
Новый случайный идентификатор шаблона и непрозрачный provenance_reference | Идентификатор, номер, решение, извлечённые поля личности или payload признаков удалённой сессии |
Пользователь-владелец (vendor_user_uuid, текущий vendor_data) | Состояние списка блокировки, прошлые совпадения, метки мошенничества или утверждения о личности в других организациях |
Метаданные сохранения: retained_at, expires_at, политика, переопределение, класс инструкции, instruction_id и идентификатор действующего лица | Адреса электронной почты действующих лиц |
- Политика приложения в Business Console → App Settings → Data retention или через
PATCH /v3/webhook/(face_retention_policy,face_retention_days). См. Хранение данных. - Переопределение для отдельного вызова с помощью
retain_face_embeddingsв этом endpoint и в Пакетное удаление сессий. - Класс инструкции с помощью
deletion_instruction. Инструкцияprivacy_erasureвсегда имеет приоритет: она удаляет все сохранённые шаблоны этого пользователя и никогда не сохраняет новый.
Тело запроса
Все поля необязательны. Если не передавать тело, будет применяться политика приложения.| Поле | Тип | Описание |
|---|---|---|
retain_face_embeddings | boolean или null | Переопределяет политику приложения для этого удаления. true сохраняет шаблон, false удаляет эмбеддинг вместе с сессией, null или отсутствие поля означает, что применяется политика. |
face_retention_days | integer (1-3650) | Конечный срок хранения шаблона. Обязателен при сохранении шаблона, если приложение не задаёт face_retention_days. |
face_retention_deadline | datetime (ISO 8601) | Необязательный жёсткий срок истечения. Должен быть в будущем. |
deletion_instruction | operational_session_delete (по умолчанию) или privacy_erasure | Класс передаваемой инструкции. privacy_erasure удаляет все сохранённые шаблоны пользователя сессии перед удалением сессии и не может использоваться вместе с retain_face_embeddings: true. |
instruction_id | string (не более 255) | Ваш долговременный идентификатор этой инструкции, например номер тикета на удаление. Записывается в журнал аудита и в любой сохранённый шаблон. Если вы его не укажете, Didit сгенерирует его, и его можно будет увидеть в описании шаблона. |
Ответ
{
"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
}
| Поле | Описание |
|---|---|
session_id | Удалённая сессия. |
session_number | Номер удалённой сессии. |
face_retention_outcome | Что произошло с биометрическими данными лица в сессии. См. таблицу ниже. |
biometric_template_uuid | Идентификатор сохранённого биометрического шаблона, если face_retention_outcome равен retained_with_user; иначе null. |
biometric_template_expires_at | Когда будет удалён сохранённый биометрический шаблон; null, если шаблон не сохранён. |
deleted_child_verifications | Для KYB-сессии: сколько верификаций, созданных ею (KYC-сессии её ключевых лиц и KYB-сессии её корпоративных владельцев, рекурсивно), были удалены вместе с ней. Для KYC-сессии всегда 0. |
face_retention_outcome | Значение |
|---|---|
deleted | Сессия и её эмбеддинг лица удалены. Поведение по умолчанию. |
retained_with_user | Сессия удалена. Один биометрический шаблон без изображений остаётся привязанным к пользователю; его идентификатор: biometric_template_uuid. Управляйте им через API биометрических шаблонов. |
none | В сессии не было эмбеддинга лица для удаления или сохранения (например, KYB-сессия или KYC-сессия без селфи для проверки живости). |
ineligible_no_vendor_user | Сохранение было запрошено, но сессия не привязана к пользователю (она создана без vendor_data), поэтому привязать шаблон не к чему. Сессия и её эмбеддинг удалены. Результат невозможности сохранения записывается в журнал аудита. |
instruction_id в собственном журнале стирания данных, чтобы позже сопоставить его с журналом аудита.
Срок хранения и истечение
Каждый сохранённый шаблон имеет конечное значениеexpires_at. Didit устанавливает его как самый ранний из следующих сроков:
face_retention_daysиз запроса илиface_retention_daysприложения, если запрос его не содержит;- общий срок хранения данных, установленный для приложения, если он настроен;
face_retention_deadlineиз запроса, если он передан.
400, и ничего не удаляется. Сохранённые шаблоны не могут пережить самую раннюю из применимых инструкций клиента, окончание цели обработки, настроенный срок истечения, инструкцию субъекта данных на удаление или установленный законом предельный срок хранения биометрических данных. Вы отвечаете за выбор срока, который соответствует законам, применимым к вашим пользователям. Выбирайте более короткий срок всякий раз, когда этого требует применимое правило.
Удаление данных в целях защиты конфиденциальности
Отправьтеdeletion_instruction: "privacy_erasure", когда действуете по запросу субъекта данных. Didit удаляет все сохранённые биометрические шаблоны, привязанные к пользователю сессии, затем удаляет саму сессию и её эмбеддинг. Политика хранения приложения не может отменить инструкцию на удаление в целях конфиденциальности, а retain_face_embeddings: true отклоняется с ошибкой 400.
Удаление пользователя с помощью пакетного удаления пользователей также удаляет его сохранённые шаблоны.
Что не затрагивается
Удаление сессии не очищает эти данные автоматически. Если вы обрабатываете запрос на удаление данных (право на забвение), учитывайте их отдельно.- Записи блокировки, созданные из сессии (по лицу или по документу), остаются на месте. Удалите их в списке блокировки. Запись блокировки по лицу хранит собственную биометрическую запись, не зависящую от любого сохранённого шаблона.
- Токены общего доступа, уже выданные для сессии, не отзываются, но импортировать по ним больше нечего: импорт с таким токеном возвращает
400с{"share_token": ["Original session does not exist."]}. - Webhook-уведомления, уже доставленные для сессии, не затрагиваются. Доставки, которые ещё стоят в очереди, и их повторные попытки отбрасываются. Webhook для самого удаления не отправляется.
- Кредиты, уже списанные за верификацию, не возвращаются.
- Подписанные копии, уже отправленные подписанту по электронной почте на шаге «Электронная подпись», находятся в его почтовом ящике и не затрагиваются.
- Родительские сущности пользователь и компания не удаляются. Для них используйте удаление пользователей или удаление компаний. Если портрет профиля пользователя был получен из удаляемой сессии, портрет удаляется.
- Сохранённый биометрический шаблон (только если вы включили сохранение) остаётся до истечения срока или до очистки. Очистите его через API биометрических шаблонов, удалив пользователя или повторив удаление другой сессии того же пользователя с
deletion_instruction: "privacy_erasure".
Примеры
- По умолчанию (политика приложения)
- Сохранение биометрического шаблона
- Принудительное удаление в приложении с включённым сохранением
- Удаление по запросу о конфиденциальности
- Сессия без пользователя
- Сессия верификации бизнеса (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, не имеет пользователя, к которому можно привязать шаблон: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
}
Ошибки
| Статус | Когда | Тело ответа |
|---|---|---|
400 | privacy_erasure указан вместе с retain_face_embeddings: true | {"retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."]} |
400 | Сохранение запрошено без конечного срока в запросе или в приложении | {"detail": "A finite biometric-template retention duration is required."} |
403 | У учётных данных нет delete:sessions или сессия им не принадлежит | {"detail": "You do not have permission to perform this action."} |
404 | Сессия не найдена или уже удалена | {"detail": "Not found."} |
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."} |
503 | Биометрическое хранилище было недоступно при сохранении или удалении шаблона. При повторных попытках создаётся только один шаблон. | {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} |
400 ничего не удаляется. При 503 сессия остаётся на месте: повторяйте тот же запрос, пока не получите 200. Часть её сохранённых файлов или эмбеддинг лица могут быть уже удалены, поэтому после 503 на них нельзя полагаться.
Разрешения
Требуетсяdelete:sessions. Это же разрешение требуется для сессий типа «Проверка пользователей» (KYC) и «Верификация бизнеса» (KYB), а также для переопределения хранения.
Пакетное удаление
Для массовых операций с сессиями KYC используйтеPOST /v3/sessions/delete/. Этот метод принимает те же поля, относящиеся к хранению и инструкции. В одном запросе удаляется до 20 подходящих сессий с результатом по каждой; для остальных создаётся задание на удаление. См. Пакетное удаление сессий.
Миграция с ответов 204
До этого релиза эндпоинт возвращал204 No Content. Теперь он возвращает 200 OK с JSON-телом, описанным выше, чтобы каждое удаление сообщало свой face_retention_outcome. Обновите клиенты, которые проверяют 204.
Поведение по умолчанию не изменилось: существующие приложения остаются на delete_with_session, и никакая миграция не включает сохранение за вас. Включите его явно в Console или через PATCH /v3/webhook/.
Связанные материалы
Авторизации
API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.
Параметры пути
UUID (session_id) удаляемой сессии Проверки пользователей (KYC) или Верификации бизнеса (KYB), возвращённый при создании сессии. Должен быть каноническим UUID с дефисами — значение, не являющееся UUID, не совпадает с маршрутом и возвращает 404.
"11111111-2222-3333-4444-555555555555"
Тело
Необязательно. Полностью опустите тело запроса, чтобы следовать политике хранения приложения с выполнением удаления в рамках операционной деятельности.
Переопределить face_retention_policy приложения для этого удаления. При значении true после удаления сессии сохраняется один биометрический шаблон лица без изображения, привязанный к пользователю сессии; при false эмбеддинг лица удаляется вместе с сессией; опустите или укажите null, чтобы использовать политику приложения. Игнорируется для KYB-сессий и сессий без эмбеддинга лица.
true
Ограниченный срок хранения в днях для сохраняемого шаблона. Обязателен при сохранении шаблона, если в приложении ещё не задан face_retention_days. Значение expires_at шаблона является наименьшим из этого срока, общего окна хранения данных приложения и face_retention_deadline.
1 <= x <= 3650365
Необязательный точный срок действия сохранённого шаблона. Должен быть в будущем.
"2027-08-28T00:00:00Z"
Класс передаваемой инструкции. operational_session_delete удаляет сессию и сохраняет шаблон только тогда, когда это предусмотрено политикой или параметром retain_face_embeddings. privacy_erasure полностью удаляет каждый сохранённый биометрический шаблон, привязанный к пользователю сессии, перед удалением самой сессии, не может быть переопределён политикой приложения и не может сочетаться с retain_face_embeddings: true (400).
operational_session_delete, privacy_erasure "operational_session_delete"
Ваш постоянный идентификатор для этой инструкции по удалению (например, id тикета на удаление). Фиксируется в журнале аудита и на любом сохраненном шаблоне. Генерируется Didit, если опущен.
255"dsar-2026-0142"
Ответ
Сессия удалена. В теле ответа сообщается, что произошло с биометрическими данными лица из сессии, а для сессии KYB, сколько созданных ею верификаций было удалено вместе с ней.
Удалённая сессия.
Номер удалённой сессии.
Что произошло с лицевыми биометрическими данными сессии. deleted: эмбеддинг лица был удалён вместе с сессией (по умолчанию). retained_with_user: сессия удалена, а один биометрический шаблон без изображения остаётся привязанным к пользователю; см. biometric_template_uuid. none: в сессии не было эмбеддинга лица (например, сессия KYB или сессия KYC без селфи для проверки живости). ineligible_no_vendor_user: было запрошено сохранение, но у сессии нет связанного пользователя, поэтому эмбеддинг был удалён вместе с сессией. Сбой биометрического хранилища никогда не возвращается через это поле на данном endpoint: возвращается 503, и сессия не удаляется.
retained_with_user, deleted, none, ineligible_no_vendor_user Идентификатор сохранённого биометрического шаблона, если face_retention_outcome имеет значение retained_with_user; в противном случае null. Управляется через /v3/biometric-templates/{template_uuid}/.
Время удаления сохранённого биометрического шаблона, когда face_retention_outcome имеет значение retained_with_user; null, если шаблон не сохраняется.
Для сессии Верификации бизнеса (KYB): сколько созданных ею верификаций (KYC-сессии её ключевых лиц и KYB-сессии её корпоративных владельцев рекурсивно) было удалено вместе с ней. Всегда 0 для KYC-сессии.