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

> Didit에서 Batch Delete Sessions가 세션 20개 초과 매칭으로 202를 반환한 대량 세션 삭제 작업의 상태와 결과 건수를 조회합니다.



세션 삭제 작업 조회 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Goal: Read the progress of a bulk session deletion that POST /v3/sessions/delete/ answered with 202. That happens when more than 20 KYC sessions match the request, whether they are selected by session_numbers or with delete_all.

Endpoint: GET https://verification.didit.me/v3/sessions/delete/{job_id}/
Auth header: x-api-key: <DIDIT_API_KEY>

Path param:
\- job_id: the job_id returned with the 202.

curl:
curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
-H 'x-api-key: YOUR_API_KEY'

Response 200:
\{
"job_id": "<uuid>",
"status": "PROCESSING",            // PENDING | PROCESSING | COMPLETED | FAILED
"total": 250,                      // sessions selected when the deletion was requested
"processed": 100,                  // sessions the job has finished with so far
"outcomes": {"deleted": 82, "none": 18, "retained_with_user": 0, "ineligible_no_vendor_user": 0, "failed_retryable": 0, "already_deleted": 0},
"deleted_child_verifications": 0,  // always 0 for jobs from POST /v3/sessions/delete/ (KYC sessions only)
"error": null,                     // why the deletion stopped, when status is FAILED
"created_at": "<datetime>",
"completed_at": null
}

outcomes counts:
\- deleted: sessions deleted together with their face embedding.
\- none: sessions deleted that had no face embedding.
\- retained_with_user: sessions deleted while one image-free biometric template was retained for their User, as the request or the application policy asked.
\- ineligible_no_vendor_user: retention was requested but the session had no linked User; the session and its embedding were deleted.
\- failed_retryable: sessions reported as not deleted. The job retries a group it could not delete by itself instead of counting it here.
\- already_deleted: selected sessions that were already deleted, for example by another request, when the job reached them.

Polling: request the job every few seconds while status is PENDING or PROCESSING; stop at COMPLETED or FAILED. The job never lists which sessions it deleted, only counts. A FAILED job explains why in error; the sessions it had not reached are still in place, so repeat the deletion request to delete them. Deletion is permanent and irreversible.

Failure modes:
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401). { "detail": "You do not have permission to perform this action." }
\- 404: no such job for this application (a job is only visible to the application that created it).

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

\</pre>



      
      

붙여넣을 곳

