> ## 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データの消去

> Didit の企業（KYB）エンティティを vendor_data または didit_internal_id で一括削除できます。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.
\- 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>



      
      

貼り付け先

## 概要1件以上の[企業](https://docs.didit.me/ja/entities/businesses/overview.md)を削除します。企業のレコードは完全に削除されます。企業確認 (KYB)セッションはこのエンドポイントの対象外で、企業との紐付けが解除された状態で残ります。これらは[セッションの削除](https://docs.didit.me/ja/sessions-api/delete-session.md)で削除してください。取引も対象外です。取引は[取引の一括削除](https://docs.didit.me/ja/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/ja/management-api/regulatory-reports/delete.md)で各レポートを削除してから、同じリクエストを再度実行してください。## 権限役割には`delete:businesses`が付与されている必要があります。通常は`OWNER`と`ADMIN`に限定されます。## 関連情報- [データ保持](https://docs.didit.me/ja/console/data-retention.md)
- [監査ログ](https://docs.didit.me/ja/console/audit-logs.md)
- [企業の操作](https://docs.didit.me/ja/entities/businesses/operations.md)


## OpenAPI

````yaml ja/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: 選択内容に、確定済みの規制当局向けレポートに含まれる企業が含まれています。何も削除されません。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InFiledReportError'
        '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: 取引の削除を妨げている取引と、それぞれの取引を記載しているレポート。
    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: Consoleに表示されるレポート番号（例：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: >-
        お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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