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

# Récupérer un rapport asynchrone - Référence API

> Récupérez un rapport asynchrone Didit : statut de génération, fichiers, ID des sessions en échec et nombre d'échecs avant de relancer.

L'API Reports asynchrone de Didit renvoie une tâche d'export et la liste de ses échecs actuels. `failed_count` est égal à la longueur de `failed_item_ids` ;  les sessions supprimées sont exclues.

Retrouvez le rapport avec [Lister les rapports asynchrones](https://docs.didit.me/fr/management-api/reports/list.md), puis suivez les [consignes pour réessayer](https://docs.didit.me/fr/console/export-pdf-csv.md#réessayer-les-éléments-ayant-échoué-lors-de-l’export) ou [réessayez l'export](https://docs.didit.me/fr/management-api/reports/retry.md).


## OpenAPI

````yaml fr/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/
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/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/:
    get:
      tags:
        - Reports
      summary: Récupérer le rapport asynchrone
      description: >-
        Requiert des autorisations de lecture pour chaque ressource couverte par
        le rapport. Les identifiants d'application ou de clé API doivent
        appartenir à l'application figurant dans le chemin. Les tokens Bearer de
        membre doivent avoir accès à l'application. failed_item_ids exclut les
        sessions supprimées ; failed_count correspond à sa longueur.
      operationId: retrieve_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'organisation.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'application.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID du rapport.
      responses:
        '200':
          description: Récupérer le rapport asynchrone.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '401':
          description: Identifiants manquants, invalides ou expirés.
        '403':
          description: >-
            L'appelant n'a pas accès à cette application ou ne dispose pas des
            autorisations requises.
        '404':
          description: Rapport introuvable dans cette application.
        '429':
          $ref: '#/components/responses/RateLimitedRead'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.reports.retrieve(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const result = await
            didit.reports.retrieve("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Reports.Retrieve(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_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.reports().retrieve("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_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->reports->retrieve('11111111-2222-3333-4444-555555555555');

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


            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            # and DIDIT_APPLICATION_ID.

            didit = Didit::Client.new


            result =
            didit.reports.retrieve("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, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await
            client.Reports.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AsyncReport:
      type: object
      required:
        - uuid
        - report_type
        - report_type_display
        - status
        - status_display
        - parameters
        - requested_by_user_id
        - requested_by_email
        - requested_by_name
        - row_count
        - failed_item_ids
        - failed_count
        - file_size
        - files
        - scheduled_report
        - error_message
        - deletion_pending
        - eta_seconds
        - started_at
        - completed_at
        - expires_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          description: Identifiant du rapport.
          format: uuid
        report_type:
          type: string
          description: Type d'export ou de rapport de conformité.
          enum:
            - SESSION_EXPORT
            - TRANSACTION_EXPORT
            - BUSINESS_EXPORT
            - VENDOR_USER_EXPORT
            - VENDOR_BUSINESS_EXPORT
            - CASE_EXPORT
            - CASE_SLA_EXPORT
            - LIST_ENTRY_EXPORT
            - EVENT_EXPORT
            - COMPLIANCE_KYC_KYB
            - COMPLIANCE_AML_LOG
            - COMPLIANCE_TRAVEL_RULE
            - COMPLIANCE_SANCTIONS_PEP
            - COMPLIANCE_RISK_SUMMARY
            - COMPLIANCE_SAR_STR_DRAFT
            - COMPLIANCE_CTR
            - COMPLIANCE_CASE_SUMMARY
        report_type_display:
          type: string
          description: Libellé affiché pour le type de rapport.
        status:
          type: string
          description: >-
            État de génération. READY peut inclure des échecs individuels ;
            vérifiez failed_count.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: Libellé affiché pour l'état de génération.
        parameters:
          type: object
          description: Options d'export d'origine ; les clés dépendent de report_type.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: >-
            Identité du demandeur d'origine, ou null pour les appelants sans
            identité d'utilisateur.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-mail du demandeur, lorsqu'il est disponible.
          nullable: true
        requested_by_name:
          type: string
          description: Nom d'affichage du demandeur, lorsqu'il est disponible.
          nullable: true
        row_count:
          type: integer
          description: Nombre d'enregistrements exportés, ou null avant la génération.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            UUID des sessions en production ayant échoué dans cet export de
            vérification. Les sessions supprimées sont exclues. Utilisez ces
            identifiants pour une nouvelle tentative sélective.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: Nombre d'entrées dans failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: >-
            Taille totale du fichier généré en octets, ou null avant la
            génération.
          format: int64
          nullable: true
        files:
          type: array
          description: >-
            Métadonnées du fichier généré ; ne contient pas d'URL de
            téléchargement.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: >-
            Identifiant de la planification, ou null pour un rapport non
            planifié.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: Erreur de génération, le cas échéant.
          nullable: true
        deletion_pending:
          type: boolean
          description: Indique si une suppression demandée est encore en cours.
        eta_seconds:
          type: integer
          description: >-
            Durée estimée en secondes avant la fin de la génération d'un rapport
            en attente ou en cours de traitement ; null sans historique ou une
            fois le rapport terminé.
          nullable: true
        started_at:
          type: string
          description: Heure de début de génération.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: Heure de fin de génération.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: Date d'expiration du rapport.
          format: date-time
        created_at:
          type: string
          description: Heure de création.
          format: date-time
        updated_at:
          type: string
          description: Heure de la dernière mise à jour.
          format: date-time
      example:
        uuid: 00000000-0000-4000-8000-000000000002
        report_type: SESSION_EXPORT
        report_type_display: Verifications
        status: READY
        status_display: Ready
        parameters: {}
        requested_by_user_id: null
        requested_by_email: null
        requested_by_name: null
        row_count: 9
        failed_item_ids:
          - 00000000-0000-4000-8000-000000000001
        failed_count: 1
        file_size: 1200
        files:
          - name: verifications.csv
            format: csv
            rows: 9
            bytes: 1200
        scheduled_report: null
        error_message: null
        deletion_pending: false
        eta_seconds: null
        started_at: '2026-11-11T01:00:00Z'
        completed_at: '2026-11-11T01:01:00Z'
        expires_at: '2026-12-11T01:00:00Z'
        created_at: '2026-11-11T01:00:00Z'
        updated_at: '2026-11-11T01:01:00Z'
    AsyncReportFile:
      type: object
      required:
        - name
        - format
        - rows
        - bytes
      properties:
        name:
          type: string
          description: Nom du fichier.
        format:
          type: string
          description: Format du fichier.
        rows:
          type: integer
          description: Enregistrements exportés dans ce fichier, le cas échéant.
          nullable: true
        bytes:
          type: integer
          description: Taille du fichier en octets.
          format: int64
    RateLimitBudgetError:
      type: object
      description: >-
        Renvoyé uniquement pour un refus de quota du middleware lié à la limite
        de débit. Les autres erreurs 429, y compris les conflits d'idempotence
        et les plafonds propres à chaque endpoint, ne garantissent pas ces
        champs de métadonnées.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Message lisible de refus de budget existant.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: "Référence de support opaque\_: RL- suivi de 32 caractères hexadécimaux minuscules d'un UUID."
        limit:
          type: integer
          description: Budget du périmètre dépassé ; égal à X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: Budget restant, ramené à zéro ; égal à X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Heure de réinitialisation de la fenêtre en secondes Unix ; égale à
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Durée de la fenêtre fixe en secondes, et non le temps d'attente
            restant. Respectez Retry-After avant de réessayer.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
  responses:
    RateLimitedRead:
      description: >-
        Dépassement du budget de lecture du middleware. Respectez Retry-After
        avant de réessayer.
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              GET request rate limit exceeded. You can make up to 600 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 600
            remaining: 0
            reset: 1794358860
            window_seconds: 60
  headers:
    BudgetRetryAfter:
      description: >-
        Nombre de secondes à attendre, arrondi à la fenêtre suivante. Présent
        sur les refus liés au quota du middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Le périmètre dont le quota a été dépassé. Présent sur les refus liés au
        quota du middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Budget du périmètre dépassé ; égal à la limite du corps. Présent sur les
        refus de budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Budget restant, ramené à zéro ; égal à remaining du corps. Présent lors
        des refus liés au budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Heure de réinitialisation en secondes Unix ; égale à reset dans le
        corps. Présent sur les refus liés au quota du middleware.
      schema:
        type: integer
  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.
    BearerAuth:
      type: http
      scheme: bearer
      description: Le token d'accès client-credentials de l'application.

````

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