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

# Lister les brouillons de personnes clés KYB API

> Listez, dans Didit, les personnes clés que vous préparez pour une session de vérification d'entreprise (KYB) avant de les soumettre.



## OpenAPI

````yaml fr/openapi-25.json GET /v3/session/{sessionId}/kyb/parties/drafts/
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/session/{sessionId}/kyb/parties/drafts/:
    get:
      tags:
        - Sessions
      summary: Lister les brouillons de parties KYB
      description: >-
        Lister les parties que vous préparez pour cette session KYB, de la plus
        ancienne à la plus récente. Un brouillon n'est pas une partie déclarée :
        il n'apparaît ni dans la décision ni dans la console et ne crée aucune
        session de vérification tant que vous ne l'avez pas soumis avec `POST
        /v3/session/{sessionId}/kyb/parties/submit/`. Nécessite
        `write:businesses`.
      operationId: get_v3_session_kyb_party_drafts
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID de la session de Vérification d'entreprise (KYB). Il doit
            appartenir à l'application de la clé API.
          schema:
            type: string
            format: uuid
            example: 33333333-4444-5555-6666-777777777777
        - name: node_id
          in: query
          required: false
          description: >-
            Nœud de workflow de l'étape KYB. Nécessaire uniquement lorsque le
            workflow comporte plus d'un nœud KYB ; par défaut, Didit utilise le
            nœud propre à la session.
          schema:
            type: string
      responses:
        '200':
          description: Les brouillons enregistrés.
          content:
            application/json:
              schema:
                type: object
                properties:
                  parties:
                    type: array
                    items:
                      type: object
                      required:
                        - draft_id
                        - created_at
                        - updated_at
                        - party
                      properties:
                        draft_id:
                          type: string
                          format: uuid
                        created_at:
                          type: string
                          format: date-time
                        updated_at:
                          type: string
                          format: date-time
                        party:
                          type: object
                          required:
                            - entity_type
                            - nationality
                          properties:
                            entity_type:
                              type: string
                              enum:
                                - person
                                - company
                              description: >-
                                Indique si la partie est un particulier ou une
                                entreprise.
                            full_name:
                              type: string
                              maxLength: 255
                              description: >-
                                Nom complet d'une personne. Envoyez-le, ou
                                transmettez `first_name` et `last_name`.
                            first_name:
                              type: string
                              maxLength: 128
                            last_name:
                              type: string
                              maxLength: 128
                            role:
                              type: string
                              enum:
                                - director
                                - non_executive_director
                                - secretary
                                - chairman
                                - ubo
                                - shareholder
                                - representative
                                - founder
                                - legal_advisor
                                - authorized_signatory
                                - trustee
                                - beneficiary
                                - settlor
                                - protector
                                - company_officer
                                - investor
                                - other
                              description: >-
                                Rôle que détient la partie. Interchangeable avec
                                `roles` ; lorsque les deux sont envoyés, ils
                                sont fusionnés.
                            roles:
                              type: array
                              items:
                                type: string
                                enum:
                                  - director
                                  - non_executive_director
                                  - secretary
                                  - chairman
                                  - ubo
                                  - shareholder
                                  - representative
                                  - founder
                                  - legal_advisor
                                  - authorized_signatory
                                  - trustee
                                  - beneficiary
                                  - settlor
                                  - protector
                                  - company_officer
                                  - investor
                                  - other
                              description: >-
                                Chaque rôle détenu par la partie. Une personne a
                                besoin d'au moins un rôle (ici ou dans `role`).
                            position:
                              type: string
                              maxLength: 128
                              description: Intitulé du poste d'une personne.
                            date_of_birth:
                              type: string
                              format: date
                              nullable: true
                            company_name:
                              type: string
                              maxLength: 255
                              description: >-
                                Nom d'une partie représentant l'entreprise.
                                Requis lorsque `entity_type` est `company`.
                            registration_number:
                              type: string
                              maxLength: 100
                              description: >-
                                Numéro d'immatriculation d'une partie de
                                l'entreprise.
                            email:
                              type: string
                              format: email
                              description: >-
                                Destination d'envoi du lien de vérification.
                                Requis lorsque la partie doit effectuer une
                                vérification, ce qui dépend des paramètres de
                                rôle et des seuils d'actionnariat du workflow.
                            ownership_percent:
                              type: number
                              nullable: true
                              description: Part de l'entreprise détenue par la partie.
                            nationality:
                              type: string
                              maxLength: 100
                              description: >-
                                Nationalité d'une personne, ou pays de
                                constitution d'une entreprise. Obligatoire pour
                                chaque partie.
                            phone_number:
                              type: string
                              maxLength: 32
                            custom_fields:
                              type: object
                              additionalProperties: true
                              description: Champs supplémentaires définis par le workflow.
                            skip_verification:
                              type: boolean
                              default: false
                              description: >-
                                Demander d'ignorer la vérification de cette
                                partie. Pris en compte uniquement lorsque le
                                rôle de la partie permet de l'ignorer dans les
                                paramètres Personnes clés du workflow.
                  node_id:
                    type: string
                    nullable: true
              example:
                parties:
                  - draft_id: 5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d
                    created_at: '2026-10-31T10:00:00Z'
                    updated_at: '2026-10-31T10:00:00Z'
                    party:
                      entity_type: person
                      first_name: Ana
                      last_name: Lopez
                      roles:
                        - ubo
                        - director
                      ownership_percent: 60
                      nationality: MEX
                      email: ana.lopez@example.com
                      date_of_birth: '1984-06-12'
                node_id: node_kyb_key_people
        '401':
          description: >-
            La clé API restreinte a expiré. C'est le seul cas qui renvoie `401`
            : une clé manquante, invalide ou révoquée renvoie `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Expired key:
                  summary: La date d'expiration de la clé est dépassée
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Échec d'authentification ou d'autorisation. Une clé manquante
            renvoie `403`, tout comme la clé d'une autre application, une clé
            restreinte ne disposant pas de l'autorisation requise par cet
            endpoint, ou une requête provenant de l'extérieur de la liste
            d'adresses IP autorisées de la clé ; une clé incorrecte, révoquée ou
            expirée renvoie `401`. Distinguez-les grâce au champ `detail`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Missing or invalid credentials:
                  summary: Aucun en-tête x-api-key, ou la validation de la clé a échoué
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Other application:
                  summary: >-
                    Une clé valide qui appartient à une application différente
                    de la session
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without decisions write:
                  summary: 'La clé restreinte ne dispose pas de decisions: write'
                  value:
                    detail: This API key has no write access to decisions.
                IP not allowed:
                  summary: >-
                    Requête provenant de l'extérieur de la liste d'adresses IP
                    autorisées de la clé
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            La session n'existe pas, a été supprimée, appartient à une autre
            application ou se trouve en dehors des limites d'une clé restreinte
            ; aucun détail ne permet de les distinguer.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              example:
                detail: Session not found.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.list_kyb_party_drafts(
                "33333333-4444-5555-6666-777777777777",
            )
            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.listKybPartyDrafts("33333333-4444-5555-6666-777777777777");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ListKYBPartyDrafts(ctx, \"33333333-4444-5555-6666-777777777777\", didit.SessionsListKYBPartyDraftsParams{})\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().listKybPartyDrafts("33333333-4444-5555-6666-777777777777");

            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->listKybPartyDrafts('33333333-4444-5555-6666-777777777777');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.list_kyb_party_drafts("33333333-4444-5555-6666-777777777777")

            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.ListKybPartyDraftsAsync("33333333-4444-5555-6666-777777777777");

            Console.WriteLine(JsonSerializer.Serialize(result));
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.