> ## 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 exportación de archivos de sesión: estado y enlace

> GET /v3/session/{id}/files-export/{export_id}/ de Didit: consulta el progreso de la exportación de archivos y obtén el enlace firmado del ZIP.

Consulta una exportación iniciada con [Exportar archivos](https://docs.didit.me/es/sessions-api/export-files.md).

* `PENDING` y `PROCESSING`: el ZIP se está preparando. Vuelve a consultar la exportación en unos segundos.
* `READY`: `download_url` es un enlace firmado al ZIP que es válido durante poco tiempo. Vuelve a consultar la exportación para obtener un enlace nuevo hasta `expires_at`.
* `FAILED`: no se pudo preparar el ZIP. Inicia una nueva exportación.
* `EXPIRED`: el ZIP se eliminó. Inicia una nueva exportación.

Cada consulta que proporciona un enlace de descarga queda registrada en el registro de auditoría de la sesión. La exportación de una sesión eliminada devuelve `404`.


## OpenAPI

````yaml es/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 verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/files-export/{exportId}/:
    get:
      tags:
        - Sessions
      summary: Obtener una exportación de archivos de sesión
      description: >-
        Progreso de una exportación iniciada con `POST
        /v3/session/{sessionId}/files-export/`. Cuando `status` es `READY`,
        `download_url` es una URL firmada del ZIP que es válida durante poco
        tiempo; vuelve a consultar la exportación para obtener una nueva hasta
        `expires_at`. Cada consulta que entrega un enlace de descarga se
        registra en el registro de auditoría de la sesión. La exportación de una
        sesión eliminada devuelve `404`.
      operationId: get_v3_session_files_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID de la sesión de verificación (el `session_id` que devuelve
            `POST /v3/session/`). Acepta ID de sesión tanto de Verificación de
            usuarios (KYC) como de Verificación de empresas (KYB). Una sesión
            eliminada devuelve `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: exportId
          in: path
          required: true
          description: >-
            El `export_id` que devuelve `POST
            /v3/session/{sessionId}/files-export/`.
          schema:
            type: string
            format: uuid
            example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
      responses:
        '200':
          description: La exportación.
          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 ZIP con todos los archivos de una sesión, en calidad original.
      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: >-
            ID de la exportación. Pásalo a `GET
            /v3/session/{sessionId}/files-export/{exportId}/`.
        session_id:
          type: string
          format: uuid
          description: La sesión de la que proceden los archivos.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
            - EXPIRED
          description: >-
            `PENDING` y `PROCESSING` mientras se prepara el ZIP, `READY` cuando
            ya se puede descargar, `FAILED` cuando no se pudo preparar (solicita
            una nueva exportación), `EXPIRED` cuando el ZIP se eliminó.
        file_count:
          type: integer
          nullable: true
          description: Archivos del ZIP. Solo se rellena mientras `status` es `READY`.
        size_bytes:
          type: integer
          format: int64
          nullable: true
          description: >-
            Tamaño del ZIP en bytes. Solo se establece mientras `status` es
            `READY`.
        download_url:
          type: string
          format: uri
          nullable: true
          description: >-
            URL firmada del ZIP, válida durante poco tiempo. Solo se establece
            mientras `status` es `READY`; vuelve a leer la exportación para
            obtener una nueva.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Cuándo se elimina el ZIP, 24 horas después de estar listo. Solo se
            define mientras `status` es `READY`.
        error:
          type: string
          nullable: true
          description: Por qué falló la exportación, cuando `status` es `FAILED`.
        created_at:
          type: string
          format: date-time
          description: Cuándo se solicitó la exportación.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Cuándo estuvo listo el ZIP o cuándo falló la exportación.
  responses:
    Unauthorized:
      description: No autorizado
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Clave de API no válida
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Prohibido
      content:
        application/json:
          examples:
            No Permission:
              summary: Sin permiso
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: Créditos insuficientes
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
    NotFound:
      description: No encontrado
      content:
        application/json:
          examples:
            Not Found:
              summary: No encontrado
              value:
                detail: Resource not found.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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