> ## 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: GDPR 잊힐 권리

> Didit에서 KYC 또는 KYB 세션과 모든 관련 데이터를 삭제합니다. 기본적으로 얼굴 임베딩도 함께 삭제되며, 옵트인한 애플리케이션은 이미지 없는 생체 인식 템플릿을 보관할 수 있습니다.



세션 삭제 프롬프트
        프롬프트를 클립보드에 복사



      
      

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



      
      

붙여넣을 곳

## KYC 및 KYB 지원**사용자 인증(KYC)** 세션과 **기업 확인(KYB)** 세션 모두에서 작동합니다. `session_id`는 두 세션 유형 모두에서 확인되며, 삭제 동작은 두 유형에 동일하게 적용됩니다. 생체 인식 템플릿 보존은 KYC 세션에만 적용됩니다. 얼굴 임베딩은 KYC 세션에만 저장되기 때문입니다.## 동작- 세션은 보유한 모든 인증 시도와 함께 삭제됩니다. 여기에는 재제출로 대체된 결과도 포함됩니다. 세션의 결정, 추출된 데이터, 연결된 기능 기록(신분증 인증, 등기부 확인, 문서, AML, IP 분석 등), 검토 내역과 활동 로그, 저장된 모든 파일이 삭제됩니다.
- **기업 확인(KYB)** 세션을 삭제하면 해당 세션이 주요 인물(KYC)과 법인 소유주(KYB)를 위해 생성한 인증도 재귀적으로 함께 삭제됩니다. 응답의 `deleted_child_verifications`에 삭제된 개수가 표시됩니다. 연결만 되어 있는 인증, 예를 들어 재사용한 기존 승인 KYC는 삭제되지 않습니다.
- 전자 서명 데이터도 함께 삭제됩니다. 서명할 문서와 원본 Word 파일, 서명이 완료된 PDF, 증빙 PDF, 서명 이미지, 모든 필드 값이 포함됩니다. 이들의 다운로드 경로는 `404`를 반환합니다.
- 세션은 목록 및 결정 응답에서 즉시 사라지며, 호출 전에 발급된 미디어 URL은 더 이상 작동하지 않습니다.
- 세션에 대기열에 있는 webhook 전송과 해당 재시도는 폐기됩니다.
- 삭제된 인증에서 시작된 지속적인 AML 모니터링과 KYB 등기부 모니터링이 중단됩니다.
- 삭제는 영구적이며 되돌릴 수 없습니다. 복원 엔드포인트가 없으므로, 호출하기 전에 결정 PDF 등 필요한 항목을 반드시 내보내십시오.
- 응답은 삭제가 완료된 후에 전송되는 `200 OK`이며, 세션의 얼굴 생체 데이터에 어떤 일이 발생했는지 보고하는 JSON 본문이 포함됩니다. 클라이언트가 여전히 `204`를 기대한다면 [마이그레이션](#204-응답에서의-마이그레이션)을 참조하십시오.## 최종 확정된 규제 보고서의 데이터세션이 최종 확정된 규제 보고서가 있는 케이스에 속해 있으면, 요청은 `409`를 반환하며 아무것도 삭제되지 않습니다. 응답에는 `code: in_filed_report`가 포함되며 각 보고서가 명시됩니다.```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"
    }
  ]
}
```[보고서 삭제](https://docs.didit.me/ko/management-api/regulatory-reports/delete.md)로 각 보고서를 삭제한 다음 삭제를 다시 요청합니다. 보고서를 삭제해도 세션은 삭제되지 않습니다. 이 엔드포인트를 다시 호출하기 전까지 세션은 남아 있습니다.## 얼굴 생체 데이터: 삭제 또는 보존라이브니스 셀피가 포함된 모든 KYC 세션에는 [얼굴 검색 1:N](https://docs.didit.me/ko/core-technology/face-search/overview.md)과 중복 탐지에 사용되는 얼굴 임베딩이 생성됩니다. 기본적으로 이 임베딩은 세션과 함께 삭제됩니다(`face_retention_policy: delete_with_session`). 따라서 세션이 삭제된 사람이 다시 인증하더라도 중복으로 표시되지 않습니다.세션 삭제 후에도 중복 탐지가 유지되어야 하는 애플리케이션은 **생체 인식 템플릿 보존**을 선택할 수 있습니다. 이 경우 Didit은 세션과 관련 데이터를 평소와 같이 삭제하고, 세션의 [사용자](https://docs.didit.me/ko/entities/users/overview.md)에 연결된 이미지가 없는 얼굴 생체 인식 템플릿 하나를 별도로 관리하여 보존합니다.> [!WARNING]
>
> 보존된 생체 인식 템플릿은 생체 데이터입니다. 익명 데이터가 아니고, 일시적인 데이터도 아니며, 세션과 함께 삭제되지 않습니다. 템플릿은 예정된 만료일, 더 이른 적용 법률상 기한, 사용자 삭제, 개인정보 삭제 요청 또는 명시적 삭제까지 유지됩니다. 보존 기능은 컨트롤러 지침과 개인정보 처리방침에 이 내용이 포함된 경우에만 활성화하십시오.보존된 템플릿에 포함되는 항목과 포함되지 않는 항목은 다음과 같습니다.| 보존됨 | 절대 보존되지 않음 |
| - | - |
| 매칭에 사용되는 숫자형 얼굴 템플릿 | 얼굴 이미지, 라이브니스 영상, 문서 이미지, 인물 사진 크롭 및 기타 모든 미디어 |
| 새로 생성된 무작위 템플릿 ID와 불투명한 `provenance_reference` | 삭제된 세션의 ID, 번호, 결정, 추출된 신원 필드 또는 기능 페이로드 |
| 소유 사용자(`vendor_user_uuid`, 현재 `vendor_data`) | 차단 목록 상태, 이전 일치 결과, 사기 라벨 또는 조직 간 신원 주장 |
| 보존 메타데이터: `retained_at`, `expires_at`, 정책, 재정의, 지침 클래스, `instruction_id`, 작업 주체 ID | 작업 주체의 이메일 주소 |보존 설정은 범위가 넓은 것부터 가장 구체적인 것 순으로 세 곳에서 구성할 수 있습니다.1) **애플리케이션 정책**은 **Business Console → App Settings → Data retention**에서 설정하거나 `PATCH /v3/webhook/`(`face_retention_policy`, `face_retention_days`)을 통해 설정합니다. 자세한 내용은 [데이터 보존](https://docs.didit.me/ko/console/data-retention.md#생체-인식-템플릿-보존)을 참조하십시오.
2) **호출별 재정의**는 이 엔드포인트와 [Batch Delete Sessions](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)에서 `retain_face_embeddings`를 사용합니다.
3) **지침 클래스**는 `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자) | 이 지침에 대한 지속적인 참조 값입니다(예: 삭제 요청 티켓 ID). 감사 로그와 보존된 템플릿에 기록됩니다. 생략하면 Didit이 생성하며, 템플릿 상세 정보에서 확인할 수 있습니다. |### 응답```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
}
```| 필드 | 설명 |
| - | - |
| `session_id` | 삭제된 세션입니다. |
| `session_number` | 삭제된 세션의 번호입니다. |
| `face_retention_outcome` | 세션의 얼굴 생체 데이터에 어떤 일이 일어났는지 나타냅니다. 아래 표를 참조하십시오. |
| `biometric_template_uuid` | `face_retention_outcome`이 `retained_with_user`인 경우 보존된 생체 인식 템플릿의 ID이며, 그 밖의 경우 `null`입니다. |
| `biometric_template_expires_at` | 보존된 생체 인식 템플릿이 삭제되는 시점입니다. 보존된 템플릿이 없으면 `null`입니다. |
| `deleted_child_verifications` | KYB 세션의 경우, 이 세션이 생성한 인증 중 이 세션과 함께 삭제된 인증 건수입니다(주요 인물의 KYC 세션과 법인 소유자의 KYB 세션을 재귀적으로 포함합니다). KYC 세션의 경우 항상 `0`입니다. || `face_retention_outcome` | 의미 |
| - | - |
| `deleted` | 세션과 얼굴 임베딩이 삭제됩니다. 기본 동작입니다. |
| `retained_with_user` | 세션이 삭제됩니다. 이미지가 없는 생체 인식 템플릿 하나가 사용자에 연결된 상태로 남으며, 그 ID는 `biometric_template_uuid`입니다. [Biometric Templates API](https://docs.didit.me/ko/management-api/biometric-templates/overview.md)로 관리할 수 있습니다. |
| `none` | 삭제하거나 보존할 얼굴 임베딩이 세션에 없습니다(예: KYB 세션, 또는 라이브니스 셀피가 없는 KYC 세션). |
| `ineligible_no_vendor_user` | 보존이 요청되었지만 세션이 사용자와 연결되어 있지 않아(`vendor_data` 없이 생성됨) 템플릿을 연결할 대상이 없습니다. 세션과 임베딩은 삭제됩니다. 보존 불가 결과는 감사 로그에 기록됩니다. |응답은 Didit이 삭제 지침을 수락하고 적용했음을 확인하는 것일 뿐이며, 삭제 증명서가 아닙니다. 나중에 감사 추적을 대조할 수 있도록 `instruction_id`를 자체 삭제 로그에 보관하십시오.### 보존 기간과 만료보존된 모든 템플릿에는 유한한 `expires_at`이 설정됩니다. Didit은 다음 중 가장 이른 시점으로 이 값을 설정합니다.1) 요청의 `face_retention_days`, 또는 요청에서 값을 생략한 경우 애플리케이션의 `face_retention_days`;
2) 설정되어 있는 경우 애플리케이션의 일반 데이터 보존 기간;
3) 요청에 포함된 경우 요청의 `face_retention_deadline`.유한한 기간 없이 템플릿을 보존하도록 요청하면 `400`으로 거부되며, 아무것도 삭제되지 않습니다. 보존된 템플릿은 가장 이른 적용 가능한 고객 지침, 목적 종료 시점, 설정된 만료 시점, 정보 주체의 삭제 지침 또는 법정 생체 정보 기한보다 오래 유지될 수 없습니다. 사용자에게 적용되는 법률에 맞는 보존 기간을 선택할 책임은 귀하에게 있으며, 적용 규정이 요구하는 경우에는 더 짧은 기간을 선택하십시오.### 개인정보 삭제`deletion_instruction: "privacy_erasure"`를 정보주체 요청에 따라 처리하는 경우 전송합니다. Didit은 세션의 사용자에 연결된 보존 중인 생체 템플릿을 모두 삭제한 다음, 세션과 해당 얼굴 임베딩을 삭제합니다. 애플리케이션의 데이터 보존 정책으로는 개인정보 삭제 지시를 무시할 수 없으며, `retain_face_embeddings: true`를 보내면 `400`으로 거부됩니다.[사용자 일괄 삭제](https://docs.didit.me/ko/management-api/users/delete.md)로 사용자를 삭제해도 해당 사용자의 보존된 템플릿이 함께 삭제됩니다.## 영향을 받지 않는 항목세션을 삭제한다고 아래 항목이 자동으로 정리되지는 않습니다. 삭제권 요청을 처리하는 경우 이 항목들도 별도로 처리하십시오.- 세션에서 생성된 **차단 목록 항목**(얼굴 또는 문서)은 그대로 남습니다. [차단 목록](https://docs.didit.me/ko/entities/users/blocklist.md)에서 직접 삭제하십시오. 얼굴 차단 목록 항목은 보존된 템플릿과 별개로 자체 생체 항목을 유지합니다.
- 세션에 대해 이미 발급된 **공유 토큰**은 취소되지 않습니다. 다만 가져올 대상 세션이 없으므로, 토큰으로 [가져오기](https://docs.didit.me/ko/sessions-api/share-session/import.md)를 실행하면 `400`과 `{"share_token": ["Original session does not exist."]}` 응답이 반환됩니다.
- 세션에 대해 이미 전달된 **webhook**은 영향을 받지 않습니다. 아직 대기 중인 전송과 재시도는 삭제됩니다. 삭제 자체에 대해서는 webhook이 발송되지 않습니다.
- 인증에 이미 사용된 **크레딧**은 환불되지 않습니다.
- 전자 서명 단계에서 서명자에게 이미 이메일로 발송된 **서명된 사본**은 서명자의 메일함에 있으며 영향을 받지 않습니다.
- 상위 **사용자** 또는 **기업** 엔터티는 삭제되지 않습니다. 해당 항목은 [사용자 삭제](https://docs.didit.me/ko/management-api/users/delete.md) 또는 [기업 삭제](https://docs.didit.me/ko/management-api/businesses/delete.md)를 사용하십시오. 사용자의 프로필 초상이 삭제된 세션에서 왔다면 초상도 함께 제거됩니다.
- **보존된 생체 템플릿**(옵트인한 경우에만)은 만료되거나 직접 삭제할 때까지 남아 있습니다. [생체 템플릿 API](https://docs.didit.me/ko/management-api/biometric-templates/purge.md)로 삭제하거나, 사용자를 삭제하거나, 같은 사용자의 다른 세션을 `deletion_instruction: "privacy_erasure"`로 다시 삭제하여 제거할 수 있습니다.## 예시> [tab] 기본값(애플리케이션 정책)
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/4c5c7f3a-.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> 보존에 옵트인하지 않은 애플리케이션의 응답:
>
> ```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] 생체 템플릿 보존
>
> ```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] 옵트인한 앱에서 강제 삭제
>
> ```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] 개인정보 삭제
>
> ```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"}'
> ```
>
> 세션의 사용자에 대해 보존된 템플릿을 모두 먼저 삭제한 다음 세션을 삭제합니다:
>
> ```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] 사용자가 없는 세션
>
> `vendor_data` 없이 생성된 세션에는 템플릿을 연결할 사용자가 없습니다:
>
> ```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] 기업 확인(KYB) 세션
>
> ```bash theme={null}
> curl -X DELETE https://verification.didit.me/v3/session/bs-01HJX1.../delete/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> 기업 확인은 핵심 인물을 위해 생성된 세 건의 인증과 함께 삭제됩니다:
>
> ```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
> }
> ```## 오류| 상태 | 발생 시점 | 본문 |
| - | - | - |
| `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개는 요청 내에서 세션별 결과와 함께 삭제되며, 그 이상은 [삭제 작업](https://docs.didit.me/ko/management-api/sessions/get-deletion-job.md)으로 실행됩니다. [세션 일괄 삭제](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)를 참조하십시오.## 204 응답에서의 마이그레이션이번 릴리스 이전에는 이 엔드포인트가 `204 No Content`를 반환했습니다. 이제는 모든 삭제가 `face_retention_outcome`을 보고하도록 위에 설명된 JSON 본문과 함께 `200 OK`를 반환합니다. `204`를 검증하는 클라이언트는 업데이트하십시오.기본 동작은 변경되지 않았습니다. 기존 애플리케이션은 `delete_with_session`을 계속 사용하며, 마이그레이션이 대신 보존을 활성화하지 않습니다. 콘솔에서 또는 `PATCH /v3/webhook/`을 통해 명시적으로 활성화하십시오.## 관련 항목- [생체 템플릿](https://docs.didit.me/ko/management-api/biometric-templates/overview.md)
- [데이터 보존](https://docs.didit.me/ko/console/data-retention.md)
- [세션 개요](https://docs.didit.me/ko/sessions-api/overview.md)


## OpenAPI

````yaml ko/openapi-25.json DELETE /v3/session/{sessionId}/delete/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 신분증 인증 API입니다. x-api-key 헤더로 인증합니다.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/delete/:
    delete:
      tags:
        - Sessions
      summary: 인증 세션 삭제(KYC 또는 KYB)
      description: >-
        `session_id`를 사용하여 사용자 인증(KYC) 또는 기업 확인(KYB) 단일 인증 세션을 삭제합니다. ID는 먼저 KYC
        세션에서 조회한 다음 KYB 세션에서 조회하므로, 두 종류의 세션 모두 이 단일 URL을 통해 삭제됩니다.


        **삭제되는 항목:**

        - 세션 및 해당 세션이 보유한 모든 인증 시도(재제출로 대체된 결과 포함): 결정, 추출된 데이터, 모든 관련 기능
        레코드(신분증 인증, 얼굴, 라이브니스, 얼굴 대조, AML, 등기부 확인, IP 분석 등), 해당 검토 내역 및 활동 로그.

        - 세션이 소유한 저장된 모든 파일: 신분증 앞면/뒷면 사진(전체, 잘림 및 개인정보 보호를 위한 블러 처리 버전), 신분증 촬영
        동영상, 인물 사진 크롭본, NFC 칩 인물 사진 및 서명 이미지, 얼굴 기준 이미지, 라이브니스 동영상, 얼굴 대조 소스/타깃
        이미지, 주소 증명 문서 및 업로드된 추가 파일(KYC); 업로드된 기업 문서 및 추가 파일(KYB). 전자 서명 문서, 서명된
        PDF, 증빙 PDF 및 서명 이미지(KYC 및 KYB): 다운로드 경로 작동이 중단됩니다. 이전에 발급된 미디어
        URL(`https://<media-host>/...`)은 더 이상 확인되지 않습니다.

        - 세션의 얼굴 데이터. 이미지가 없는 템플릿을 유지하도록 선택하지 않는 한(참조: **얼굴 생체 인식 데이터**) 얼굴 임베딩도
        삭제됩니다.

        - 세션에 대해 대기열에 아직 남아 있는 webhook 전송 및 재시도. 이미 전송된 webhook은 영향을 받지 않습니다.

        - 기업 확인(KYB) 세션의 경우: 주요 인물(KYC) 및 법인 소유자(KYB)를 위해 생성된 인증이 재귀적으로 삭제되며
        `deleted_child_verifications`로 보고됩니다. 재사용된 기존 승인 완료 KYC와 같이 단순히 링크된 인증은
        삭제되지 않습니다.


        세션은 모든 읽기 endpoint에서 즉시 사라집니다. `GET /v3/session/{sessionId}/decision/`은
        `404`를 반환하고 `GET /v3/sessions/`는 목록 표시를 중단합니다. 삭제된 인증으로 인해 시작된 지속적인 AML
        모니터링 및 KYB 등기부 모니터링이 중단됩니다.


        **영향을 받지 않는 항목:** 이 세션에서 생성된 차단 목록 항목(얼굴 또는 문서)은 제거되지 **않습니다**. 해당 항목은
        차단 목록 endpoint에서 관리하십시오. 세션에 대해 발급된 공유 token은 취소되지 않지만, 가져올 대상이 남아 있지
        않습니다. 해당 token을 사용한 가져오기는 `{"share_token": ["Original session does not
        exist."]}`와 함께 `400`을 반환합니다. 이미 사용된 크레딧은 환불되지 **않습니다**. 상위 사용자(User) 또는
        기업(Business) 엔티티는 삭제되지 **않습니다**. 이에 대해서는 `POST /v3/users/delete/` 또는
        `POST /v3/businesses/delete/`를 사용하십시오. 사용자의 프로필 인물 사진이 이 세션에서 생성된 경우, 해당
        인물 사진도 세션과 함께 제거됩니다.


        **얼굴 생체 인식 데이터:** 기본적으로 세션의 얼굴 임베딩은 세션과 함께
        삭제됩니다(`face_retention_outcome: deleted`). 생체 인식 템플릿 보존을 선택한
        애플리케이션(`PATCH /v3/webhook/`에서 `face_retention_policy:
        retain_until_user_deleted`) 또는 `retain_face_embeddings: true`가 포함된 요청은
        중복 감지, 얼굴 검색 및 생체 인증이 계속 작동할 수 있도록 세션의 사용자에 고정된, 이미지가 없는 별도 관리 얼굴 생체 인식
        템플릿 하나를 유지합니다(`retained_with_user`). 템플릿에는 얼굴 이미지, 미디어, 신원 필드, 결정 또는 삭제된
        세션의 id가 절대 포함되지 않습니다. 이는 `biometric_template_expires_at`에 삭제되거나, 사용자 삭제,
        개인정보 삭제 또는 `/v3/biometric-templates/`를 통한 명시적 영구 삭제 시 더 일찍 삭제되는 생체 인식
        데이터입니다. 연결된 사용자가 없는 세션은 템플릿을 유지할 수 없습니다(`ineligible_no_vendor_user`).
        정보주체 권리 행사 요청의 경우 `deletion_instruction: privacy_erasure`를 전송하십시오. 해당
        사용자에 대해 보존된 모든 템플릿을 완전히 삭제하며 새 템플릿을 보존하지 않습니다.


        **되돌릴 수 없음:** 삭제는 영구적이며 복원 endpoint는 없습니다. 호출하기 전에 필요한 모든 항목(예: 결정 PDF)을
        내보내십시오.


        **부작용:** 삭제에 대해서는 webhook이 발생하지 않습니다.


        **응답:** 삭제가 완료되면 `face_retention_outcome`, 보존된 템플릿의 만료 시간, KYB 세션의 경우
        `deleted_child_verifications`를 보고하는 JSON 본문과 함께 `200 OK`가 반환됩니다. 이
        endpoint의 이전 버전은 `204 No Content`를 반환했습니다. `204`를 검증하는 클라이언트를 업데이트하십시오.
        자체 삭제 로그에 `instruction_id`를 보관하십시오.


        **멱등성:** HTTP 수준에서 멱등성을 지원하지 않습니다. 첫 번째 호출은 `200`을 반환하지만, 세션이 더 이상 확인되지
        않으므로 반복 호출 시 `404`를 반환합니다. `503` 이후에도 세션은 여전히 유지되므로 동일한 요청을 반복하여 삭제를
        완료하십시오.


        **인증:** `x-api-key` 헤더에 애플리케이션의 API 키를 전송하십시오. 세션은 해당 애플리케이션에 속해야 합니다.
        콘솔 사용자 액세스 토큰(`Authorization: Bearer ...`)도 `delete:sessions` 권한을 보유한 경우
        이 endpoint를 호출할 수 있습니다. 인증 실패 및 권한 실패는 모두 `403`을 반환합니다. 이 API는 `401`을 절대
        반환하지 않습니다.


        **속도 제한:** 모든 POST/PATCH/DELETE endpoint 전반에 걸쳐 API 키당 분당 300회의 공유 쓰기
        할당량이 적용되며, 초과 시 `429`를 반환합니다.


        숫자 `session_number`를 기준으로 KYC 세션을 일괄 삭제하려면 대신 `POST
        /v3/sessions/delete/`를 사용하십시오.


        **제출된 규제 보고서:** 선택한 데이터가 확정된 규제 보고서에 포함되어 있는 경우 전체 요청이 `409`와 함께 거부되며
        아무것도 삭제되지 않습니다. 본문은 `code: in_filed_report`를 사용하며 각 보고서의 `uuid`,
        `report_number`, `report_type`, `case_uuid`를 명시합니다. 보고서를 삭제한 후 요청을 다시
        시도하십시오.
      operationId: delete_v3_session_by_id
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            삭제할 사용자 인증(KYC) 또는 기업 확인(KYB) 세션의 UUID(`session_id`)로, 세션 생성 시 반환된
            값입니다. 표준 하이픈 형식의 UUID여야 합니다. UUID가 아닌 값은 라우트와 일치하지 않아 `404`를 반환합니다.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      requestBody:
        required: false
        description: 선택 사항입니다. 운영 삭제를 통해 애플리케이션의 보존 정책을 따르려면 본문을 완전히 생략하세요.
        content:
          application/json:
            schema:
              type: object
              properties:
                retain_face_embeddings:
                  type: boolean
                  nullable: true
                  description: >-
                    이번 삭제에 대해 애플리케이션의 `face_retention_policy`를 재정의합니다. `true`는
                    세션이 삭제된 후에도 세션의 사용자에 연결된 이미지가 없는 얼굴 생체 인식 템플릿 하나를 유지합니다.
                    `false`는 세션과 함께 얼굴 임베딩을 삭제합니다. 생략하거나 `null`로 설정하면 애플리케이션 정책을
                    따릅니다. KYB 세션 및 얼굴 임베딩이 없는 세션의 경우 무시됩니다.
                  example: true
                face_retention_days:
                  type: integer
                  minimum: 1
                  maximum: 3650
                  description: >-
                    보존된 템플릿의 유한 보존 기간(일 단위)입니다. 애플리케이션에서 이미
                    `face_retention_days`를 설정하지 않은 한 템플릿이 보존될 때 필수입니다. 템플릿의
                    `expires_at`은 이 기간, 애플리케이션의 일반 데이터 보존 기간, 그리고
                    `face_retention_deadline` 중 가장 빠른 시점으로 설정됩니다.
                  example: 365
                face_retention_deadline:
                  type: string
                  format: date-time
                  description: 보존된 템플릿의 선택적 강제 만료일입니다. 미래 시점이어야 합니다.
                  example: '2027-08-28T00:00:00Z'
                deletion_instruction:
                  type: string
                  enum:
                    - operational_session_delete
                    - privacy_erasure
                  default: operational_session_delete
                  description: >-
                    제공하는 지시의 유형입니다. `operational_session_delete`는 세션을 삭제하고 정책 또는
                    `retain_face_embeddings`에 명시된 경우에만 템플릿을 보존합니다.
                    `privacy_erasure`는 세션을 삭제하기 전에 세션의 사용자에 고정된 보존된 모든 생체 인식
                    템플릿을 제거하며, 애플리케이션 정책으로 재정의할 수 없고 `retain_face_embeddings:
                    true`와 함께 사용할 수 없습니다(`400`).
                  example: operational_session_delete
                instruction_id:
                  type: string
                  maxLength: 255
                  description: >-
                    이 삭제 지침에 대한 귀하의 영구 참조값입니다(예: 삭제 티켓 id). 감사 로그 및 보존되는 템플릿에
                    기록됩니다. 생략 시 Didit이 생성합니다.
                  example: dsar-2026-0142
            examples:
              Retain a biometric template:
                summary: 세션을 삭제하고 이미지가 없는 템플릿은 365일간 유지
                value:
                  retain_face_embeddings: true
                  face_retention_days: 365
                  instruction_id: post-approval-cleanup-2026-08
              Force deletion on an opted-in application:
                summary: 애플리케이션 정책과 관계없이 얼굴 임베딩 삭제
                value:
                  retain_face_embeddings: false
              Privacy erasure:
                summary: '정보주체 요청: 세션을 삭제하고 해당 정보주체에 대해 보존된 모든 템플릿을 영구 삭제합니다'
                value:
                  deletion_instruction: privacy_erasure
                  instruction_id: dsar-2026-0142
      responses:
        '200':
          description: >-
            세션이 삭제되었습니다. 본문에는 세션의 얼굴 생체 인식 데이터에 발생한 작업 내용과, KYB 세션의 경우 해당 세션이
            생성한 인증 중 세션과 함께 삭제된 인증의 수가 보고됩니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id:
                    type: string
                    format: uuid
                    description: 삭제된 세션입니다.
                  session_number:
                    type: integer
                    nullable: true
                    description: 삭제된 세션의 번호입니다.
                  face_retention_outcome:
                    type: string
                    enum:
                      - retained_with_user
                      - deleted
                      - none
                      - ineligible_no_vendor_user
                    description: >-
                      세션의 얼굴 생체 인식 데이터에 대해 수행된 작업입니다. `deleted`: 얼굴 임베딩이 세션과 함께
                      삭제되었습니다(기본값). `retained_with_user`: 세션은 삭제되고 이미지가 포함되지 않은
                      생체 인식 템플릿 하나가 사용자에 연결된 상태로 유지됩니다.
                      `biometric_template_uuid`를 참조하세요. `none`: 세션에 얼굴 임베딩이
                      없었습니다(예: KYB 세션 또는 라이브니스 셀피가 없는 KYC 세션).
                      `ineligible_no_vendor_user`: 보존이 요청되었으나 세션에 연결된 사용자가 없어 얼굴
                      임베딩이 세션과 함께 삭제되었습니다. 이 endpoint에서는 생체 인식 저장소 오류가 이 필드를 통해
                      보고되지 않으며, `503`을 반환하고 세션은 삭제되지 않습니다.
                  biometric_template_uuid:
                    type: string
                    format: uuid
                    nullable: true
                    description: >-
                      `face_retention_outcome`이 `retained_with_user`일 때 보존된 생체
                      인식 템플릿의 ID입니다. 그 외의 경우 `null`입니다.
                      `/v3/biometric-templates/{template_uuid}/`를 통해 관리합니다.
                  biometric_template_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      `face_retention_outcome`이 `retained_with_user`일 때 보존된 생체
                      인식 템플릿이 삭제되는 시점입니다. 템플릿이 보존되지 않은 경우 `null`입니다.
                  deleted_child_verifications:
                    type: integer
                    description: >-
                      기업 확인(KYB) 세션의 경우: 해당 세션이 생성하여 함께 삭제된 인증 건수(주요 인물의 KYC 세션
                      및 법인 소유자의 KYB 세션을 재귀적으로 포함)입니다. KYC 세션의 경우 항상 `0`입니다.
              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: 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: 기업 확인(KYB) 및 해당 주요 인물을 위해 생성된 3건의 인증이 함께 삭제되었습니다
        '400':
          description: 검증 오류 — 아무것도 삭제되지 않습니다.
          content:
            application/json:
              examples:
                Privacy erasure cannot retain:
                  value:
                    retain_face_embeddings:
                      - Privacy erasure cannot retain biometric templates.
                No finite retention duration:
                  summary: 요청 또는 애플리케이션에 face_retention_days 없이 보존이 요청됨
                  value:
                    detail: >-
                      A finite biometric-template retention duration is
                      required.
        '403':
          description: >-
            인증 또는 권한 오류입니다. 키가 누락된 경우에도 `403`이 반환되며, 잘못되었거나 취소되었거나 만료된 키는 `401`을
            반환합니다. 예외: `sessionId`가 라이브 세션으로 확인되지 않는 경우, 인증 전 소유자 조회에서 자격 증명이
            누락되었거나 유효하지 않더라도 먼저 `404`가 반환됩니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: x-api-key 헤더가 없거나 키가 유효하지 않습니다
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Insufficient permission:
                  summary: >-
                    delete:sessions 권한이 없는 사용자 token이거나 해당 세션을 소유하지 않은 애플리케이션의
                    자격 증명입니다
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            이 `session_id`를 가진 프로덕션 KYC 또는 KYB 세션이 존재하지 않습니다. id를 알 수 없거나 세션이 이미
            삭제되었습니다(성공한 삭제를 반복하면 여기에 도달함).
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not Found:
                  summary: 알 수 없거나 이미 삭제된 세션
                  value:
                    detail: Not found.
        '409':
          description: 세션이 확정된 규제 보고서의 일부입니다. 아무것도 삭제되지 않습니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InFiledReportError'
        '429':
          description: >-
            공유 쓰기 속도 제한을 초과했습니다(API 키당 분당 300개의 POST/PATCH/DELETE 요청). 재시도하기 전에
            `Retry-After` 및 `X-RateLimit-*` 응답 헤더를 확인하세요.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Rate limited:
                  summary: 쓰기 예산 소진됨
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
        '503':
          description: >-
            스토리지 서비스, 생체 인식 저장소 또는 모니터링 공급자를 사용할 수 없어 삭제를 완료하지 못했습니다. 세션은 여전히
            유지되므로 `200`을 반환할 때까지 동일한 요청을 반복하십시오. 저장된 일부 파일이나 얼굴 임베딩은 이미 삭제되었을 수
            있으므로 `503` 이후에는 이에 의존하지 마십시오. 재시도는 단일 템플릿으로 수렴합니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Session deletion unavailable:
                  summary: 스토리지 서비스 또는 모니터링 공급자를 일시적으로 사용할 수 없습니다.
                  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: 템플릿을 보존하거나 삭제하는 동안 생체 인식 저장소를 사용할 수 없었습니다
                  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: >-
        선택한 데이터가 확정된 규제 보고서에 포함되어 있어 삭제가 거부되었습니다. 아무것도 삭제되지 않았습니다. 보고서를 삭제한 후
        요청을 반복하십시오.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - in_filed_report
          description: 확정된 규제 보고서로 인해 삭제가 차단된 경우에 대한 안정적인 오류 코드입니다.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: 개인, 기업, 케이스 또는 세션 삭제를 차단하는 보고서 목록입니다.
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/FiledReportTransaction'
          description: 거래 삭제를 차단하는 거래 및 이를 나열하는 각 보고서입니다.
    FiledRegulatoryReport:
      type: object
      description: 요청된 삭제를 방지하는 완료된 규제 보고서입니다.
      required:
        - uuid
        - report_number
        - report_type
        - case_uuid
      properties:
        uuid:
          type: string
          format: uuid
          description: 보고서 UUID입니다.
        report_number:
          type: string
          description: '콘솔에 표시되는 보고서 번호(예: SAR-0001)입니다.'
        report_type:
          type: string
          enum:
            - SAR
            - STR
            - CTR
            - TTR
            - UTR
            - IFT
            - CBR
            - TFR
          description: 규제 보고서 유형입니다.
        case_uuid:
          type: string
          format: uuid
          description: 보고서가 속한 케이스.
    FiledReportTransaction:
      type: object
      description: 확정된 규제 보고서에 나열되어 있어 삭제할 수 없는 거래입니다.
      required:
        - uuid
        - transaction_id
        - reports
      properties:
        uuid:
          type: string
          format: uuid
          description: Didit 거래 UUID입니다.
        transaction_id:
          type: string
          description: 거래 생성 시 제공된 거래 식별자입니다.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: 이 거래가 포함된 확정된 보고서입니다.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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