> ## 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：KYCセッションの整理

> DiditのセッションAPIで、KYCセッションをセッション番号指定または全件まとめて削除できます。20件までは各セッションの結果を返し、それ以上は削除ジョブとして実行され、ポーリングで進捗を確認します。



セッション一括削除のプロンプト
        プロンプトをクリップボードにコピー



      
      

\<pre>

\`Goal: Delete a list of User Verification (KYC) sessions, or every session, for the calling application, and control what happens to each session's face biometric data. KYC only — KYB sessions are not covered here; use DELETE /v3/session/{sessionId}/delete/ for a single KYB or KYC session.

Endpoint: POST https://verification.didit.me/v3/sessions/delete/
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json

Request body — provide EXACTLY ONE selector:
\- session_numbers: string[] — UI-visible decimal session numbers ("#1234" style), NOT UUIDs. Each entry must be digits only (regex ^[0-9]+$). minItems: 1.
\- delete_all: true — delete every remaining KYC session for the application. When delete_all is true, session_numbers is ignored.

Narrowing delete_all (optional, only together with delete_all: true):
\- filter_<name> - any filter of GET /v3/sessions/ (see /sessions-api/list-sessions) prefixed with filter_, with the same values: filter_status, filter_workflow_id, filter_date_from, filter_date_to, filter_vendor_data, filter_country, filter_document_type, filter_warning, filter_search and the others. Filters that take several values in GET /v3/sessions/ (status, workflow_id, country, region, document_type, document_name, session_type, warning, organization_name) accept a comma-separated string or an array. The others take one value: an array is joined into one comma-separated value, so several dates, UUIDs or api_service values are refused with 400, and several texts are not matched as alternatives. An empty value is ignored and does not narrow the selection.
\- An unknown filter_* key returns 400 { "filter_<name>": "Unknown filter." } and a value that cannot be read returns 400 keyed by that filter_* key (for example { "filter_date_from": ["Enter a valid date."] }). Nothing is deleted in either case.
\- A deletion job applies the same filters.

Optional retention and instruction fields (same semantics as the single-session endpoint, applied to every matched session):
\- retain_face_embeddings (boolean | null) — true keeps an image-free biometric template anchored to each session's User; false deletes the embedding with the session; omit/null follows the application's face_retention_policy.
\- face_retention_days (integer 1-3650) — required when retaining unless the application sets face_retention_days.
\- face_retention_deadline (ISO 8601 datetime, future) — optional hard expiry.
\- deletion_instruction ("operational_session_delete" default | "privacy_erasure") — privacy_erasure purges every retained template for each session's User and never retains a new one. Cannot be combined with retain_face_embeddings: true (400).
\- instruction_id (string, max 255) — your durable reference for this instruction; recorded on the audit trail and on every retained template.

curl:
curl -X POST 'https://verification.didit.me/v3/sessions/delete/' \
-H "x-api-key: YOUR_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"session_numbers": ["1001", "1002", "1003"]}'

Response: the number of matching sessions decides, whether they are selected by session_numbers or with delete_all.

Up to 20 matching sessions: they are deleted in the request. Response 200 (this endpoint no longer returns 204):
\{
"results": [
\{"session_id": "<uuid>", "session_number": 1001, "face_retention_outcome": "deleted", "biometric_template_uuid": null, "biometric_template_expires_at": null, "deleted_child_verifications": 0},
\{"session_id": "<uuid>", "session_number": 1002, "face_retention_outcome": "retained_with_user", "biometric_template_uuid": "<uuid>", "biometric_template_expires_at": "<ISO 8601 datetime>", "deleted_child_verifications": 0},
\{"session_id": "<uuid>", "session_number": 1003, "face_retention_outcome": "failed_retryable", "biometric_template_uuid": null, "biometric_template_expires_at": null, "deleted_child_verifications": 0}
]
}
face_retention_outcome per session:
\- deleted: session and face embedding deleted (default).
\- retained_with_user: session deleted; an image-free biometric template stays anchored to the User until biometric_template_expires_at (manage it via /v3/biometric-templates/).
\- none: the session had no face embedding.
\- ineligible_no_vendor_user: retention requested but the session has no linked User; session and embedding deleted.
\- failed_retryable: the group this session was deleted with could not be deleted (a storage service, a biometric store or a monitoring provider was unavailable). That session is NOT deleted and is still in place; re-run the request for it. Other groups in the same request are unaffected.
deleted_child_verifications is always 0 here: this endpoint deletes KYC sessions only.

More than 20 matching sessions: they are deleted in the background. Response 202 with a deletion job:
\{"job_id": "<uuid>", "status": "PENDING", "total": 250, "processed": 0, "outcomes": {"deleted": 0, "none": 0, "retained_with_user": 0, "ineligible_no_vendor_user": 0, "failed_retryable": 0, "already_deleted": 0}, "deleted_child_verifications": 0, "error": null, "created_at": "<datetime>", "completed_at": null}
Poll GET /v3/sessions/delete/{job_id}/ every few seconds until status is COMPLETED or FAILED. The job reports counts per outcome, never which sessions it deleted. A delete_all job deletes only the sessions created before the request. A FAILED job explains why in error; the sessions it had not reached are still in place, so repeat the request to delete them.

Side effects:
\- Each matched session is deleted along with everything it produced, including every verification attempt: its decision, its extracted data, its KYC / Face / AML / Location / POA / Phone / Email records, its reviews and activity log, and all of its stored files.
\- The sessions stop appearing in GET /v3/sessions/ and GET /v3/session/{sessionId}/decision/, and media URLs issued before the call stop resolving.
\- Webhook deliveries still queued for the deleted sessions, and their retries, are dropped. Webhooks already delivered are not affected.
\- Share tokens issued for the sessions 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 sessions are NOT removed.
\- Credits already consumed by the verifications are NOT refunded.
\- The parent User entities are NOT deleted; use POST /v3/users/delete/ for those (that also purges their retained templates).
\- NO deletion webhook is emitted.
\- Sessions are deleted in groups; a failure in one group does not roll back the others. Numbers that no longer match a live session are skipped and do not appear in results.

Idempotency: re-running with the same session_numbers deletes nothing more (numbers that no longer match a session are skipped). Deletion is permanent and cannot be undone.

Failure modes:
\- 400: validation, nothing deleted:
\{ "session_numbers": ["This field is required unless delete_all is true."] }
\{ "session_numbers": ["All session_numbers must be numeric."] }
\{ "retain_face_embeddings": ["Privacy erasure cannot retain biometric templates."] }
\{ "detail": "A finite biometric-template retention duration is required." }
\{ "filter_reviewer": "Unknown filter." }
\{ "filter_date_from": ["Enter a valid date."] }
\- 409: at least one selected session is part of 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.
\- 403: API key invalid or application not allowed. { "detail": "You do not have permission to perform this action." }

Migration note: until this release the endpoint returned 204 with an empty body; it now returns 200 with results[], or 202 with a deletion job when more than 20 sessions match. Existing applications stay on delete_with_session until you explicitly change the policy.

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

\</pre>



      
      

貼り付け先

## 動作一致した各セッションは、[セッションの削除](https://docs.didit.me/ja/sessions-api/delete-session.md)とまったく同じ方法で削除されます。セッション、そのセッションが保持するすべての認証試行、判定と抽出データ、機能レコード、保存されているすべてのファイルが削除され、セッションはすべての読み取りエンドポイントから表示されなくなり、発行済みのメディアURLは解決できなくなります。削除されたセッションについてキューに残っているWebhookの配信とその再試行は破棄されます。配信済みのWebhookには影響しません。削除は永続的であり、元に戻すことはできません。選択したセッションのいずれかが確定済みの規制当局向けレポートに含まれている場合、リクエスト全体が`409`を返し、何も削除されません。レスポンスには`code: in_filed_report`が含まれ、該当する各レポートが示されます。[レポートの削除](https://docs.didit.me/ja/management-api/regulatory-reports/delete.md)で各レポートを削除してから、リクエストを再度実行してください。レポートを削除してもセッションは削除されません。このリクエストを再度実行するまで、セッションは残ります。`session_numbers`と`delete_all`のどちらで選択した場合でも、一致するセッションの件数によってリクエストへの応答方法が決まります。| 一致するセッション | レスポンス |
| - | - |
| 20件以下 | 削除完了後に`200 OK`を返し、`results`には一致したセッションごとに1件の結果が含まれます。 |
| 20件超 | 削除ジョブとともに`202 Accepted`を返します。セッションはバックグラウンドで削除されます。完了するまで[セッション削除ジョブの取得](https://docs.didit.me/ja/management-api/sessions/get-deletion-job.md)をポーリングしてください。 |結果はセッションが削除されたことを示しますが、`face_retention_outcome`が`failed_retryable`の場合は例外です。そのセッションは削除**されておらず**、そのまま残っています。そのため、この結果は再試行すべき失敗として扱い、決して削除の確認として扱わないでください。
アプリケーション内の現在存在するKYCセッションに一致しない番号はスキップされ、`results`には含まれません。## フィルターによる`delete_all`の絞り込み`delete_all: true`を指定すると、[セッションの一覧取得](https://docs.didit.me/ja/sessions-api/list-sessions.md)のフィルターに`filter_`を接頭辞として付けて、選択対象を絞り込めます。
これらのフィルターには、クエリパラメーターと同じ値を指定します。
複数の値を受け付けるフィルター(`status`、`workflow_id`、`country`、`region`、`document_type`、`document_name`、`session_type`、`warning`、`organization_name`)には、カンマ区切りの文字列または配列を指定できます。```json theme={null}
{
  "delete_all": true,
  "filter_status": ["Declined"],
  "filter_workflow_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "filter_date_from": "2026-09-01",
  "filter_date_to": "2026-09-30"
}
```- フィルターは`delete_all`と組み合わせた場合にのみ適用されます。`session_numbers`と組み合わせた場合、フィルターは検証されますが、選択対象は変わりません。
- その他のフィルターはすべて1つの値のみを受け付けます。
  配列はカンマ区切りの1つの値に結合されるため、複数の日付、UUID、`api_service`の値を指定すると`400`が返され、複数の`vendor_data`、`search`、`screened_full_name`のテキストは、いずれかに一致すればよい条件としては照合されません。
- 値が空のフィルターは無視されるため、選択対象は絞り込まれません。
- 不明な`filter_*`キーを指定すると`400` `{"filter_reviewer": "Unknown filter."}`が返され、解釈できない値を指定すると、`{"filter_date_from": ["Enter a valid date."]}`のように`400`が返され、そのレスポンスは該当する`filter_*`キーをキーとします。
  いずれの場合も何も削除されないため、フィルターの入力ミスによって削除対象がすべてのセッションに広がることはありません。
- 削除ジョブにも同じフィルターが適用され、他のすべての`delete_all`と同様に、リクエストより前に作成されたセッションのみが対象となります。## 保持および指示のフィールドこのエンドポイントは、単一セッションのエンドポイントと同じ任意のフィールドを受け付け、一致したすべてのセッションに適用します。| フィールド | 型 | 説明 |
| - | - | - |
| `retain_face_embeddings` | booleanまたはnull | このリクエストについて、アプリケーションの`face_retention_policy`を上書きします。 |
| `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です。監査証跡と保持されるすべてのテンプレートに記録されます。 |保持されるテンプレートに含まれるものと含まれないもの、`expires_at`の算出方法、プライバシー消去の指示の動作については、[セッションの削除](https://docs.didit.me/ja/sessions-api/delete-session.md#顔の生体認証データ-削除または保持)を参照してください。## セッションごとの結果最大20件の一致するセッションについて、`200 OK`はセッションごとに1件の結果を返します。```json theme={null}
{
  "results": [
    { "session_id": "4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02", "session_number": 1001, "face_retention_outcome": "deleted", "biometric_template_uuid": null, "biometric_template_expires_at": null, "deleted_child_verifications": 0 },
    { "session_id": "b8e1d2c3-4f5a-4b6c-8d7e-9f0a1b2c3d4e", "session_number": 1002, "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": "7a1e9c2d-5f4b-4c3a-8e2d-1b0a9f8e7d6c", "session_number": 1003, "face_retention_outcome": "ineligible_no_vendor_user", "biometric_template_uuid": null, "biometric_template_expires_at": null, "deleted_child_verifications": 0 },
    { "session_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f", "session_number": 1004, "face_retention_outcome": "failed_retryable", "biometric_template_uuid": null, "biometric_template_expires_at": null, "deleted_child_verifications": 0 }
  ]
}
```各結果には、[セッションの削除](https://docs.didit.me/ja/sessions-api/delete-session.md#レスポンス)のレスポンスと同じフィールドが含まれます。`biometric_template_expires_at`は保持されたテンプレートが削除される日時です。このエンドポイントはKYCセッションのみを削除するため、ここでは`deleted_child_verifications`は常に`0`です。| `face_retention_outcome` | 意味 |
| - | - |
| `deleted` | セッションとその顔エンベディングが削除されます。デフォルトの動作です。 |
| `retained_with_user` | セッションは削除されます。画像を含まない生体認証テンプレートが1件、ユーザーに紐付いて残ります。そのIDは`biometric_template_uuid`です。 |
| `none` | セッションには、削除または保持する顔エンベディングがありませんでした。 |
| `ineligible_no_vendor_user` | 保持がリクエストされましたが、セッションがユーザーに紐付いていないため、テンプレートを紐付ける先がありません。セッションとそのエンベディングは削除されます。 |
| `failed_retryable` | ストレージサービス、生体認証ストア、またはモニタリングプロバイダーが利用できなかったため、このセッションを含むグループを削除できませんでした。このセッションは削除**されておらず**、そのまま残っています。このセッションについてリクエストを再実行してください。再試行しても、テンプレートは1件に集約されます。 |セッションはグループ単位で削除されます。グループを削除できなかった場合、そのグループ内のすべてのセッションが`failed_retryable`として報告されます。他のグループには影響せず、削除された状態のままです。## 多数のセッションを選択した場合はジョブとして実行されます20件を超えるセッションが一致する場合、レスポンスは`results`ではなく、削除ジョブを含む`202 Accepted`になります。```json theme={null}
{
  "job_id": "5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b",
  "status": "PENDING",
  "total": 250,
  "processed": 0,
  "outcomes": { "deleted": 0, "none": 0, "retained_with_user": 0, "ineligible_no_vendor_user": 0, "failed_retryable": 0, "already_deleted": 0 },
  "deleted_child_verifications": 0,
  "error": null,
  "created_at": "2026-10-09T10:15:00Z",
  "completed_at": null
}
````status`が`COMPLETED`または`FAILED`になるまで、数秒ごとに[セッション削除ジョブの取得](https://docs.didit.me/ja/management-api/sessions/get-deletion-job.md)をポーリングしてください。- ジョブは結果ごとのセッション件数を報告しますが、どのセッションを削除したかは報告しません。
- `delete_all`ジョブは、リクエストより前に作成されたセッションのみを削除します。ジョブの実行中に開始されたセッションは削除されません。
- リクエストの保持フィールドと指示フィールドは、ジョブが削除するすべてのセッションに適用されます。
- グループをまだ削除できない場合、ジョブはそのグループを自動的に再試行します。
- `FAILED`になったジョブは、その理由を`error`で示します。ジョブがまだ処理していないセッションはそのまま残っているため、リクエストを再度送信して削除してください。## 例> [tab] セッション番号で削除
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/sessions/delete/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{"session_numbers": ["1001", "1002", "1003"]}'
> ```> [tab] 削除してテンプレートを保持
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/sessions/delete/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "session_numbers": ["1001", "1002"],
>     "retain_face_embeddings": true,
>     "face_retention_days": 365,
>     "instruction_id": "post-approval-cleanup-2026-08"
>   }'
> ```> [tab] プライバシー消去
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/sessions/delete/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "session_numbers": ["1001"],
>     "deletion_instruction": "privacy_erasure",
>     "instruction_id": "dsar-2026-0142"
>   }'
> ```> [tab] すべて削除してジョブをポーリング
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/sessions/delete/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{"delete_all": true}'
>
> # More than 20 sessions matched: the response is 202 with a job_id.
> curl https://verification.didit.me/v3/sessions/delete/JOB_ID/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```## 204レスポンスからの移行今回のリリースまで、このエンドポイントは`204 No Content`を返していました。現在は、`results[]`を含む`200 OK`を返すか、一致するセッションが20件を超える場合は削除ジョブを含む`202 Accepted`を返します。`204`を前提としているクライアントは更新してください。デフォルトの削除動作は変わりません。既存のアプリケーションでは、ポリシーを明示的に変更するまで`delete_with_session`が適用されます。## 関連ページ- [セッションの削除](https://docs.didit.me/ja/sessions-api/delete-session.md)
- [セッション削除ジョブの取得](https://docs.didit.me/ja/management-api/sessions/get-deletion-job.md)
- [生体認証テンプレート](https://docs.didit.me/ja/management-api/biometric-templates/overview.md)
- [データ保持](https://docs.didit.me/ja/console/data-retention.md)


## OpenAPI

````yaml ja/openapi-25.json POST /v3/sessions/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/sessions/delete/:
    post:
      tags:
        - Sessions
      summary: session_numberを指定してKYCセッションを一括削除
      description: >-
        数値の`session_number`を指定してユーザー認証(KYC)セッションを一括削除するか、`delete_all:
        true`でアプリケーション内のすべてのKYCセッションを削除します。


        `session_number`は、Consoleのセッション一覧に表示され、セッション作成エンドポイントと判定エンドポイントが`session_number`として返す、人が読みやすい連番のカウンターです。`session_id`のUUIDでは**ありません**。UUIDでセッションを削除する場合、または法人確認(KYB)セッションを削除する場合は、代わりに`DELETE
        /v3/session/{sessionId}/delete/`を使用してください。このエンドポイントがKYBセッションに触れることはありません。


        **最大20件のセッションはリクエスト内で削除され、それを超える場合はジョブとして実行されます。**`session_numbers`で選択した場合も`delete_all`で選択した場合も、該当するセッションの件数によって処理が決まります。

        -
        該当するセッションが20件以下の場合は、レスポンスの前に削除されます。レスポンスは`200`で、`results[]`にセッションごとに1件のエントリが含まれます。

        -
        20件を超える場合は、レスポンスは削除ジョブを含む`202`となり、セッションはバックグラウンドで削除されます。`status`が`COMPLETED`または`FAILED`になるまで`GET
        /v3/sessions/delete/{job_id}/`をポーリングしてください。ジョブは結果ごとの件数を報告しますが、どのセッションを削除したかは一切報告しません。`delete_all`のジョブはリクエスト前に作成されたセッションのみを削除します。ジョブの実行中に開始されたセッションは削除されません。


        削除される各セッションは、単一セッション削除エンドポイントとまったく同じ扱いを受けます。セッション、そのセッションが保持するすべての認証試行、判定と抽出データ、関連する機能レコード(本人確認、顔、ライブネス、顔照合など)、および保存されているすべてのファイルが削除され、すべての読み取りエンドポイントから表示されなくなり、以前に発行されたメディアURLは解決できなくなります。削除されたセッションについてキューに残っているWebhook配信とその再試行は破棄されます。すでに配信済みのWebhookには影響しません。ブロックリストのエントリは削除**されず**、すでに消費されたクレジットは払い戻し**されず**、親のUserエンティティも削除**されません**(これらには`POST
        /v3/users/delete/`を使用してください)。削除に関するWebhookは送信されません。削除は永続的で、元に戻すことはできません。


        **選択の仕組み：**

        - `delete_all: true`を指定した場合、`GET
        /v3/sessions/`のフィルターにそれぞれ`filter_`を付けたもの(例：`filter_status`、`filter_workflow_id`、`filter_date_from`)で選択対象を絞り込めます。List
        Sessionsで複数の値を受け付けるフィルター(`status`、`workflow_id`、`country`、`region`、`document_type`、`document_name`、`session_type`、`warning`、`organization_name`)は、カンマ区切りの文字列または配列を受け付けます。それ以外のフィルターは1つの値を受け付けます。空の値は無視されます。フィルターは`delete_all`と併用した場合にのみ適用され、削除ジョブにも同じフィルターが適用されます。

        -
        不明な`filter_*`キー、または読み取れないフィルター値があると、何かが削除される前にリクエスト全体が`400`で拒否されます。そのため、フィルターの入力ミスによって削除対象がすべてのセッションに広がることはありません。

        -
        `session_numbers`のエントリのうち、アプリケーション内の有効なKYCセッションに一致しないもの(不明な番号、削除済みのセッション、別のアプリケーションが所有するセッション)は**通知なくスキップ**されます。これらは`results`に含まれず、ジョブの`total`にもカウントされません。

        -
        検証エラー(数値でないエントリ、空のリスト、`session_numbers`と`delete_all`のいずれも指定されていない場合、またはアプリケーションが対応できないテンプレートの保持設定)が発生すると、**リクエスト全体**が`400`で拒否され、何も削除されません。

        -
        セッションはグループ単位で削除されます。グループを削除できない場合(ストレージサービスが利用できない場合など)、そのグループ内のすべてのセッションは`face_retention_outcome:
        failed_retryable`として報告され、削除されずに残ります。他のグループには影響しません。それらのセッションについてリクエストを再度実行してください。ジョブの場合は、そのようなグループを自動的に再試行します。

        - リストの長さについて文書化された上限はありません。実質的な上限は共有の書き込みレート制限(後述)です。


        **顔の生体認証データ：**任意の`retain_face_embeddings`、`face_retention_days`、`face_retention_deadline`、`deletion_instruction`、`instruction_id`フィールドは、`DELETE
        /v3/session/{sessionId}/delete/`と同じ意味を持ち、一致したすべてのセッションに適用されます。各結果はそれぞれの`face_retention_outcome`を報告します。


        **レスポンス：**該当するセッションが20件以下の場合は`results[]`を含む`200
        OK`、それを超える場合は削除ジョブを含む`202 Accepted`が返されます。`face_retention_outcome:
        failed_retryable`を除くすべての結果は削除が完了したことを示します。この結果は削除**されなかった**セッションを示すため、再試行してください。このエンドポイントの以前のバージョンは`204
        No Content`を返していました。`204`を前提としているクライアントは更新してください。


        **冪等性：**同じリクエストを繰り返しても、それ以上削除されることはありません。セッションに一致しなくなった番号はスキップされます。


        **`delete_all:
        true`(破壊的操作)：**アプリケーション内に残っている**すべての**KYCセッションを削除します。指定した場合、`session_numbers`は無視されます。確認ステップはなく、元に戻すこともできません。


        **認証：**`x-api-key`ヘッダーにAPIキーを指定します。認証情報がない、または無効な場合は`403`(`{"detail":
        "You do not have permission to perform this
        action."}`)が返されます。このAPIが`401`を返すことはありません。


        **レート制限：**すべてのPOST/PATCH/DELETEエンドポイントで共有される、APIキーごとに毎分300リクエストの書き込み枠です。超過すると`429`が返されます。


        このエンドポイントはAPIキーのみを受け付けます。Business
        ConsoleユーザーのBearerトークンは`403`で拒否されます(両方を受け付ける単一セッション削除とは異なります)。


        **提出済みの規制当局向けレポート：**選択したデータが確定済みの規制当局向けレポートに含まれている場合、リクエスト全体が`409`で拒否され、何も削除されません。レスポンス本文では`code:
        in_filed_report`が使用され、各レポートが`uuid`、`report_number`、`report_type`、`case_uuid`で示されます。レポートを削除してから、リクエストを再度実行してください。
      operationId: batch_delete_sessions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                session_numbers:
                  type: array
                  description: >-
                    削除するKYCセッションの数値の`session_number`の値で、数字のみの文字列で指定します（JSONの数値も受け付けられ、変換されます）。`delete_all`が`true`でない限り必須で、空のリストは`400`を返します。数字以外の要素が1つでもあるとリクエスト全体が`400`で拒否されます（`delete_all`が`true`の場合は検証がスキップされ、要素は無視されます）。アプリケーション内の有効なセッションに一致しない番号は通知なくスキップされます。
                  items:
                    type: string
                    pattern: ^[0-9]+$
                    example: '1001'
                  minItems: 1
                  example:
                    - '1001'
                    - '1002'
                    - '1003'
                delete_all:
                  type: boolean
                  description: >-
                    `true`の場合、呼び出し元アプリケーションに残っているすべてのKYCセッションが削除され、`session_numbers`は無視されます。ただし、`filter_*`キーで対象を絞り込んだ場合は除きます。該当するセッションが20件を超える場合は削除ジョブ（`202`）として実行され、リクエストより前に作成されたセッションのみが対象になります。デフォルトは`false`です。元に戻すことはできず、確認ステップもありません。
                  default: false
                  example: false
                retain_face_embeddings:
                  type: boolean
                  nullable: true
                  description: >-
                    この削除について、アプリケーションの`face_retention_policy`を上書きします。`true`の場合、セッションの削除後も、画像を含まない顔の生体認証テンプレートを1つ、セッションのユーザーに紐付けて保持します。`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（例:
                    消去チケットのID）です。監査証跡と、保持されるテンプレートに記録されます。省略した場合はDiditが生成します。
                  example: dsar-2026-0142
                filter_status:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`status`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_vendor_data:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`vendor_data`フィルターに同じ値で一致するセッションに絞り込みます。リストではなく1つの値です。配列は1つのカンマ区切りテキストに結合されるため、複数の値がそれぞれの候補として照合されることはありません。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                filter_search:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`search`フィルターに同じ値で一致するセッションに絞り込みます。リストではなく1つの値です。配列は1つのカンマ区切りテキストに結合されるため、複数の値がそれぞれの候補として照合されることはありません。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                filter_workflow_id:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`workflow_id`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_date_from:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`date_from`フィルターに同じ値で一致するセッションに絞り込みます。値は1つで、リストではありません。配列は1つのカンマ区切りの値に結合されるため、複数の値は`400`で拒否されます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                  format: date
                filter_date_to:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`date_to`フィルターに同じ値で一致するセッションに絞り込みます。値は1つで、リストではありません。配列は1つのカンマ区切りの値に結合されるため、複数の値は`400`で拒否されます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                  format: date
                filter_country:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`country`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_document_type:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`document_type`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_document_name:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`document_name`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_region:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`region`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_didit_internal_id:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`didit_internal_id`フィルターに同じ値で一致するセッションに絞り込みます。値は1つで、リストではありません。配列は1つのカンマ区切りの値に結合されるため、複数の値は`400`で拒否されます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                  format: uuid
                filter_session_type:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`session_type`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_api_service:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`api_service`フィルターに同じ値で一致するセッションに絞り込みます。値は1つで、リストではありません。配列は1つのカンマ区切りの値に結合されるため、複数の値は`400`で拒否されます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                filter_screened_full_name:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`screened_full_name`フィルターに同じ値で一致するセッションに絞り込みます。リストではなく1つの値です。配列は1つのカンマ区切りテキストに結合されるため、複数の値がそれぞれの候補として照合されることはありません。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                filter_warning:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`warning`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                filter_status_initialized_as_in_review:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`status_initialized_as_in_review`フィルターに同じ値で一致するセッションに絞り込みます。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: boolean
                filter_is_kyc_to_be_reviewed:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`is_kyc_to_be_reviewed`フィルターに同じ値で一致するセッションに絞り込みます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: boolean
                filter_euuid:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`euuid`フィルターに同じ値で一致するセッションに絞り込みます。値は1つで、リストではありません。配列は1つのカンマ区切りの値に結合されるため、複数の値は`400`で拒否されます。`delete_all`がない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  type: string
                  format: uuid
                filter_organization_name:
                  description: >-
                    `delete_all`の対象を、[List
                    Sessions](/ja/sessions-api/list-sessions)の`organization_name`フィルターに同じ値で一致するセッションに絞り込みます。カンマ区切りの文字列または配列で指定します。APIキーを使用する場合は自組織の名前にしか一致しないため、すべてのセッションが選択されるか、1件も選択されないかのいずれかになります。`delete_all`を指定しない場合は無視されます。空の値は無視され、選択範囲は絞り込まれません。
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
            examples:
              Specific sessions:
                summary: 番号を指定して特定のセッションを削除
                value:
                  session_numbers:
                    - '1001'
                    - '1002'
                    - '1003'
              All sessions:
                summary: アプリケーション内のすべてのKYCセッションを削除
                value:
                  delete_all: true
              Delete and retain templates:
                summary: セッションを削除し、画像を含まない生体認証テンプレートは365日間保持
                value:
                  session_numbers:
                    - '1001'
                    - '1002'
                  retain_face_embeddings: true
                  face_retention_days: 365
                  instruction_id: post-approval-cleanup-2026-08
              Privacy erasure:
                summary: セッションを削除し、そのユーザーの保持済みテンプレートをすべて消去
                value:
                  session_numbers:
                    - '1001'
                  deletion_instruction: privacy_erasure
                  instruction_id: dsar-2026-0142
              Filtered delete_all:
                summary: 1つのワークフローで2026年9月に作成された却下のセッションをすべて削除
                value:
                  delete_all: true
                  filter_status:
                    - Declined
                  filter_workflow_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  filter_date_from: '2026-09-01'
                  filter_date_to: '2026-09-30'
      responses:
        '200':
          description: >-
            最大20件のセッションが一致し、リクエスト内で処理されました。一致したセッションごとに1件の結果が返ります。何にも一致しなかった番号（不明または削除済み）はスキップされ、結果に含まれません。結果は削除の完了を示しますが、`face_retention_outcome`が`failed_retryable`の場合は例外です。そのセッションは削除されておらず、再試行する必要があります。
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      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
                            - failed_retryable
                          description: >-
                            セッションの顔生体データがどう処理されたか。`deleted`:
                            顔エンベディングはセッションとともに削除されました（デフォルト）。`retained_with_user`:
                            セッションは削除され、画像を含まない生体認証テンプレートが1件Userに紐付いて残ります。`biometric_template_uuid`を参照してください。`none`:
                            セッションに顔エンベディングがありませんでした（例:
                            ライブネスのセルフィーがない書類のみのKYCセッション。KYBセッションがこのエンドポイントで選択されることはありません）。`ineligible_no_vendor_user`:
                            保持がリクエストされましたが、セッションに紐付くUserがないため、エンベディングはセッションとともに削除されました。`failed_retryable`（バッチエンドポイントのみ）:
                            このセッションと一緒に削除されるグループを削除できませんでした（ストレージサービス、生体データストア、またはモニタリングプロバイダーが利用できませんでした）。このセッションはそのまま残っているため、このセッションについてリクエストを再度実行してください。
                        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: >-
                            このエンドポイントはKYCセッションのみを削除するため、常に`0`です。`DELETE
                            /v3/session/{sessionId}/delete/`で法人確認
                            (KYB)セッションを削除すると、そのセッションが作成し、一緒に削除された認証が報告されます。
              examples:
                Mixed outcomes:
                  value:
                    results:
                      - session_id: 4c5c7f3a-3b1d-4b7e-9c39-2b4f7e6a1d02
                        session_number: 1001
                        face_retention_outcome: deleted
                        biometric_template_uuid: null
                        biometric_template_expires_at: null
                        deleted_child_verifications: 0
                      - session_id: b8e1d2c3-4f5a-4b6c-8d7e-9f0a1b2c3d4e
                        session_number: 1002
                        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: 7a1e9c2d-5f4b-4c3a-8e2d-1b0a9f8e7d6c
                        session_number: 1003
                        face_retention_outcome: ineligible_no_vendor_user
                        biometric_template_uuid: null
                        biometric_template_expires_at: null
                        deleted_child_verifications: 0
                      - session_id: c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f
                        session_number: 1004
                        face_retention_outcome: failed_retryable
                        biometric_template_uuid: null
                        biometric_template_expires_at: null
                        deleted_child_verifications: 0
        '202':
          description: >-
            20件を超えるセッションが一致しました。これらはバックグラウンドで削除されます。`status`が`COMPLETED`または`FAILED`になるまで`GET
            /v3/sessions/delete/{job_id}/`をポーリングしてください。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDeletionJob'
              examples:
                Job accepted:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: PENDING
                    total: 250
                    processed: 0
                    outcomes:
                      deleted: 0
                      none: 0
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: null
        '400':
          description: 検証エラー：何も削除されていません。エラー値は、フィールド名をキーとするメッセージ文字列の配列です。
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_numbers:
                    type: array
                    items:
                      type: string
                additionalProperties:
                  description: >-
                    その他のキー：List Sessionsのフィルターではない`filter_*`キー（`"Unknown
                    filter."`）、または値を読み取れない`filter_*`キー（その`filter_*`キーをキーとし、メッセージの配列を値とします）。
              examples:
                Missing selector:
                  summary: session_numbersとdelete_allのどちらも指定されていません
                  value:
                    session_numbers:
                      - This field is required unless delete_all is true.
                Empty list:
                  summary: session_numbersが空の配列です
                  value:
                    session_numbers:
                      - This list may not be empty.
                Non-numeric entry:
                  summary: session_numbersに数字以外の文字列が含まれています
                  value:
                    session_numbers:
                      - All session_numbers must be numeric.
                Privacy erasure cannot retain:
                  summary: >-
                    deletion_instructionのprivacy_erasureとretain_face_embeddings
                    trueの組み合わせ
                  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.
                Unknown filter:
                  summary: List Sessionsに存在しないfilter_*キー
                  value:
                    filter_reviewer: Unknown filter.
                Unreadable filter value:
                  summary: 読み取れないフィルター値
                  value:
                    filter_date_from:
                      - Enter a valid date.
        '403':
          description: APIキーがありません。キーがない場合は`403`を返し、誤った、失効した、または期限切れのキーの場合は`401`を返します。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: x-api-keyヘッダーがないか、キーが無効です
                  value:
                    detail: You do not have permission to perform this action.
        '409':
          description: 選択したセッションが、確定済みの規制当局向けレポートに含まれています。何も削除されません。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InFiledReportError'
        '429':
          description: >-
            共有の書き込みレート制限を超えました（APIキーごとに1分あたりPOST/PATCH/DELETEリクエスト300件）。再試行する前に、`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.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST \
              https://verification.didit.me/v3/sessions/delete/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "session_numbers": ["1001", "1002", "1003"]
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.batch_delete(
                session_numbers=["1001", "1002", "1003"],
            )
            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.batchDelete({
              session_numbers: ["1001", "1002", "1003"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.BatchDelete(ctx, didit.SessionsBatchDeleteParams{\n\tSessionNumbers: didit.Some([]string{\"1001\", \"1002\", \"1003\"}),\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.SessionsBatchDeleteParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().batchDelete(SessionsBatchDeleteParams.builder()
                    .sessionNumbers(List.of("1001", "1002", "1003"))
                    .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->batchDelete([
                'session_numbers' => ['1001', '1002', '1003'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result = didit.sessions.batch_delete(session_numbers: ["1001",
            "1002", "1003"])

            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.BatchDeleteAsync(new
            SessionsBatchDeleteParams

            {
                SessionNumbers = new string[] { "1001", "1002", "1003" },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionDeletionJob:
      type: object
      description: バックグラウンドで実行中のセッション一括削除。進捗と結果ごとの件数を示しますが、どのセッションを削除したかは示しません。
      properties:
        job_id:
          type: string
          format: uuid
          description: このIDを使用して`GET /v3/sessions/delete/{job_id}/`をポーリングします。
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
          description: >-
            `PENDING`：受け付け済みで、まだ開始されていません。`PROCESSING`：削除中で、`processed`と`outcomes`が更新されています。`COMPLETED`：選択されたすべてのセッションの処理が完了しました。`FAILED`：ジョブが途中で停止しました。`error`を参照してください。
        total:
          type: integer
          description: 削除がリクエストされた時点で選択されていたセッション。
        processed:
          type: integer
          description: ジョブがこれまでに処理を完了したセッション。
        outcomes:
          type: object
          description: 各結果で終了したセッションの数。すべてのキーが常に含まれます。
          properties:
            deleted:
              type: integer
              description: 顔エンベディングとともに削除されたセッション。
            none:
              type: integer
              description: 削除されたセッションのうち、顔エンベディングがなかったもの。
            retained_with_user:
              type: integer
              description: >-
                リクエストまたはアプリケーションのポリシーの指定に従い、画像を含まない生体認証テンプレートを1つそのユーザー用に保持したうえで削除されたセッション。
            ineligible_no_vendor_user:
              type: integer
              description: 保持がリクエストされたものの、紐付けられたユーザーがいなかったため、顔エンベディングとともに削除されたセッション。
            failed_retryable:
              type: integer
              description: 削除されなかったと報告されたセッション。ジョブは自身で削除できなかったグループをここに計上せず、再試行します。
            already_deleted:
              type: integer
              description: 選択されたセッションのうち、ジョブが処理する時点で、別のリクエストなどによりすでに削除されていたセッションです。
        deleted_child_verifications:
          type: integer
          description: >-
            削除された法人確認によって作成され、それとあわせて削除された認証です。`POST
            /v3/sessions/delete/`で開始されたジョブはKYCセッションのみを削除するため、常に`0`です。
        error:
          type: string
          nullable: true
          description: >-
            通常は`null`で、`status`が`FAILED`の場合のみ削除が停止した理由が入ります。ジョブが到達していなかったセッションはそのまま残っています。それらを削除するには、リクエストを再度送信してください。
        created_at:
          type: string
          format: date-time
          description: 削除がリクエストされた日時。
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: ジョブが完了した日時。実行中は`null`です。
    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.