> ## 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 DELETE /v3/biometric-templates/{template_uuid}/ 엔드포인트로 보관된 얼굴 생체 인식 템플릿을 삭제합니다. 매칭에서 제거되며 멱등성을 보장합니다.

템플릿 하나를 삭제합니다. 템플릿은 모든 유형의 매칭에서 제거되고 저장된 템플릿은 삭제됩니다. 삭제는 되돌릴 수 없으며, 작업 주체와 함께 감사 로그에 기록됩니다.

```bash theme={null}
curl -X DELETE https://verification.didit.me/v3/biometric-templates/9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b/ \
  -H "x-api-key: YOUR_API_KEY"
```

```json theme={null}
{ "uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b", "outcome": "purged" }
```

| `outcome` | 의미 |
| - | - |
| `purged` | 이 호출로 템플릿이 삭제되었습니다. |
| `already_purged` | 템플릿이 이미 삭제되어 있었습니다. 삭제를 반복해도 안전합니다. |

## 재시도 동작

Didit은 저장된 템플릿을 먼저 삭제한 다음에만 템플릿을 삭제된 것으로 표시합니다. 생체 저장소를 사용할 수 없으면 호출은 `503`을 반환하고, 템플릿은 `status: purge_failed` 상태로 바뀌며, 이미 매칭에서 제외됩니다. 같은 호출을 반복하여 삭제를 완료하십시오.

## 오류

| 상태 코드 | 발생 조건 | 본문 |
| - | - | - |
| `403` | 콘솔 사용자 토큰을 사용했거나 API 키가 허용되지 않은 경우 | `{"detail": "You do not have permission to perform this action."}` |
| `404` | 알 수 없는 템플릿이거나 다른 애플리케이션의 템플릿인 경우 | `{"detail": "Biometric template not found."}` |
| `503` | 생체 저장소를 사용할 수 없었습니다. 템플릿은 `purge_failed` 상태이며 매칭에서 제외됩니다. 호출을 반복하십시오. | `{"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."}` |

## 그 밖의 삭제 시점

템플릿은 소유 사용자를 [사용자 일괄 삭제](https://docs.didit.me/ko/management-api/users/delete.md)로 삭제할 때, `deletion_instruction: "privacy_erasure"`를 사용해 해당 사용자의 세션을 하나라도 삭제할 때, 그리고 `expires_at` 시점에 자동으로도 삭제됩니다. 자세한 내용은 [삭제 시점](https://docs.didit.me/ko/management-api/biometric-templates/overview.md#퍼지-시점)을 참조하십시오.


## OpenAPI

````yaml ko/openapi-25.json DELETE /v3/biometric-templates/{template_uuid}/
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/biometric-templates/{template_uuid}/:
    delete:
      tags:
        - Biometric Templates
      summary: 보존된 생체 인식 템플릿 영구 삭제
      description: >-
        옵트인된 애플리케이션은 세션이 삭제될 때 사용자에 연결된 별도로 관리되는 이미지가 없는 얼굴 생체 인식 템플릿 하나를
        유지합니다(`DELETE /v3/session/{sessionId}/delete/` 참조). 템플릿은 유한한
        `expires_at`을 가진 생체 인식 데이터입니다. 이미지, 세션 데이터 또는 신원 필드를 절대 포함하지 않으며, 사용자
        삭제, 프라이버시 삭제, 만료 또는 명시적 영구 삭제 시 제거됩니다. 이 endpoint들은 애플리케이션 API
        키(`x-api-key`)만 허용하며, Business Console 사용자 token은 `403`으로 거부됩니다.


        템플릿 하나를 영구 삭제합니다. 모든 종류의 매칭에서 제거되고 저장된 템플릿이 삭제됩니다. 되돌릴 수 없으며 작업을 수행한 주체와
        함께 감사 로그에 기록됩니다.


        **재시도 시맨틱:** Didit은 저장된 템플릿을 먼저 삭제한 후에만 템플릿을 영구 삭제됨으로 표시합니다. 생체 인식 저장소를
        사용할 수 없는 경우 호출은 `503`을 반환하고, 템플릿은 `status: purge_failed` 상태로 이동하며 매칭에서
        이미 제외됩니다. 완료하려면 동일한 호출을 반복하십시오. 이미 영구 삭제된 템플릿의 영구 삭제를 반복하면
        `already_purged`가 반환됩니다.


        템플릿은 소유 사용자에 대한 `POST /v3/users/delete/`, 해당 사용자의 세션에 대한
        `deletion_instruction: privacy_erasure`를 사용한 삭제, 그리고 `expires_at` 도달 시
        자동으로도 영구 삭제됩니다.
      operationId: purge_biometric_template
      parameters:
        - in: path
          name: template_uuid
          required: true
          description: >-
            세션 삭제 endpoint에서 `biometric_template_uuid`로 반환되거나, 얼굴 검색 일치 시
            `biometric_template_id`로 반환되거나, 목록 endpoint에서 반환된 템플릿 ID입니다.
          schema:
            type: string
            format: uuid
            example: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
      responses:
        '200':
          description: 영구 삭제 결과.
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                  outcome:
                    type: string
                    enum:
                      - purged
                      - already_purged
              examples:
                Purged:
                  value:
                    uuid: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
                    outcome: purged
                Already purged:
                  value:
                    uuid: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
                    outcome: already_purged
        '403':
          description: 콘솔 사용자 token이거나 허용되지 않은 API 키입니다. 이 endpoint들은 애플리케이션 API 키만 허용합니다.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: 알 수 없는 템플릿이거나, 다른 애플리케이션의 템플릿이거나, (`GET` 시) 영구 삭제된 템플릿입니다.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Biometric template not found.
        '503':
          description: >-
            생체 인식 템플릿을 보존하거나 삭제하는 동안 생체 인식 저장소를 사용할 수 없었습니다. 아무것도 삭제되지 않았으므로 동일한
            요청을 반복하십시오. 재시도는 멱등성을 가지며 단일 템플릿으로 수렴됩니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Retryable:
                  value:
                    detail: >-
                      The biometric-template operation could not finish because
                      an external store is unavailable. The operation is
                      retryable.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X DELETE
            https://verification.didit.me/v3/biometric-templates/9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b/
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.biometric_templates.delete(
                "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
            )
            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.biometricTemplates.delete("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.BiometricTemplates.Delete(ctx, \"9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b\")\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.biometricTemplates().delete("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");

            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->biometricTemplates->delete('9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.biometric_templates.delete("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b")

            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.BiometricTemplates.DeleteAsync("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.