> ## 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 삭제권

> vendor_data 기준으로 Didit 사용자를 일괄 삭제하거나 애플리케이션의 모든 사용자를 삭제합니다. GDPR 및 CCPA 잊힐 권리를 준수합니다.



일괄 사용자 삭제 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Goal: Permanently delete one or many Didit User entities. The matching user records, their tag links, their comment history, and every retained biometric template anchored to them are removed permanently. Verification sessions are NOT removed by this endpoint; delete those separately with POST /v3/sessions/delete/.

Endpoint: POST https://verification.didit.me/v3/users/delete/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Request body — provide at least one selector:
\- vendor_data_list: string[] — your own identifiers (case-insensitive after normalisation).
\- didit_internal_id_list: string[] — Didit internal user IDs, the didit_internal_id returned by the create and get endpoints. Can be combined with vendor_data_list; the two are OR'd.
\- delete_all: true — wipe every user in this application. No confirmation, no undo. Takes precedence: when delete_all is true, the two lists are ignored.

\- retain_face_embeddings: boolean, default false — your explicit choice to keep one image-free biometric template of each deleted person for duplicate detection. Everything else about the person is deleted. Requires face_retention_days.
\- face_retention_days: integer 1 to 3650 — how many days that template is kept. Sent without retain_face_embeddings: true it returns 400 on face_retention_days.

This endpoint never narrows delete_all with filters. The Console's filter_* batch params (filter_search, filter_status, filter_country, filter_date_from, filter_date_to, filter_tag, filter_latest_verification_status, filter_risk, filter_has_sessions, filter_has_open_alerts, filter_aml_monitoring, filter_can_sign_in, filter_auth_status, filter_auth_method, filter_auth_mfa_enabled) are NOT supported here. Any of them sent with a value, even false, is rejected with a 400 keyed by that field, and any other unknown filter_* key with "Unknown filter.", so a narrowed intent does not wipe the whole application. Exception: filter_has_approved_sessions and filter_has_declined_sessions are neither rejected nor applied, so with delete_all they still delete every user. Do not send them.

curl:
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"]}'

Response 200:
\{
"deleted": <int — number of users actually deleted; excludes vendor_data values that didn't match>
}

Biometric templates: unless you set retain_face_embeddings to true, if the application retained image-free biometric templates for these users after session deletion (see /management-api/biometric-templates/overview), Didit purges every one of them before the user is deleted, so the person stops matching in duplicate detection and Face Search. The purge is audited with instruction_source: vendor_user_delete.

Idempotency: re-sending the same list returns deleted: 0 after the first run (unmatched IDs are silently skipped). There is no undo.

Failure modes:
\- 400 — no selector supplied, or a Console-only filter_* param was sent.
No selector: {"vendor_data_list": ["This field is required unless delete_all is true."]}. An unknown filter_* key: {"filter_<name>": ["Unknown filter."]}.
\- 401 — missing/invalid x-api-key.
\- 403 — the API key is revoked or is not valid for this application.
\- 409 — the selection includes a person in a finalized regulatory report. Nothing is deleted. The body has code: in_filed_report and reports[] with uuid, report_number, report_type and case_uuid. Delete the reports, then repeat the request.
\- 409 — code: subject_deletion_in_progress: another request is still deleting one of the selected people. This request deleted nothing; repeat it once that deletion has finished.
\- 429 — rate-limited.
\- 503 — {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} A retained biometric template could not be purged. No user in the request is deleted; the affected template is already excluded from matching. Repeat the same request.

WARNING — delete_all: true: there is no confirmation step and no undo. Restrict to API keys you intentionally provision for batch maintenance.

When to prefer status change instead:
\- For day-to-day blocking, use PATCH /v3/users/{vendor_data}/update-status/ with {"status": "BLOCKED"} — it keeps the audit trail intact while rejecting future sessions for the same identifier.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

붙여넣을 곳

