> ## 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 rapport PDF de vérification d'entreprise (KYB)

> Téléchargez le rapport PDF d'une session KYB terminée de Didit : registre, personnes clés, actionnariat, documents, AML et examens.



Prompt API de génération du PDF de session KYB
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`Download the PDF report of one finished Didit business verification (KYB) session.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/

Authentication:
Use the x-api-key header with my Didit API key. A scoped key needs businesses: read and media: read; a key limited to some workflows or to approved sessions can't call this endpoint. application_id must be the application the key belongs to.

Goal:
\- Store an audit-ready KYB report for my compliance archive, or attach it to a case or regulator request.

Behavior:
\- business_session_id is the session_id of the KYB session.
\- The session must be "Approved", "Declined" or "In Review"; any other status returns 403.
\- The body is binary application/pdf, not JSON. Content-Disposition: attachment; filename=business_<business_session_id>.pdf.
\- The report covers company registry data, key people and beneficial owners, documents, AML results and the other workflow features, plus the session's tags and reviews. With white-label customization on, it uses my logo and privacy policy URL.
\- Rendered on every call: store the file instead of fetching it repeatedly.

Example call:
curl --fail -X GET "https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/businesses/c2d3e4f5-0617-4829-9a3b-4c5d6e7f8091/pdf/" \
-H "x-api-key: YOUR_API_KEY" \
\--output business-report.pdf

What to read from the response:
\- The PDF bytes. Do not parse the body as JSON.
\- Content-Disposition - the suggested file name.

Failure modes:
\- 401 - the API key has expired.
\- 403 - {"detail": "You can only generate a PDF for sessions in review, declined or approved."} when the session is not finished; {"detail": "Authentication credentials were not provided or are invalid."} for a missing key (a wrong, revoked or expired key gets 401); {"detail": "You do not have permission to perform this action."} for a key of another application; a scoped key without businesses: read or media: read; a key limited to workflows or approved sessions; a request from outside the key's IP list.
\- 404 - {"detail": "Business session not found."}
\- 429 - more than 600 GET requests per minute with this key.

Side effects: none. Not billed.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Coller dans

[Générer un PDF](https://docs.didit.me/fr/sessions-api/generate-pdf.md) génère aussi des rapports KYB. Utilisez celui qui convient à votre intégration : cet endpoint cible la session via votre organisation et votre application, l’autre uniquement par identifiant de session.> [!NOTE]
>
> Le rapport n’est disponible que lorsque la session est `Approved`, `Declined` ou `In Review`. Attendez le [webhook](https://docs.didit.me/fr/integration/webhooks.md) `status.updated` avant de le demander.## Voir aussi- [Générer un PDF](https://docs.didit.me/fr/sessions-api/generate-pdf.md)
- [Exporter en PDF et CSV](https://docs.didit.me/fr/console/export-pdf-csv.md)
- [Schéma de réponse KYB](https://docs.didit.me/fr/business-verification/response-schema.md)


## OpenAPI

````yaml fr/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/
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}/businesses/{business_session_id}/pdf/:
    get:
      tags:
        - Businesses
      summary: Télécharger un rapport PDF de session d'entreprise
      description: >-
        Générez le rapport PDF d'une session de Vérification d'entreprise (KYB)
        : données du registre des sociétés, personnes clés et bénéficiaires
        effectifs, documents, résultats AML et les autres fonctionnalités du
        workflow, ainsi que les tags de la session et l'activité d'examen. Avec
        la personnalisation en marque blanche activée, le rapport inclut votre
        logo et l'URL de votre politique de confidentialité. Le corps de la
        réponse est le PDF lui-même (`application/pdf`), et non du JSON.


        La session doit être à l'état `Approved`, `Declined` ou `In Review` ;
        tout autre statut renvoie un code `403`, attendez donc d'abord le
        [webhook](https://docs.didit.me/fr/integration/webhooks)
        `status.updated`. Le rapport est généré à chaque appel et rien n'est
        facturé ; stockez donc le fichier au lieu de le récupérer de manière
        répétée. `GET /v3/session/{sessionId}/generate-pdf/` génère le même type
        de rapport à partir du seul identifiant de session.


        Un rapport PDF est considéré comme un média : une clé API restreinte
        nécessite `businesses: read` et `media: read`, et une clé limitée à
        certains workflows ou aux sessions approuvées ne peut pas l'appeler.
      operationId: get_business_session_pdf
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'organisation.
          example: 11111111-2222-3333-4444-555555555555
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            UUID de l'application. Doit être l'application à laquelle appartient
            la clé API : une clé utilisée sur toute autre application reçoit une
            erreur `403`.
          example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
        - name: business_session_id
          in: path
          required: true
          description: >-
            `session_id` de la session de Vérification d'entreprise (KYB), tel
            que renvoyé lors de la création de la session. Une session d'une
            autre application renvoie `404`.
          schema:
            type: string
            format: uuid
          example: 22222222-3333-4444-5555-666666666666
      responses:
        '200':
          description: >-
            Le PDF généré, renvoyé directement au format binaire
            `application/pdf`.
          headers:
            Content-Disposition:
              description: >-
                Toujours `attachment;
                filename=business_{business_session_id}.pdf`.
              schema:
                type: string
                example: >-
                  attachment;
                  filename=business_22222222-3333-4444-5555-666666666666.pdf
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          description: >-
            La clé API a expiré. Seule une clé créée avec une date d'expiration
            peut expirer ; après cette date, chaque requête effectuée avec
            celle-ci renvoie `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La requête n'est pas autorisée ou la session n'est pas terminée.
            Lisez `detail` : une session qui n'est pas `Approved`, `Declined` ou
            `In Review`, une clé API manquante (une clé erronée, révoquée ou
            expirée reçoit `401`), un `application_id` qui n'est pas celui de
            l'application de la clé, une clé restreinte sans `media: read` ou
            `businesses: read`, une clé limitée aux workflows ou aux sessions
            approuvées, ou une requête provenant de l'extérieur de la liste d'IP
            de la clé.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Session not finished:
                  value:
                    detail: >-
                      You can only generate a PDF for sessions in review,
                      declined or approved.
                Missing or invalid key:
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Another application:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without media read:
                  value:
                    detail: This API key has no read access to media.
                Scoped key without businesses read:
                  value:
                    detail: This API key has no read access to companies.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            Aucune session d'entreprise avec cet ID n'existe dans l'application
            (jamais créée, supprimée ou détenue par une autre application). Une
            valeur qui n'est pas un UUID renvoie une page HTML `404` au lieu de
            ce corps JSON.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: Business session not found.
        '429':
          description: >-
            Plus de 600 requêtes GET par minute avec cette clé API. Attendez le
            nombre de secondes indiqué dans `Retry-After`, puis réessayez.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: >-
                Secondes avant la réinitialisation de la fenêtre actuelle d'une
                minute.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Requêtes autorisées par minute dans ce budget.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requêtes restantes dans la fenêtre actuelle.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Temps Unix auquel la fenêtre se réinitialise.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl --fail -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/businesses/22222222-3333-4444-5555-666666666666/pdf/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              --output business_report.pdf
        - lang: python
          label: Python
          source: |-
            from didit import Didit

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

            content = client.businesses.generate_session_pdf(
                "22222222-3333-4444-5555-666666666666",
            )
            with open("download.pdf", "wb") as file:
                file.write(content)
        - lang: javascript
          label: Node.js
          source: >-
            import { writeFile } from "node:fs/promises";

            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const content = await
            didit.businesses.generateSessionPdf("22222222-3333-4444-5555-666666666666");

            await writeFile("download.pdf", Buffer.from(await
            content.arrayBuffer()));
        - 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\nresp, err := client.Businesses.GenerateSessionPDF(ctx, \"22222222-3333-4444-5555-666666666666\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer resp.Body.Close()\nfile, err := os.Create(\"download.pdf\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer file.Close()\nif _, err := io.Copy(file, resp.Body); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: >-
            import java.nio.file.Path;

            import me.didit.Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            client.businesses().generateSessionPdf("22222222-3333-4444-5555-666666666666")
                    .writeTo(Path.of("download.pdf"));
        - 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();


            $content =
            $didit->businesses->generateSessionPdf('22222222-3333-4444-5555-666666666666');

            $content->saveTo('download.pdf');
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            # and DIDIT_APPLICATION_ID.

            didit = Didit::Client.new


            content =
            didit.businesses.generate_session_pdf("22222222-3333-4444-5555-666666666666")

            File.binwrite("download.pdf", content)
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var content = await
            client.Businesses.GenerateSessionPdfAsync("22222222-3333-4444-5555-666666666666");

            await content.SaveToAsync("download.pdf");
components:
  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.

````

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