> ## 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 d'export des fichiers de session : statut et lien

> Suivez l'avancement d'un export de fichiers de session Didit via GET /v3/session/{id}/files-export/{export_id}/ et obtenez le lien signé du ZIP.

Lisez un export lancé avec [Exporter les fichiers](https://docs.didit.me/fr/sessions-api/export-files.md).

* `PENDING` et `PROCESSING` : le ZIP est en cours de préparation. Relisez l'export dans quelques secondes.
* `READY` : `download_url` est un lien signé vers le ZIP, valable pendant une courte durée. Relisez l'export pour obtenir un nouveau lien jusqu'à `expires_at`.
* `FAILED` : le ZIP n'a pas pu être préparé. Lancez un nouvel export.
* `EXPIRED` : le ZIP a été supprimé. Lancez un nouvel export.

Chaque lecture qui fournit un lien de téléchargement est consignée dans le journal d'audit de la session. Un export d'une session supprimée renvoie `404`.


## OpenAPI

````yaml fr/openapi-25.json GET /v3/session/{sessionId}/files-export/{exportId}/
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/session/{sessionId}/files-export/{exportId}/:
    get:
      tags:
        - Sessions
      summary: Obtenir un export de fichiers de session
      description: >-
        Progression d'un export démarré avec `POST
        /v3/session/{sessionId}/files-export/`. Dès que `status` est `READY`,
        `download_url` est une URL signée du fichier ZIP qui reste valide
        pendant une courte durée ; relisez l'export pour en obtenir une nouvelle
        jusqu'à `expires_at`. Chaque lecture délivrant un lien de téléchargement
        est inscrite dans le journal d'audit de la session. L'export d'une
        session supprimée renvoie `404`.
      operationId: get_v3_session_files_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID de la session de vérification (le `session_id` renvoyé par
            `POST /v3/session/`). Accepte les identifiants de session de
            Vérification des utilisateurs (KYC) et de Vérification d'entreprise
            (KYB). Une session supprimée renvoie `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: exportId
          in: path
          required: true
          description: >-
            L'`export_id` renvoyé par `POST
            /v3/session/{sessionId}/files-export/`.
          schema:
            type: string
            format: uuid
            example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
      responses:
        '200':
          description: L'export.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionFilesExport'
              example:
                export_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                session_id: 11111111-2222-3333-4444-555555555555
                status: READY
                file_count: 9
                size_bytes: 18734120
                download_url: >-
                  https://storage.example.com/session/11111111-2222-3333-4444-555555555555/files-export/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/session-42-files.zip?X-Amz-Signature=...
                expires_at: '2026-10-30T12:00:41Z'
                error: null
                created_at: '2026-10-29T12:00:03Z'
                completed_at: '2026-10-29T12:00:41Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/files-export/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/'
            \
              -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.get_files_export(
                "11111111-2222-3333-4444-555555555555",
                "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
            )
            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.getFilesExport(
              "11111111-2222-3333-4444-555555555555",
              "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
            );
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.GetFilesExport(ctx, \"11111111-2222-3333-4444-555555555555\", \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\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().getFilesExport("11111111-2222-3333-4444-555555555555",
            "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");

            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->getFilesExport('11111111-2222-3333-4444-555555555555',
            'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee');

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

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.sessions.get_files_export(
              "11111111-2222-3333-4444-555555555555",
              "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
            )
            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.GetFilesExportAsync("11111111-2222-3333-4444-555555555555",
            "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionFilesExport:
      type: object
      description: >-
        Un fichier ZIP contenant chaque fichier d'une session, dans sa qualité
        d'origine.
      required:
        - export_id
        - session_id
        - status
        - file_count
        - size_bytes
        - download_url
        - expires_at
        - error
        - created_at
        - completed_at
      properties:
        export_id:
          type: string
          format: uuid
          description: >-
            Identifiant de l'export. Transmettez-le à `GET
            /v3/session/{sessionId}/files-export/{exportId}/`.
        session_id:
          type: string
          format: uuid
          description: La session dont proviennent les fichiers.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
            - EXPIRED
          description: >-
            `PENDING` et `PROCESSING` pendant la préparation du ZIP, `READY` dès
            qu'il peut être téléchargé, `FAILED` lorsqu'il n'a pas pu être
            préparé (demandez un nouvel export), `EXPIRED` une fois le ZIP
            supprimé.
        file_count:
          type: integer
          nullable: true
          description: >-
            Fichiers dans le ZIP. Défini uniquement tant que `status` est
            `READY`.
        size_bytes:
          type: integer
          format: int64
          nullable: true
          description: >-
            Taille du ZIP en octets. Renseignée uniquement lorsque `status` est
            `READY`.
        download_url:
          type: string
          format: uri
          nullable: true
          description: >-
            URL signée du ZIP, valide pendant une courte durée. Renseignée
            uniquement lorsque `status` est `READY` ; relisez l'export pour en
            obtenir une nouvelle.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date et heure de suppression du fichier ZIP, 24 heures après qu'il a
            été prêt. Défini uniquement lorsque `status` est `READY`.
        error:
          type: string
          nullable: true
          description: >-
            Raison pour laquelle l'export a échoué, lorsque `status` est
            `FAILED`.
        created_at:
          type: string
          format: date-time
          description: Date et heure de demande de l'export.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date et heure auxquelles le fichier ZIP était prêt ou auxquelles
            l'export a échoué.
  responses:
    Unauthorized:
      description: Non autorisé
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Clé API non valide
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Interdit
      content:
        application/json:
          examples:
            No Permission:
              summary: Aucune autorisation
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: Crédits insuffisants
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
    NotFound:
      description: Introuvable
      content:
        application/json:
          examples:
            Not Found:
              summary: Introuvable
              value:
                detail: Resource not found.
  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.