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

# Dapatkan Templat Biometrik API

> Didit: ambil satu templat biometrik wajah yang disimpan beserta pengguna pemilik, asal, tanggal kedaluwarsa, dan statusnya.

Mengembalikan satu templat. Gunakan `biometric_template_uuid` yang dikembalikan oleh [Hapus Sesi](https://docs.didit.me/id/sessions-api/delete-session.md), `biometric_template_id` pada [kecocokan Pencarian Wajah](https://docs.didit.me/id/core-technology/face-search/report-face-search.md), atau id dari [daftar](https://docs.didit.me/id/management-api/biometric-templates/list.md).

```bash theme={null}
curl -X GET 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",
  "vendor_user_uuid": "2f7c1a9e-8b4d-4c6a-9e1f-3d5b7a9c1e2f",
  "vendor_data": "user-42",
  "source_type": "session_delete",
  "provenance_reference": "6b1e8d2f-4a3c-4f9e-8c7d-1a2b3c4d5e6f",
  "retention_policy": "retain_until_user_deleted",
  "retention_override": null,
  "retained_at": "2026-08-28T10:15:42.318402Z",
  "expires_at": "2027-08-28T10:15:42.318402Z",
  "retained_by": "3c9e2b1f-7d4a-4e8b-9c1d-5f6a7b8c9d0e",
  "retained_by_type": "API_KEY",
  "instruction_class": "operational_session_delete",
  "instruction_source": "api",
  "instruction_id": "post-approval-cleanup-2026-08",
  "held_out_of_use": false,
  "status": "active",
  "purged_at": null
}
```

Respons tidak pernah menyertakan gambar, vektor, id sesi yang dihapus, atau data identitas. Lihat [ikhtisar](https://docs.didit.me/id/management-api/biometric-templates/overview.md#objek-templat) untuk setiap kolom.

## Kesalahan

| Status | Kapan | Isi |
| - | - | - |
| `403` | Token pengguna Console, atau kunci API tidak diizinkan | `{"detail": "You do not have permission to perform this action."}` |
| `404` | Templat tidak dikenal, templat milik aplikasi lain, atau templat yang dihapus permanen | `{"detail": "Biometric template not found."}` |


## OpenAPI

````yaml id/openapi-25.json GET /v3/biometric-templates/{template_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/biometric-templates/{template_uuid}/:
    get:
      tags:
        - Biometric Templates
      summary: Dapatkan templat biometrik yang disimpan
      description: >-
        Aplikasi yang ikut serta menyimpan satu templat biometrik wajah tanpa
        gambar yang dikelola secara terpisah dan ditautkan ke Pengguna ketika
        sesi dihapus (lihat `DELETE /v3/session/{sessionId}/delete/`). Templat
        adalah data biometrik dengan `expires_at` yang terbatas; templat tidak
        pernah berisi gambar, data sesi, atau kolom identitas, dan akan dihapus
        secara permanen saat Pengguna dihapus, penghapusan privasi, kedaluwarsa,
        atau penghapusan permanen eksplisit. Endpoint ini hanya menerima kunci
        API aplikasi (`x-api-key`); token pengguna Business Console akan ditolak
        dengan `403`.


        Mengembalikan satu templat. Respons tidak pernah menyertakan gambar,
        vektor, id sesi yang dihapus, atau data identitas.
      operationId: get_biometric_template
      parameters:
        - in: path
          name: template_uuid
          required: true
          description: >-
            ID templat, seperti yang dikembalikan dalam
            `biometric_template_uuid` oleh endpoint penghapusan sesi,
            `biometric_template_id` pada kecocokan Pencarian Wajah, atau
            endpoint daftar.
          schema:
            type: string
            format: uuid
            example: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
      responses:
        '200':
          description: Templat.
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: >-
                      ID templat. Dibuat secara acak; tidak diturunkan dari sesi
                      yang dihapus atau wajahnya.
                  vendor_user_uuid:
                    type: string
                    format: uuid
                    description: Pengguna pemilik.
                  vendor_data:
                    type: string
                    nullable: true
                    description: >-
                      `vendor_data` Pengguna saat ini, diselesaikan saat Anda
                      membaca templat (tidak pernah disalin).
                  source_type:
                    type: string
                    enum:
                      - session_delete
                      - automatic_retention
                      - backfill
                    description: >-
                      Cara templat dibuat: penghapusan sesi (API atau Console),
                      jendela retensi data otomatis aplikasi, atau backfill yang
                      dilakukan Didit atas instruksi Anda.
                  provenance_reference:
                    type: string
                    format: uuid
                    description: >-
                      Referensi tidak transparan yang menghubungkan templat ke
                      jejak auditnya. Ini bukan id sesi yang dihapus dan tidak
                      dapat dikaitkan dengan id tersebut.
                  retention_policy:
                    type: string
                    enum:
                      - delete_with_session
                      - retain_until_user_deleted
                    description: Kebijakan aplikasi pada saat retensi.
                  retention_override:
                    type: boolean
                    nullable: true
                    description: >-
                      Nilai `retain_face_embeddings` yang dikirim pada
                      penghapusan, atau `null` saat kebijakan diterapkan.
                  retained_at:
                    type: string
                    format: date-time
                  expires_at:
                    type: string
                    format: date-time
                    description: >-
                      Waktu templat kedaluwarsa dan dihapus secara otomatis.
                      Selalu ditetapkan.
                  retained_by:
                    type: string
                    nullable: true
                    description: >-
                      Prinsipal yang memberikan instruksi: id aplikasi untuk
                      kunci API, id anggota Console untuk tindakan Console, atau
                      pengidentifikasi `service:` untuk retensi otomatis. Tidak
                      pernah berupa alamat email.
                  retained_by_type:
                    type: string
                    enum:
                      - API_KEY
                      - CONSOLE_USER
                      - SYSTEM
                  instruction_class:
                    type: string
                    enum:
                      - operational_session_delete
                      - privacy_erasure
                  instruction_source:
                    type: string
                    enum:
                      - api
                      - console
                      - automatic_retention
                      - backfill
                      - privacy_erasure
                      - explicit_template_purge
                      - vendor_user_delete
                      - expiry
                      - reconciliation
                      - migration
                      - system
                  instruction_id:
                    type: string
                    description: >-
                      `instruction_id` yang dikirim pada penghapusan, atau id
                      yang dibuat oleh Didit.
                  held_out_of_use:
                    type: boolean
                    description: >-
                      `true` hanya selama penahanan hukum berlaku. Templat yang
                      ditahan dikecualikan dari semua pencocokan.
                  status:
                    type: string
                    enum:
                      - pending
                      - active
                      - expired
                      - held_out_of_use
                      - purge_pending
                      - purge_failed
                      - purged
                    description: >-
                      Hanya templat `active` yang tidak ditahan, belum melewati
                      `expires_at`, dan Penggunanya masih ada yang
                      diikutsertakan dalam pencocokan.
                  purged_at:
                    type: string
                    format: date-time
                    nullable: true
              examples:
                Active template:
                  value:
                    uuid: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
                    vendor_user_uuid: 2f7c1a9e-8b4d-4c6a-9e1f-3d5b7a9c1e2f
                    vendor_data: user-42
                    source_type: session_delete
                    provenance_reference: 6b1e8d2f-4a3c-4f9e-8c7d-1a2b3c4d5e6f
                    retention_policy: retain_until_user_deleted
                    retention_override: null
                    retained_at: '2026-08-28T10:15:42.318402Z'
                    expires_at: '2027-08-28T10:15:42.318402Z'
                    retained_by: 3c9e2b1f-7d4a-4e8b-9c1d-5f6a7b8c9d0e
                    retained_by_type: API_KEY
                    instruction_class: operational_session_delete
                    instruction_source: api
                    instruction_id: post-approval-cleanup-2026-08
                    held_out_of_use: false
                    status: active
                    purged_at: null
        '403':
          description: >-
            Token pengguna konsol, atau kunci API tidak diizinkan. Endpoint ini
            hanya menerima kunci API aplikasi.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Templat tidak dikenal, templat dari aplikasi lain, atau (pada `GET`)
            templat yang telah dihapus secara permanen.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Biometric template not found.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            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.retrieve(
                "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.retrieve("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.Retrieve(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().retrieve("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->retrieve('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.retrieve("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.RetrieveAsync("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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