## 개요하나 이상의 [사용자 엔티티](https://docs.didit.me/ko/entities/users/overview.md)를 삭제합니다. 사용자 레코드는 영구적으로 제거됩니다. 사용자의 인증 세션은 이 endpoint의 적용 대상이 아니며, 사용자와의 연결만 해제된 상태로 남습니다. 이러한 세션은 [세션 삭제](https://docs.didit.me/ko/sessions-api/delete-session.md) 또는 [세션 일괄 삭제](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)로 삭제해야 합니다. 거래도 적용 대상이 아니므로 [거래 일괄 삭제](https://docs.didit.me/ko/management-api/transactions/delete.md)로 삭제해야 합니다.## 사용 시기- **잊힐 권리** 요청(GDPR / CCPA)
- QA 과정에서 테스트 사용자 **정리**
- 자체 플랫폼에서 제거된 사용자의 **프로비저닝 해제**## 참고 사항- `vendor_data` 값 목록, `didit_internal_id` 값 목록 또는 `delete_all: true`를 받을 수 있습니다. 두 목록은 함께 사용할 수 있으며, OR 조건으로 결합됩니다.
- 이 endpoint는 `delete_all`을 필터로 좁히지 않습니다. 콘솔의 `filter_*` 일괄 파라미터는 `400`으로 거부되므로, 범위를 좁히려던 의도와 달리 애플리케이션의 모든 사용자가 삭제되는 일은 없습니다.
  예외는 `filter_has_approved_sessions`와 `filter_has_declined_sessions`입니다. 이 두 매개변수는 거부되지도 적용되지도 않으므로 `delete_all`과 함께 보내지 마십시오.
