> ## 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: 모든 파일을 ZIP 하나로 다운로드

> POST /v3/session/{id}/files-export/를 호출하여 KYC 또는 KYB 세션의 모든 이미지, 동영상, 문서를 원본 품질의 ZIP 파일로 준비하는 Didit API입니다.

사용자 인증(KYC) 또는 기업 확인(KYB) 세션의 모든 파일(신분증 앞뒷면, 셀피, 라이브니스 영상, 업로드된 문서)을 원본 품질 그대로 하나의 ZIP 파일로 준비합니다.

ZIP 파일은 백그라운드에서 준비됩니다. 호출 시 내보내기 정보와 함께 `202` 코드가 반환됩니다. `status`가 `READY`가 될 때까지 [Get files export](https://docs.didit.me/ko/sessions-api/get-files-export.md)로 상태를 확인한 다음 `download_url`에서 다운로드하세요.

* 동일한 세션의 내보내기가 아직 준비 중인 경우, 새 작업을 시작하는 대신 기존 내보내기를 반환합니다.
* ZIP 파일은 준비 완료 후 24시간이 지나면 삭제되며, 세션이 삭제되면 즉시 삭제됩니다.
* 삭제된 세션은 내보낼 수 없으며, 호출 시 `404`가 반환됩니다.
* 모든 내보내기 작업은 세션의 감사 로그에 기록됩니다.
* 범위가 지정된 API 키에는 `media: read` 및 `decisions: read` 권한이 필요합니다.


## OpenAPI

````yaml ko/openapi-25.json POST /v3/session/{sessionId}/files-export/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 신분증 인증 API입니다. x-api-key 헤더로 인증합니다.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/files-export/:
    post:
      tags:
        - Sessions
      summary: 세션의 모든 파일 내보내기
      description: >-
        사용자 인증(KYC) 또는 기업 확인(KYB) 세션의 모든 이미지, 동영상 및 문서를 원본 품질로 하나의 ZIP 파일로 준비하기
        시작합니다. 파일은 캡처된 그대로 ZIP에 저장되며 재압축되지 않습니다. 내보내기 정보와 함께 `202`로 응답하며,
        `status`가 `READY`가 될 때까지 `GET
        /v3/session/{sessionId}/files-export/{exportId}/`로 조회한 후 `download_url`을
        다운로드합니다. 동일한 세션의 내보내기가 여전히 준비 중인 경우 새 내보내기 대신 해당 내보내기가 반환됩니다.


        ZIP 파일은 준비된 지 24시간 후에 삭제되며, 세션이 삭제되면 즉시 삭제됩니다. 삭제된 세션은 내보낼 수 없습니다. 제공된
        모든 내보내기 및 다운로드 링크는 세션의 감사 로그에 기록됩니다. 범위가 지정된 API 키에는 `media: read` 및
        `decisions: read` 권한이 필요하며, 콘솔 사용자에게는 세션 읽기 권한이 필요합니다.
      operationId: post_v3_session_files_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            인증 세션의 UUID(`POST /v3/session/`에서 반환된 `session_id`)입니다. 사용자 인증(KYC)
            및 기업 확인(KYB) 세션 ID를 모두 지원합니다. 삭제된 세션은 `404`를 반환합니다.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      responses:
        '202':
          description: 준비 중인 내보내기입니다.
          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: 세션의 모든 파일이 원본 품질로 포함된 ZIP 파일 1개입니다.
      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입니다. `GET /v3/session/{sessionId}/files-export/{exportId}/`에
            전달하세요.
        session_id:
          type: string
          format: uuid
          description: 파일이 속한 세션입니다.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
            - EXPIRED
          description: >-
            ZIP 파일이 준비되는 동안 `PENDING` 및 `PROCESSING`, 다운로드 가능한 상태가 되면 `READY`,
            준비할 수 없었던 경우(새 내보내기 요청 필요) `FAILED`, ZIP 파일이 삭제된 후 `EXPIRED`.
        file_count:
          type: integer
          nullable: true
          description: ZIP 내의 파일입니다. `status`가 `READY`일 때만 설정됩니다.
        size_bytes:
          type: integer
          format: int64
          nullable: true
          description: ZIP 파일 크기(바이트 단위)입니다. `status`가 `READY`인 동안에만 설정됩니다.
        download_url:
          type: string
          format: uri
          nullable: true
          description: >-
            ZIP의 서명된 URL로, 짧은 시간 동안 유효합니다. `status`가 `READY`인 동안에만 설정되며, 새 URL을
            받으려면 내보내기를 다시 조회하십시오.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: ZIP 파일이 준비된 후 24시간이 지나 삭제되는 시점입니다. `status`가 `READY`인 동안에만 설정됩니다.
        error:
          type: string
          nullable: true
          description: '`status`가 `FAILED`일 때 내보내기가 실패한 이유입니다.'
        created_at:
          type: string
          format: date-time
          description: 내보내기가 요청된 시점입니다.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: ZIP 파일이 준비되었거나 내보내기가 실패한 시점입니다.
  responses:
    Unauthorized:
      description: 권한 없음
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: 유효하지 않은 API 키
              value:
                detail: Invalid API Key.
    Forbidden:
      description: 금지됨
      content:
        application/json:
          examples:
            No Permission:
              summary: 권한 없음
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: 크레딧 부족
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
    NotFound:
      description: 찾을 수 없음
      content:
        application/json:
          examples:
            Not Found:
              summary: 찾을 수 없음
              value:
                detail: Resource not found.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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