> ## 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 para exportar todos os ficheiros de sessão num ZIP

> POST /v3/session/{id}/files-export/ na Didit prepara um ZIP com imagens, vídeos e documentos de uma sessão KYC ou KYB, em qualidade original.

Prepara um único ZIP com todos os ficheiros de uma sessão de Verificação de utilizadores (KYC) ou de Verificação de empresas (KYB): frentes e versos dos documentos, selfies, vídeos de prova de vida e documentos carregados, na qualidade original.

O ZIP é preparado em segundo plano. A chamada responde com `202` e com a exportação; consulte-a com [Obter exportação de ficheiros](https://docs.didit.me/pt/sessions-api/get-files-export.md) até que `status` seja `READY`, e depois transfira `download_url`.

* Enquanto uma exportação da mesma sessão ainda estiver a ser preparada, a chamada devolve essa exportação em vez de iniciar uma nova.
* O ZIP é eliminado 24 horas depois de ficar pronto e imediatamente quando a sessão for eliminada.
* Não é possível exportar uma sessão eliminada: a chamada devolve `404`.
* Cada exportação fica registada no registo de auditoria da sessão.
* Uma chave de API com âmbito restrito precisa de `media: read` e `decisions: read`.


## OpenAPI

````yaml pt/openapi-25.json POST /v3/session/{sessionId}/files-export/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de Verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/files-export/:
    post:
      tags:
        - Sessions
      summary: Exportar todos os ficheiros de uma sessão
      description: >-
        Iniciar a preparação de um ficheiro ZIP com todas as imagens, vídeos e
        documentos de uma sessão de Verificação de utilizadores (KYC) ou de
        Verificação de empresas (KYB), na qualidade original: os ficheiros são
        guardados no ZIP tal como foram capturados, sem nunca serem
        recomprimidos. Responde `202` com a exportação; consulte-a com `GET
        /v3/session/{sessionId}/files-export/{exportId}/` até que `status` seja
        `READY` e, em seguida, transfira `download_url`. Enquanto uma exportação
        da mesma sessão ainda estiver a ser preparada, essa exportação é
        devolvida em vez de uma nova.


        O ficheiro ZIP é eliminado 24 horas após estar pronto e imediatamente
        quando a sessão for eliminada. Uma sessão eliminada não pode ser
        exportada. Todas as exportações e todas as ligações de transferência
        fornecidas são registadas no registo de auditoria da sessão. Uma chave
        de API com âmbito restrito necessita de `media: read` e `decisions:
        read`; um utilizador da consola necessita do privilégio para ler
        sessões.
      operationId: post_v3_session_files_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID da sessão de verificação (o `session_id` retornado por `POST
            /v3/session/`). Aceita IDs de sessão de Verificação de utilizadores
            (KYC) e de Verificação de empresas (KYB). Uma sessão eliminada
            retorna `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      responses:
        '202':
          description: A exportação, a ser preparada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionFilesExport'
              example:
                export_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                session_id: 11111111-2222-3333-4444-555555555555
                status: PENDING
                file_count: null
                size_bytes: null
                download_url: null
                expires_at: null
                error: null
                created_at: '2026-10-29T12:00:03Z'
                completed_at: null
        '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 POST
            'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/files-export/'
            \
              -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.export_files(
                "11111111-2222-3333-4444-555555555555",
            )
            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.exportFiles("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ExportFiles(ctx, \"11111111-2222-3333-4444-555555555555\")\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().exportFiles("11111111-2222-3333-4444-555555555555");

            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->exportFiles('11111111-2222-3333-4444-555555555555');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.export_files("11111111-2222-3333-4444-555555555555")

            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.ExportFilesAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionFilesExport:
      type: object
      description: Um ZIP com todos os ficheiros de uma sessão, na qualidade 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 da exportação. Passe-o a `GET
            /v3/session/{sessionId}/files-export/{exportId}/`.
        session_id:
          type: string
          format: uuid
          description: A sessão da qual os ficheiros são provenientes.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
            - EXPIRED
          description: >-
            `PENDING` e `PROCESSING` enquanto o ZIP está a ser preparado,
            `READY` assim que puder ser descarregado, `FAILED` quando não foi
            possível prepará-lo (solicite uma nova exportação), `EXPIRED` assim
            que o ZIP for eliminado.
        file_count:
          type: integer
          nullable: true
          description: Ficheiros no ZIP. Definido apenas enquanto `status` for `READY`.
        size_bytes:
          type: integer
          format: int64
          nullable: true
          description: >-
            Tamanho do ZIP em bytes. Definido apenas enquanto `status` for
            `READY`.
        download_url:
          type: string
          format: uri
          nullable: true
          description: >-
            URL assinado do ZIP, válido por um curto período de tempo. Definido
            apenas enquanto `status` for `READY`; leia a exportação novamente
            para obter um novo.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando o ficheiro ZIP é eliminado, 24 horas após ficar pronto.
            Definido apenas enquanto o `status` for `READY`.
        error:
          type: string
          nullable: true
          description: O motivo pelo qual a exportação falhou, quando `status` é `FAILED`.
        created_at:
          type: string
          format: date-time
          description: Quando a exportação foi pedida.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Quando o ficheiro ZIP ficou pronto ou a exportação falhou.
  responses:
    Unauthorized:
      description: Não autorizado
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Chave de API inválida
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Proibido
      content:
        application/json:
          examples:
            No Permission:
              summary: Sem permissão
              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: Não encontrado
      content:
        application/json:
          examples:
            Not Found:
              summary: Não encontrado
              value:
                detail: Resource not found.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por
        recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de
        endereços IP e a uma data de validade. 401 significa que a chave está
        incorreta, revogada ou expirada; 403 significa que nenhuma chave foi
        enviada, que a chave não tem acesso a este recurso ou ação, ou que o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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