- 전부 성공하거나 전부 실패합니다. 선택한 사용자에 대한 삭제를 완료할 수 없으면 아무도 삭제되지 않으며, 동일한 요청을 안전하게 다시 보낼 수 있습니다.
- 멱등성이 있습니다. 같은 목록을 다시 보내면 첫 실행 후에는 `deleted: 0`이 반환됩니다.
- 항목별 보고서가 아니라 삭제된 건수만 반환합니다. 일치하는 항목이 없는 값은 오류 없이 건너뜁니다. 보낸 식별자 수와 `deleted`를 비교하려면 중복을 제거한 목록을 보내십시오. 반복된 식별자는 한 번만 계산되기 때문입니다.
- 삭제 시 webhook은 발생하지 않습니다. webhook은 사용자 상태 및 데이터 변경 시 발생하며 삭제 시에는 발생하지 않습니다. 따라서 삭제 신호가 필요한 연동은 자체 시스템에 이를 직접 기록해야 합니다.
- 사용자와 연결된 인증 세션은 이 endpoint로 삭제되지 않습니다. 세션은 사용자와의 연결만 해제된 상태로 남으므로, 문서, 얼굴, 미디어는 세션 자체를 삭제해야만 제거됩니다.
- `retain_face_embeddings`(불리언, 기본값 `false`)와 `face_retention_days`(1\~3650)는 삭제된 사람마다 이미지가 없는 생체 인식 템플릿 하나를 중복 감지 목적으로 지정된 일수 동안 보관하도록 명시적으로 선택하는 옵션입니다. 그 사람에 관한 다른 어떤 것도 보관되지 않습니다. 두 옵션을 모두 생략하면 사용자와 함께 템플릿도 삭제됩니다. `retain_face_embeddings: true` 없이 `face_retention_days`를 보내거나, `face_retention_days` 없이 `retain_face_embeddings: true`를 보내면 `face_retention_days`에 대해 `400`이 반환됩니다.
- `retain_face_embeddings`를 `true`로 설정하지 않으면, 사용자에 연결된 [생체 인식 템플릿](https://docs.didit.me/ko/management-api/biometric-templates/overview.md)은 사용자를 삭제하기 전에 모두 제거됩니다. 생체 정보 저장소를 사용할 수 없어 템플릿을 제거할 수 없으면 호출은 `503`을 반환하고, 요청에 포함된 사용자는 아무도 삭제되지 않습니다. 같은 요청을 다시 보내면 작업이 완료됩니다.## 확정된 규제 보고서의 데이터선택한 사람 중 한 명이라도 확정된 규제 보고서가 있는 케이스에 속해 있으면 요청 전체가 `409`를 반환하고 아무것도 삭제되지 않습니다. 응답에는 `code: in_filed_report`가 포함되며, 각 보고서의 이름이 표시되어 콘솔에서 열어볼 수 있습니다.```json theme={null}
{
  "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"
    }
  ]
}
```각 보고서를 [보고서 삭제](https://docs.didit.me/ko/management-api/regulatory-reports/delete.md)로 삭제한 다음 같은 요청을 다시 보내십시오. 다른 선택 사람이 여전히 보고서에 포함되어 있다면, 해당 사람을 목록에서 빼는 것만으로는 충분하지 않습니다.## 이미 진행 중인 삭제한 사람은 한 번에 하나의 요청으로만 삭제됩니다. 선택한 사람 중 한 명을 다른 요청이 아직 삭제하고 있으면, 이 요청은 최대 몇 초 동안 기다린 후 `code: subject_deletion_in_progress`와 함께 `409`를 반환하며 아무것도 삭제하지 않습니다.```json theme={null}
{
  "detail": "This person or company is being deleted. Retry after deletion completes.",
  "code": "subject_deletion_in_progress"
}
```다른 삭제 작업이 끝나면 같은 요청을 다시 보내십시오. 이미 삭제된 사람은 더 이상 일치하지 않으므로, 재시도에서는 남은 대상만 삭제됩니다.## 권한애플리케이션의 활성 API 키는 모두 이 endpoint를 호출하는 데 사용할 수 있습니다. Didit API 키는 **역할 범위가 아닌 애플리케이션 범위로 지정됩니다**. 콘솔의 [역할 및 권한](https://docs.didit.me/ko/console/roles-permissions.md)(`delete:users` 등)은 콘솔에서 *사람*이 할 수 있는 작업을 결정하며, Management API 트래픽에는 적용되지 않습니다. 이 endpoint를 호출할 수 있는 사람은 애플리케이션의 API 키를 읽을 수 있는 사람으로 제한하십시오.## 관련 문서- [데이터 보존](https://docs.didit.me/ko/console/data-retention.md)
- [감사 로그](https://docs.didit.me/ko/console/audit-logs.md)
- [사용자 작업](https://docs.didit.me/ko/entities/users/operations.md)
- [생체 인식 템플릿](https://docs.didit.me/ko/management-api/biometric-templates/overview.md)


## OpenAPI

````yaml ko/openapi-25.json POST /v3/users/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/users/delete/:
    post:
      tags:
        - Users
      summary: 사용자 일괄 삭제
      description: >-
        사용자를 **영구 삭제**합니다. 사용자 레코드가 영구적으로 제거됩니다. 일상적인 차단의 경우 `BLOCKED` 상태로
        [Update User Status](#patch-/v3/users/-vendor_data-/update-status/)를
        사용하는 것이 좋습니다. `vendor_data_list`, `didit_internal_id_list` 또는 둘 다 동시에
        사용하여 사용자를 선택하거나 `delete_all: true`를 전달하십시오. 이 endpoint는 필터로
        `delete_all`의 범위를 좁히지 않습니다. Console의 People 필터는 `400`으로 거부되므로(`400` 응답
        참조), 범위를 좁히려는 의도가 전체 삭제로 이어지지 않습니다. 두 가지 예외:
        `filter_has_approved_sessions` 및 `filter_has_declined_sessions`는 거부되지도
        않고 적용되지도 않으므로, `delete_all: true`와 함께 사용하면 여전히 모든 사용자가 삭제됩니다. 이 필터들을
        전송하지 마십시오.


        **생체 인식 템플릿:** `retain_face_embeddings`를 `true`로 설정하지 않는 한, 세션 삭제 후 이
        사용자들을 위해 보존된 모든 이미지가 없는 생체 인식 템플릿(`/v3/biometric-templates/` 참조)은 사용자가
        삭제되기 전에 제거되므로 중복 감지 및 얼굴 검색에서 해당 인물이 더 이상 일치하지 않게 됩니다.
        `retain_face_embeddings: true` 및 `face_retention_days`를 설정하면 해당 일수 동안
        1인당 이미지가 없는 생체 인식 템플릿 1개를 유지하도록 선택할 수 있으며, 해당 인물에 대한 다른 정보는 일체 보존되지
        않습니다. 생체 인식 스토어를 사용할 수 없어 템플릿을 제거할 수 없는 경우 호출은 `503`을 반환하고 요청의 어떤 사용자도
        삭제되지 않으며, 요청을 다시 시도하면 작업이 완료됩니다.


        **제출된 규제 보고서:** 선택한 데이터가 최종 확정된 규제 보고서에 포함되어 있는 경우 전체 요청이 `409`로 거부되며
        아무것도 삭제되지 않습니다. 응답 본문은 `code: in_filed_report`를 사용하며 `uuid`,
        `report_number`, `report_type`, `case_uuid`로 각 보고서를 지정합니다. 해당 보고서를 삭제한 후
        요청을 다시 시도하십시오.
      operationId: batch_delete_users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                `vendor_data_list`, `didit_internal_id_list` 또는 `delete_all:
                true`를 제공하세요. 두 목록은 결합될 수 있으며 OR 조건으로 처리됩니다. `delete_all`이
                `true`이면 우선 적용되며 두 목록은 모두 무시됩니다.
              properties:
                vendor_data_list:
                  type: array
                  items:
                    type: string
                  description: 삭제할 귀하 고유의 식별자 목록이며, 전송된 내용과 정확히 일치합니다.
                didit_internal_id_list:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    삭제할 Didit 내부 사용자 ID입니다. 생성 및 조회 endpoint에서 반환된
                    `didit_internal_id`입니다.
                delete_all:
                  type: boolean
                  default: false
                  description: '`true`인 경우 애플리케이션의 모든 사용자를 삭제합니다.'
                retain_face_embeddings:
                  type: boolean
                  default: false
                  description: >-
                    중복 감지를 위해 삭제된 각 개인의 이미지가 없는 생체 인식 템플릿을 `face_retention_days`
                    동안 보존할지 여부에 대한 귀하의 명시적 선택입니다. 해당 개인에 관한 다른 모든 정보는 삭제됩니다.
                    사용자와 함께 템플릿을 삭제하려면 생략하거나 `false`를 전달하십시오. `true`인 경우
                    `face_retention_days`가 필수입니다.
                face_retention_days:
                  type: integer
                  minimum: 1
                  maximum: 3650
                  description: >-
                    `retain_face_embeddings`가 `true`일 때 이미지가 없는 생체 인식 템플릿이 보존되는
                    일수입니다. 해당 설정과 함께 필수이며, 설정 없이 전달되면 `face_retention_days`에 대해
                    `400` 오류로 거부됩니다.
                  example: 365
            examples:
              Specific users:
                summary: vendor_data로 사용자 삭제
                value:
                  vendor_data_list:
                    - user-123
                    - user-456
              By Didit internal ID:
                summary: didit_internal_id로 사용자 삭제
                value:
                  didit_internal_id_list:
                    - 3f1c0d3e-8f0a-4c2e-9a3d-9b1f5f4a2c11
              All users:
                summary: 이 애플리케이션의 모든 사용자 삭제
                value:
                  delete_all: true
              Keep face templates:
                summary: 사용자를 삭제하고 익명 얼굴 템플릿은 365일간 유지
                value:
                  vendor_data_list:
                    - user-123
                  retain_face_embeddings: true
                  face_retention_days: 365
      responses:
        '200':
          description: 사용자가 삭제되었습니다. 실제로 삭제된 사용자 수를 반환합니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: integer
                    description: 삭제된 사용자 수(일치하지 않는 vendor_data 값은 제외됨)입니다.
              examples:
                Deleted some:
                  value:
                    deleted: 2
                Nothing matched:
                  value:
                    deleted: 0
        '400':
          description: >-
            유효성 검사 오류입니다. 아무것도 삭제되지 않습니다. 오류는 필드 이름별로 키가 지정됩니다. 선택자가 없는 경우(두 목록
            모두 없고 `delete_all`이 `true`가 아님) 본문은 `{"vendor_data_list": ["This
            field is required unless delete_all is true."]}`입니다. 빈 목록은 자체 키 아래에서
            `"This list may not be empty."`로 거부됩니다. 콘솔 전용 필터(`filter_search`,
            `filter_status`, `filter_country`, `filter_date_from`,
            `filter_date_to`, `filter_tag`, `filter_latest_verification_status`,
            `filter_risk`, `filter_has_sessions`, `filter_has_open_alerts`,
            `filter_aml_monitoring`, `filter_can_sign_in`, `filter_auth_status`,
            `filter_auth_method` 또는 `filter_auth_mfa_enabled`)는 `false`를 포함해 값을
            가지는 경우 해당 각 필드를 키로 하는 객체와 함께 거부됩니다. 그 외 알 수 없는 `filter_*` 키는
            `"Unknown filter."`로 거부됩니다.
          content:
            application/json:
              examples:
                Missing selector:
                  summary: list와 delete_all이 모두 제공되지 않았습니다
                  value:
                    vendor_data_list:
                      - This field is required unless delete_all is true.
                Console-only filter:
                  value:
                    filter_has_sessions: >-
                      This filter is Console-only and is not supported by this
                      endpoint.
        '401':
          description: >-
            자격 증명이 제공되지 않았습니다. `x-api-key` 헤더(또는 `Authorization: Bearer` token)가
            없는 `/v3/users/*` 경로에 대한 요청은 API에 도달하기 전에 인증 미들웨어에 의해 거부됩니다.
          content:
            application/json:
              examples:
                Missing credentials:
                  value:
                    detail: >-
                      You must be authenticated with a valid access token to
                      access this endpoint.
        '403':
          description: >-
            유효하지 않거나 해지된 API 키이거나, 키에 이 애플리케이션의 사용자를 삭제할 권한이 없습니다. 키가 누락되면
            `403`을 반환하며, 잘못되었거나 해지되었거나 만료된 키는 `401`을 반환합니다.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '409':
          description: >-
            아무것도 삭제되지 않았습니다. `code`에 이유가 표시됩니다. 선택 항목에 제출 완료된 규제 보고서에 포함된 인물이 있는
            경우 `in_filed_report`, 다른 요청이 선택된 인물 중 한 명을 아직 삭제 중인 경우
            `subject_deletion_in_progress`입니다. 해당 삭제가 완료된 후 요청을 다시 시도하십시오.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InFiledReportError'
                  - $ref: '#/components/schemas/SubjectDeletionInProgressError'
        '429':
          description: 속도 제한 초과. 대기 후 `Retry-After`에 지정된 시간 간격이 지난 뒤 재시도하세요.
          content:
            application/json:
              examples:
                Rate limited:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
        '503':
          description: >-
            생체 인식 템플릿을 보존하거나 삭제하는 동안 생체 인식 저장소를 사용할 수 없었습니다. 아무것도 삭제되지 않았으므로 동일한
            요청을 반복하십시오. 재시도는 멱등성을 가지며 단일 템플릿으로 수렴됩니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Retryable:
                  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
          source: |-
            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"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.users.batch_delete(
                vendor_data_list=["user-123", "user-456"],
            )
            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.users.batchDelete({
              vendor_data_list: ["user-123", "user-456"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{\n\tVendorDataList: didit.Some([]string{\"user-123\", \"user-456\"}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            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);
        - lang: php
          label: PHP
          source: |-
            <?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());
        - lang: ruby
          label: Ruby
          source: >-
            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_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.Users.BatchDeleteAsync(new
            UsersBatchDeleteParams

            {
                VendorDataList = new string[] { "user-123", "user-456" },
            });

            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: 거래 삭제를 차단하는 거래 및 이를 나열하는 각 보고서입니다.
    SubjectDeletionInProgressError:
      type: object
      description: >-
        다른 요청이 아직 이 개인 또는 기업을 삭제하는 중입니다. 이 요청은 아무것도 삭제하지 않았으며 해당 삭제가 완료된 후 재시도할
        수 있습니다. 재시도 시 여전히 선택되어 있는 항목이 삭제됩니다.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - subject_deletion_in_progress
          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.