> ## 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 de récupération d'un gabarit biométrique

> Didit : GET /v3/biometric-templates/{template_uuid}/ récupère un gabarit facial conservé, avec son utilisateur, son origine, son expiration et son statut.

Renvoie un seul gabarit biométrique. Utilisez le `biometric_template_uuid` renvoyé par [Supprimer une session](https://docs.didit.me/fr/sessions-api/delete-session.md), le `biometric_template_id` d'un [résultat de recherche faciale](https://docs.didit.me/fr/core-technology/face-search/report-face-search.md), ou un identifiant de la [liste](https://docs.didit.me/fr/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
}
```

La réponse n'inclut jamais d'image, de vecteur, d'identifiant de la session supprimée, ni de données d'identité. Consultez la [vue d'ensemble](https://docs.didit.me/fr/management-api/biometric-templates/overview.md#objet-du-gabarit-biométrique) pour connaître tous les champs.

## Erreurs

| Statut | Cas | Corps |
| - | - | - |
| `403` | Token d'utilisateur de la Console, ou clé API non autorisée | `{"detail": "You do not have permission to perform this action."}` |
| `404` | Gabarit biométrique inconnu, gabarit biométrique d'une autre application, ou gabarit biométrique purgé | `{"detail": "Biometric template not found."}` |


## OpenAPI

````yaml fr/openapi-25.json GET /v3/biometric-templates/{template_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/biometric-templates/{template_uuid}/:
    get:
      tags:
        - Biometric Templates
      summary: Obtenir un gabarit biométrique conservé
      description: "Une application ayant activé cette option conserve un gabarit biométrique facial géré séparément et sans image, ancré à l'Utilisateur lorsqu'une session est supprimée (voir `DELETE /v3/session/{sessionId}/delete/`). Les gabarits sont des données biométriques avec un `expires_at` fini\_; ils ne contiennent jamais d'images, de données de session ou de champs d'identité, et ils sont purgés lors de la suppression de l'Utilisateur, d'un effacement pour des raisons de confidentialité, de leur expiration ou d'une purge explicite. Ces endpoints acceptent uniquement les clés API d'application (`x-api-key`)\_; les tokens d'utilisateur de la Business Console sont rejetés avec `403`.\n\nRenvoie un gabarit. La réponse n'inclut jamais d'image, de vecteur, d'identifiant de la session supprimée ou de données d'identité."
      operationId: get_biometric_template
      parameters:
        - in: path
          name: template_uuid
          required: true
          description: >-
            Identifiant du modèle, tel que renvoyé dans
            `biometric_template_uuid` par les endpoints de suppression de
            session, `biometric_template_id` lors d'une correspondance de
            Recherche faciale, ou l'endpoint de liste.
          schema:
            type: string
            format: uuid
            example: 9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b
      responses:
        '200':
          description: Le modèle.
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: >-
                      Identifiant du modèle. Généré de manière aléatoire ; non
                      dérivé de la session supprimée ou de son visage.
                  vendor_user_uuid:
                    type: string
                    format: uuid
                    description: L'utilisateur propriétaire.
                  vendor_data:
                    type: string
                    nullable: true
                    description: >-
                      Les `vendor_data` actuelles de l'utilisateur, résolues
                      lorsque vous lisez le modèle (jamais copiées).
                  source_type:
                    type: string
                    enum:
                      - session_delete
                      - automatic_retention
                      - backfill
                    description: >-
                      Manière dont le modèle a été créé : suppression d'une
                      session (API ou Console), fenêtre automatique de
                      conservation des données de l'application, ou
                      rétro-remplissage opéré par Didit sur votre instruction.
                  provenance_reference:
                    type: string
                    format: uuid
                    description: >-
                      Référence opaque liant le modèle à son journal d'audit. Il
                      ne s'agit pas de l'identifiant de la session supprimée et
                      il ne peut pas être résolu vers celui-ci.
                  retention_policy:
                    type: string
                    enum:
                      - delete_with_session
                      - retain_until_user_deleted
                    description: >-
                      La politique de l'application au moment de la
                      conservation.
                  retention_override:
                    type: boolean
                    nullable: true
                    description: >-
                      La valeur `retain_face_embeddings` envoyée lors de la
                      suppression, ou `null` lorsque la politique s'est
                      appliquée.
                  retained_at:
                    type: string
                    format: date-time
                  expires_at:
                    type: string
                    format: date-time
                    description: >-
                      Moment où le modèle expire et est purgé automatiquement.
                      Toujours défini.
                  retained_by:
                    type: string
                    nullable: true
                    description: >-
                      Entité principale ayant donné l'instruction : l'ID
                      d'application pour les clés API, l'ID de membre de la
                      Console pour les actions dans la Console, ou un
                      identifiant `service:` pour la conservation automatique.
                      Jamais une adresse e-mail.
                  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: >-
                      L'`instruction_id` envoyé lors de la suppression, ou un
                      identifiant généré par Didit.
                  held_out_of_use:
                    type: boolean
                    description: >-
                      `true` uniquement lorsqu'une obligation légale de
                      conservation (legal hold) s'applique. Un gabarit conservé
                      est exclu de toute mise en correspondance.
                  status:
                    type: string
                    enum:
                      - pending
                      - active
                      - expired
                      - held_out_of_use
                      - purge_pending
                      - purge_failed
                      - purged
                    description: >-
                      Seuls les modèles `active` qui ne sont pas suspendus, dont
                      la date `expires_at` n'est pas dépassée et dont
                      l'utilisateur existe toujours participent à la
                      correspondance.
                  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 de l'utilisateur de la Console, ou clé API non autorisée. Ces
            endpoints acceptent uniquement les clés API d'application.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Modèle inconnu, modèle appartenant à une autre application, ou (sur
            `GET`) modèle purgé.
          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: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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