## 개요[세션 일괄 삭제](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)로 시작한 대량 세션 삭제 작업의 상태, 처리된 세션 수, 각 결과별 세션 수를 반환합니다.`session_numbers`로 선택하거나 `delete_all`을 사용한 일괄 삭제 요청이 20개를 초과하는 KYC 세션과 일치하면, 요청은 `202`와 `PENDING` 상태의 작업을 반환하고 세션은 백그라운드에서 삭제됩니다. `status`가 `COMPLETED` 또는 `FAILED`가 될 때까지 이 endpoint를 몇 초 간격으로 조회하세요.작업이 삭제하는 각 세션은 [세션 삭제](https://docs.didit.me/ko/sessions-api/delete-session.md)와 정확히 같은 방식으로 삭제됩니다. 세션, 세션이 보유한 모든 인증 시도, 저장된 모든 파일이 삭제되며, 미디어 URL로 더 이상 접근할 수 없습니다. 삭제는 영구적이며 되돌릴 수 없습니다.작업은 건수만 보고합니다. 삭제된 세션의 목록은 제공하지 않습니다.## 작업 상태| `status` | 의미 |
| - | - |
| `PENDING` | 요청은 접수되었으나 아직 시작되지 않았습니다. |
| `PROCESSING` | 삭제 진행 중입니다. `processed`와 `outcomes`가 업데이트되고 있습니다. |
| `COMPLETED` | 선택된 모든 세션이 `outcomes`에 집계되었습니다. |
| `FAILED` | 작업이 중간에 중단되었으며, 원인은 `error`에 설명되어 있습니다. 도달하지 못한 세션은 여전히 남아 있으므로, 삭제 요청을 다시 보내 삭제하세요. |`delete_all` 작업은 요청 이전에 생성된 세션만 삭제합니다. 작업이 실행되는 동안 시작된 세션은 삭제되지 않습니다.## 결과 건수| `outcomes` 키 | 의미 |
| - | - |
| `deleted` | 얼굴 임베딩과 함께 삭제된 세션입니다. |
| `none` | 얼굴 임베딩이 없었던 상태로 삭제된 세션입니다. |
| `retained_with_user` | 요청 또는 애플리케이션 정책에 따라 사용자의 이미지 없는 생체 인식 템플릿 하나를 보관하면서 삭제된 세션입니다. [세션 삭제](https://docs.didit.me/ko/sessions-api/delete-session.md#얼굴-생체-데이터-삭제-또는-보존)를 참조하세요. |
| `ineligible_no_vendor_user` | 보관이 요청되었으나 세션에 연결된 사용자가 없었습니다. 세션과 얼굴 임베딩은 삭제되었습니다. |
| `failed_retryable` | 삭제되지 않은 것으로 보고된 세션입니다. 작업은 스스로 삭제하지 못한 그룹을 여기에 집계하지 않고 재시도합니다. |
| `already_deleted` | 작업이 도달했을 때 이미 삭제되어 있던 선택된 세션입니다(예: 다른 요청에 의해 삭제된 경우). |`deleted_child_verifications`는 기업 확인(KYB)이 생성한 인증 중 함께 삭제된 인증의 수를 셉니다. [세션 일괄 삭제](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)로 시작한 작업에서는 KYC 세션만 삭제하므로 항상 `0`입니다.## 권한애플리케이션의 활성 API 키라면 모두 이 endpoint를 호출할 수 있습니다. 작업은 이를 생성한 애플리케이션에만 보이며, 다른 `job_id`는 `404`를 반환합니다.## 관련 문서- [세션 일괄 삭제](https://docs.didit.me/ko/management-api/sessions/batch-delete.md)
- [세션 삭제](https://docs.didit.me/ko/sessions-api/delete-session.md)
- [데이터 보존](https://docs.didit.me/ko/console/data-retention.md)


## OpenAPI

````yaml ko/openapi-25.json GET /v3/sessions/delete/{job_id}/
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/{job_id}/:
    get:
      tags:
        - Sessions
      summary: 대량 세션 삭제 작업 조회
      description: >-
        `POST /v3/sessions/delete/`가 `202`로 응답한 세션 대량 삭제 작업의 진행
        상황입니다(`session_numbers`로 선택되었거나 `delete_all`을 사용하여 일치하는 세션이 20개를 초과하는
        경우). `status`가 `PENDING` 또는 `PROCESSING`인 동안 몇 초마다 폴링하고, `COMPLETED` 또는
        `FAILED`가 되면 중단하십시오.


        작업은 각 결과로 끝난 세션 수와 지금까지 처리한 세션 수를 보고하며, 삭제된 세션이 무엇인지는 보고하지 않습니다.
        `FAILED` 작업은 `error`에 그 이유를 포함합니다. 도달하지 못한 세션은 여전히 남아 있으므로 삭제 요청을 반복하여
        삭제하십시오.


        **인증:** `x-api-key` 헤더의 API 키. 작업은 이를 생성한 애플리케이션에만 표시되며, 다른 `job_id`는
        `404`를 반환합니다. 자격 증명이 누락되었거나 유효하지 않으면 `403`을 반환합니다. 이 API는 절대 `401`을 반환하지
        않습니다.
      operationId: get_session_deletion_job
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: '`POST /v3/sessions/delete/`의 `202`와 함께 반환된 `job_id`입니다.'
      responses:
        '200':
          description: 작업입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDeletionJob'
              examples:
                Processing:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: PROCESSING
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      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
                Completed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: COMPLETED
                    total: 250
                    processed: 250
                    outcomes:
                      deleted: 204
                      none: 44
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 2
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:16:40Z'
                Failed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: FAILED
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: >-
                      The deletion stopped before it finished. The sessions it
                      had not reached are still in place; repeat the request to
                      delete them.
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:15:52Z'
        '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.
        '404':
          description: >-
            호출한 애플리케이션에 대해 이 `job_id`를 가진 삭제 작업이 존재하지 않습니다. 작업은 이를 생성한 애플리케이션에만
            표시됩니다.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.retrieve_deletion_job(
                "11111111-2222-3333-4444-555555555555",
            )
            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.retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RetrieveDeletionJob(ctx, \"11111111-2222-3333-4444-555555555555\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            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->retrieveDeletionJob('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.retrieve_deletion_job("11111111-2222-3333-4444-555555555555")

            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.RetrieveDeletionJobAsync("11111111-2222-3333-4444-555555555555");

            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: >-
            삭제된 기업 인증에서 생성되어 함께 삭제된 인증 건수입니다. KYC 세션만 삭제하는 `POST
            /v3/sessions/delete/`로 시작된 작업의 경우 항상 `0`입니다.
        error:
          type: string
          nullable: true
          description: >-
            `status`가 `FAILED`가 아닌 한 `null`이며, 이때 삭제가 중단된 이유가 표시됩니다. 작업이 도달하지 않은
            세션은 그대로 유지되므로 요청을 다시 실행하여 삭제하십시오.
        created_at:
          type: string
          format: date-time
          description: 삭제가 요청된 시점입니다.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: 작업이 완료된 시점입니다. 실행 중일 때는 `null`입니다.
  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.