> ## 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: KYB 데이터 삭제

> vendor_data 또는 didit_internal_id로 Didit 기업(KYB) 항목을 일괄 삭제합니다. GDPR/CCPA 준수.



기업 일괄 삭제 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Goal: Permanently delete one or many Didit Business (KYB) entities. The matching business records, their tag links, and their comment history are removed permanently. Verification sessions and their records (KYB session data, document submissions, AML hits, beneficial-owner verifications) are NOT removed by this endpoint; delete those separately with DELETE /v3/session/{sessionId}/delete/.

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

Request body — provide EXACTLY ONE selector (mutually exclusive):
\- vendor_data_list: string[] — your own identifiers (case-insensitive after normalisation).
\- didit_internal_id_list: string[] (UUIDs) — Didit's internal IDs.
\- delete_all: true — wipe every business in this application. No confirmation, no undo.

curl:
curl -X POST 'https://verification.didit.me/v3/businesses/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["company-123", "company-456"]}'

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

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. { "detail": "Provide vendor_data_list, didit_internal_id_list, or set delete_all=true." }
\- 401 — missing/invalid x-api-key.
\- 403 — lacks delete:businesses. { "detail": "You do not have permission to perform this action." }
\- 409 — the selection includes a company 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 companies. This request deleted nothing; repeat it once that deletion has finished.
\- 429 — rate-limited.

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/businesses/{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/businesses/overview.md)를 삭제합니다. 기업 레코드는 영구적으로 제거됩니다. 이 엔드포인트는 기업 확인(KYB) 세션을 대상으로 하지 않습니다. 세션은 기업과의 연결만 해제된 상태로 남습니다. 세션은 [세션 삭제](https://docs.didit.me/ko/sessions-api/delete-session.md)로 삭제하십시오. 거래도 대상이 아닙니다. 거래는 [거래 일괄 삭제](https://docs.didit.me/ko/management-api/transactions/delete.md)로 삭제하십시오.## 사용 시기- **잊힐 권리** 요청에 응할 때.
- QA 중 테스트 기업을 **정리**할 때.
- 자체 플랫폼에서 제거된 기업을 **프로비저닝 해제**할 때.## 참고 사항- `vendor_data` 값 또는 `didit_internal_id` 값의 목록을 받습니다.
- 멱등성이 있습니다. 이미 삭제된 기업을 다시 삭제해도 아무 작업도 수행되지 않습니다.
- 삭제된 항목 수만 반환하며 항목별 보고서는 반환하지 않습니다. 일치하는 항목이 없는 값은 별도 알림 없이 건너뜁니다.
- `deleted_at`이 설정된 `business.data.updated` 이벤트를 발생시킵니다.
- 기업 엔터티가 소유한 레코드는 함께 삭제됩니다. 여기에는 태그 연결, 댓글 기록, 기업 자체의 기기 및 네트워크 레코드가 포함됩니다.
- KYB 세션이 생성한 레코드는 함께 삭제되지 **않습니다**. 법인 등기부 데이터, 업로드된 문서, AML 적중 결과, 실소유자 및 주요 인물 확인은 모두 세션에 속하며, 세션 자체를 삭제할 때까지 남아 있습니다.## 확정된 규제 보고서의 데이터선택한 기업 중 하나라도 확정된 규제 보고서가 있는 케이스에 속해 있으면 요청 전체가 `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)로 삭제한 다음 같은 요청을 다시 보내십시오.## 이미 진행 중인 삭제기업은 한 번에 하나의 요청으로만 삭제됩니다. 선택한 기업 중 하나를 다른 요청이 아직 삭제하는 중이면, 이 요청은 최대 몇 초 대기한 후 `409`와 `code: subject_deletion_in_progress`를 반환하며 아무것도 삭제하지 않습니다.```json theme={null}
{
  "detail": "This person or company is being deleted. Retry after deletion completes.",
  "code": "subject_deletion_in_progress"
}
```다른 삭제가 끝난 후 같은 요청을 다시 보내십시오. 이미 삭제된 기업은 더 이상 일치하지 않으므로, 재시도 시에는 남은 항목만 삭제됩니다.## 권한역할에 `delete:businesses` 권한이 있어야 합니다. 일반적으로 `OWNER`와 `ADMIN`에게만 부여됩니다.## 관련 문서- [데이터 보존](https://docs.didit.me/ko/console/data-retention.md)
- [감사 로그](https://docs.didit.me/ko/console/audit-logs.md)
- [기업 운영](https://docs.didit.me/ko/entities/businesses/operations.md)


## OpenAPI

````yaml ko/openapi-25.json POST /v3/businesses/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/businesses/delete/:
    post:
      tags:
        - Businesses
      summary: 기업 일괄 삭제
      description: >-
        기업을 **영구 삭제**합니다. 이 작업은 취소할 수 없습니다. 차단하려면 `BLOCKED` 상태로 [Update Business
        Status](#patch-/v3/businesses/-vendor_data-/update-status/)를 사용하는 것이
        좋습니다.


        **제출된 규제 보고서:** 선택한 데이터가 최종 확정된 규제 보고서에 포함되어 있는 경우 전체 요청이 `409`로 거부되며
        아무것도 삭제되지 않습니다. 응답 본문은 `code: in_filed_report`를 사용하며 `uuid`,
        `report_number`, `report_type`, `case_uuid`로 각 보고서를 지정합니다. 해당 보고서를 삭제한 후
        요청을 다시 시도하십시오.
      operationId: batch_delete_businesses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                `vendor_data_list`, `didit_internal_id_list` 또는 `delete_all:
                true`를 제공하세요. 여러 항목이 전송될 때의 우선순위는 `delete_all` >
                `vendor_data_list` > `didit_internal_id_list`입니다(가장 높은 우선순위의
                선택자만 사용됨).
              properties:
                vendor_data_list:
                  type: array
                  items:
                    type: string
                  description: 삭제할 귀하 고유의 식별자 목록이며, 전송된 내용과 정확히 일치합니다.
                didit_internal_id_list:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: 삭제할 Didit 내부 UUID(`didit_internal_id`)입니다.
                delete_all:
                  type: boolean
                  default: false
                  description: '`true`인 경우 애플리케이션의 모든 기업을 삭제합니다. 목록 선택기와 함께 사용할 수 없습니다.'
            examples:
              Specific businesses:
                summary: vendor_data로 삭제
                value:
                  vendor_data_list:
                    - company-123
                    - company-456
              Specific internal IDs:
                summary: didit_internal_id로 삭제
                value:
                  didit_internal_id_list:
                    - a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    - b2c3d4e5-f6a7-8901-bcde-f12345678901
              All businesses:
                summary: 이 애플리케이션의 모든 기업 삭제
                value:
                  delete_all: true
      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: >-
            선택자가 제공되지 않았습니다(`vendor_data_list`, `didit_internal_id_list`,
            `delete_all`이 모두 누락되었거나 비어 있음). 오류 본문은 JSON 배열입니다.
          content:
            application/json:
              examples:
                Missing selector:
                  value:
                    - >-
                      Provide vendor_data_list, didit_internal_id_list, or set
                      delete_all=true.
        '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.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST 'https://verification.didit.me/v3/businesses/delete/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"vendor_data_list": ["company-123", "company-456"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.businesses.batch_delete(
                vendor_data_list=["company-123", "company-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.businesses.batchDelete({
              vendor_data_list: ["company-123", "company-456"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Businesses.BatchDelete(ctx, didit.BusinessesBatchDeleteParams{\n\tVendorDataList: didit.Some([]string{\"company-123\", \"company-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.BusinessesBatchDeleteParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.businesses().batchDelete(BusinessesBatchDeleteParams.builder()
                    .vendorDataList(List.of("company-123", "company-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->businesses->batchDelete([
                'vendor_data_list' => ['company-123', 'company-456'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result = didit.businesses.batch_delete(vendor_data_list:
            ["company-123", "company-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.Businesses.BatchDeleteAsync(new
            BusinessesBatchDeleteParams

            {
                VendorDataList = new string[] { "company-123", "company-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.