> ## 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.

# Status Ekspor File Sesi dan Tautan Unduh API Didit

> GET /v3/session/{id}/files-export/{export_id}/ untuk memantau progres ekspor file sesi dan mendapatkan tautan unduh bertanda tangan saat ZIP siap di Didit.

Baca ekspor yang dimulai dengan [Ekspor file](https://docs.didit.me/id/sessions-api/export-files.md).

* `PENDING` dan `PROCESSING`: ZIP sedang disiapkan. Baca ulang ekspor dalam beberapa detik.
* `READY`: `download_url` adalah tautan yang ditandatangani ke ZIP yang tetap berlaku untuk waktu singkat. Baca ulang ekspor untuk mendapatkan tautan baru sampai `expires_at`.
* `FAILED`: ZIP tidak dapat disiapkan. Mulai ekspor baru.
* `EXPIRED`: ZIP telah dihapus. Mulai ekspor baru.

Setiap permintaan pembacaan yang memberikan tautan unduhan dicatat ke log audit sesi. Ekspor dari sesi yang telah dihapus mengembalikan `404`.


## OpenAPI

````yaml id/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 Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/files-export/{exportId}/:
    get:
      tags:
        - Sessions
      summary: Dapatkan ekspor file sesi
      description: >-
        Progres ekspor yang dimulai dengan `POST
        /v3/session/{sessionId}/files-export/`. Begitu `status` bernilai
        `READY`, `download_url` adalah URL bertanda tangan dari ZIP yang tetap
        valid untuk waktu singkat; baca ekspor lagi untuk mendapatkan URL baru
        hingga `expires_at`. Setiap pembacaan yang memberikan tautan unduhan
        dicatat ke dalam log audit sesi. Ekspor dari sesi yang telah dihapus
        mengembalikan `404`.
      operationId: get_v3_session_files_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID sesi verifikasi (`session_id` yang dikembalikan oleh `POST
            /v3/session/`). Menerima ID sesi Verifikasi Pengguna (KYC) dan
            Verifikasi Bisnis (KYB). Sesi yang dihapus mengembalikan `404`.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: exportId
          in: path
          required: true
          description: >-
            `export_id` yang dikembalikan oleh `POST
            /v3/session/{sessionId}/files-export/`.
          schema:
            type: string
            format: uuid
            example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
      responses:
        '200':
          description: Ekspor.
          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: Satu file ZIP berisi setiap file dari sebuah sesi, dalam kualitas asli.
      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 ekspor. Teruskan ke `GET
            /v3/session/{sessionId}/files-export/{exportId}/`.
        session_id:
          type: string
          format: uuid
          description: Sesi asal file-file tersebut.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
            - EXPIRED
          description: >-
            `PENDING` dan `PROCESSING` saat ZIP sedang disiapkan, `READY`
            setelah dapat diunduh, `FAILED` ketika tidak dapat disiapkan (minta
            ekspor baru), `EXPIRED` setelah ZIP dihapus.
        file_count:
          type: integer
          nullable: true
          description: File di dalam ZIP. Diatur hanya ketika `status` bernilai `READY`.
        size_bytes:
          type: integer
          format: int64
          nullable: true
          description: Ukuran ZIP dalam bita. Diatur hanya saat `status` adalah `READY`.
        download_url:
          type: string
          format: uri
          nullable: true
          description: >-
            URL ZIP yang ditandatangani, valid untuk waktu singkat. Diatur hanya
            saat `status` adalah `READY`; baca ekspor lagi untuk mendapatkan
            yang baru.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Waktu ketika ZIP dihapus, 24 jam setelah siap. Hanya diatur selama
            `status` bernilai `READY`.
        error:
          type: string
          nullable: true
          description: Alasan mengapa ekspor gagal, saat `status` adalah `FAILED`.
        created_at:
          type: string
          format: date-time
          description: Waktu ketika ekspor diminta.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Waktu ketika ZIP siap atau ekspor gagal.
  responses:
    Unauthorized:
      description: Tidak diotorisasi
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Kunci API tidak valid
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Dilarang
      content:
        application/json:
          examples:
            No Permission:
              summary: Tidak Ada Izin
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: Kredit Tidak Cukup
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
    NotFound:
      description: Tidak Ditemukan
      content:
        application/json:
          examples:
            Not Found:
              summary: Tidak Ditemukan
              value:
                detail: Resource not found.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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