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

# Mise à jour de workflow API : modifier le parcours KYC

> Mettez à jour un workflow KYC ou KYB Didit par API : renommer, réordonner les fonctionnalités ou ajuster les seuils. Sans engagement.



Prompt de mise à jour du workflow via l'API
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`Update a simple Didit workflow through the Management API.

Endpoint:
PATCH https://verification.didit.me/v3/workflows/{settings_uuid}/

Authentication:
Use the x-api-key header with my Didit API key.

Requirements:
\- Use PATCH and include only the fields I want to change.
\- To rename the workflow, send workflow_label only.
\- To change workflow checks, send the full desired features array. This replaces the previous feature order and config.
\- Do not send workflow_graph, branches, actions, webhooks, or conditional logic.
\- Send features in the exact execution order.
\- Use uppercase feature values such as OCR, LIVENESS, FACE_MATCH, AML, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE_VERIFICATION, or PROOF_OF_ADDRESS.
\- Configure each feature with the fields from /management-api/workflows/feature-configs.
\- For an OCR feature, omit config.documents_allowed or send an empty object to allow every supported document type. Send config.documents_allowed only to restrict the allowed documents.
\- Keep dependency order valid. For example, put OCR before FACE_MATCH.
\- If the workflow includes QUESTIONNAIRE, use the latest questionnaire_id as config.questionnaire_uuid.

Example metadata update body:
\{
"workflow_label": "Premium KYC"
}

Example full feature replacement body:
\{
"features": [
\{
  "feature": "OCR",
  "config": {
    "documents_allowed": {
      "USA": {
        "DL": {
          "enabled": 1,
          "sides": 2
        }
      }
    }
  }
},
\{
  "feature": "AML",
  "config": {
    "aml_score_review_threshold": 70,
    "aml_score_approve_threshold": 30
  }
}
]
}

Build the API call, handle validation errors, and return the updated workflow response.`

\</pre>



      
      

Coller dans

Utilisez `PATCH` pour les mises à jour partielles. Pour renommer un workflow, n'envoyez que `workflow_label`.```json theme={null}
{
  "workflow_label": "Premium KYC"
}
```Pour modifier les vérifications du workflow, envoyez le tableau `features` complet souhaité. Cela remplace l'ordre et la configuration des fonctionnalités précédents.```json theme={null}
{
  "features": [
    {
      "feature": "OCR",
      "config": {
        "documents_allowed": {
          "USA": {
            "DL": {
              "enabled": 1,
              "sides": 2
            }
          }
        }
      }
    },
    {
      "feature": "AML",
      "config": {
        "aml_score_review_threshold": 70,
        "aml_score_approve_threshold": 30
      }
    }
  ]
}
```La v3 de l'API garde les workflows simples : un parcours linéaire unique et une étape de statut final. Les branchements, les nœuds d'action et les nœuds de webhook ne sont pas acceptés ici.## Référence de configuration des fonctionnalitésLorsque vous envoyez `features` dans un `PATCH`, le tableau remplace l'ordre et la configuration des fonctionnalités précédents. Incluez de nouveau toute la configuration requise.La structure exacte de `config` dépend de la fonctionnalité. Consultez la liste complète des champs, les valeurs par défaut, les paramètres requis, les plages de valeurs et les exemples dans [Configurations des fonctionnalités du workflow](https://docs.didit.me/fr/management-api/workflows/feature-configs.md).Pour `OCR`, omettez `config.documents_allowed`, envoyez `null` ou envoyez `{}` pour autoriser tous les types de documents pris en charge. Ne l'incluez que si vous voulez restreindre le workflow à certains pays ou types de documents. Pour `QUESTIONNAIRE`, `config.questionnaire_uuid` est obligatoire.## Mise à jour des paramètres du workflowVous pouvez modifier les paramètres au niveau de la session sans toucher à la liste des fonctionnalités. Envoyez uniquement les champs que vous souhaitez modifier.| Champ | Type | Description |
| - | - | - |
| `is_white_label_enabled` | booléen | Active la personnalisation en marque blanche pour les sessions créées avec ce workflow. |
| `is_desktop_allowed` | booléen | Autorise l'exécution du parcours de vérification sur les navigateurs de bureau. |
| `max_retry_attempts` | entier (0–10) | Nombre maximal de nouvelles tentatives autorisées après une vérification refusée. `0` bloque l'utilisateur dès le premier refus. |
| `retry_window_days` | entier (1–365) ou `null` | Fenêtre glissante, en jours, utilisée pour compter les nouvelles tentatives (`null` = limite sur toute la durée). |
| `session_expiration_time` | entier (3600–2419200) | Nombre de secondes avant l'expiration d'une session non terminée. Minimum 1 heure, maximum 4 semaines. |```json theme={null}
{
  "is_white_label_enabled": true,
  "is_desktop_allowed": true,
  "max_retry_attempts": 5,
  "retry_window_days": 14,
  "session_expiration_time": 86400
}
```Utilisez le `uuid` du workflow renvoyé par l'endpoint de liste, de création ou de récupération comme `settings_uuid` dans cette URL.


## OpenAPI

````yaml fr/openapi-25.json PATCH /v3/workflows/{settings_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/workflows/{settings_uuid}/:
    patch:
      tags:
        - Workflows
      summary: Mettre à jour le workflow
      description: >-
        Mettre à jour un workflow. La gestion des versions dépend du champ
        `status` envoyé et de l'état actuel de la version : (1) aucun `status`
        sur une version **publiée** → la version publiée est mise à jour sur
        place (mêmes `uuid` et `version`) ; (2) aucun `status` sur un
        **brouillon** → le brouillon est mis à jour et immédiatement publié ;
        (3) `status: "published"` sur une version **publiée** → une NOUVELLE
        version publiée est créée sous le même `workflow_id` (nouvel `uuid`,
        `version` + 1) et renvoyée, et tout brouillon existant dans le groupe
        est supprimé ; (4) `status: "draft"` conserve un brouillon comme
        brouillon (enregistrement automatique) mais est rejeté avec un code 400
        sur une version publiée (`"Cannot revert a published version to
        draft."`). Le corps accepte la même liste blanche stricte de champs qu'à
        la création — les clés inconnues sont rejetées avec un code 400.
      operationId: update_workflow
      parameters:
        - name: settings_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID par version du workflow à mettre à jour.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleWorkflowUpdateRequest'
            examples:
              Replace features:
                summary: Envoyez l'ordre complet souhaité pour les fonctionnalités
                value:
                  features:
                    - feature: OCR
                    - feature: AML
              Rename:
                summary: Renommer un workflow
                value:
                  workflow_label: Premium KYC
              Set as default:
                summary: Définir ce workflow comme workflow par défaut de l'application
                value:
                  is_default: true
              Update config:
                summary: Modifier la configuration de la fonctionnalité
                value:
                  features:
                    - feature: OCR
                    - feature: LIVENESS
                      config:
                        face_liveness_method: passive
              Publish a draft:
                summary: Promouvoir un brouillon pour le publier
                value:
                  status: published
      responses:
        '200':
          description: >-
            Workflow mis à jour. Le corps contient la configuration COMPLÈTE de
            la version résultante (même structure brute `VerificationSettings`
            que `GET /v3/workflows/{settings_uuid}/`). Lorsque la mise à jour a
            créé une nouvelle version (`status: "published"` envoyé sur une
            ligne publiée), les valeurs `uuid` et `version` renvoyées diffèrent
            de celles que vous avez modifiées — utilisez l'`uuid` renvoyé pour
            les appels ultérieurs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          description: >-
            Erreur de validation — une clé de premier niveau en dehors de la
            liste autorisée, une fonctionnalité inconnue, un ordonnancement
            invalide, un seuil hors limites, la référence à un questionnaire
            inexistant, une fonctionnalité `SIGNATURE` qui passerait en
            production sans document à signer, une nouvelle fonctionnalité
            `SIGNATURE` avec `signature_level: "aes"` alors que la signature
            avancée (AES) n'est pas disponible (`aes_not_available`, voir
            `signature_availability` sur le workflow ; une étape qui stocke déjà
            `aes` la conserve), ou `status: "draft"` envoyé pour une version
            publiée (`"Cannot revert a published version to draft."`). Le corps
            de la réponse est une erreur de validation DRF indexée par nom de
            champ.
        '403':
          description: Clé API manquante ou invalide.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Aucun workflow avec ce `settings_uuid` n'existe pour l'application
            authentifiée.
        '415':
          description: >-
            Type de média non pris en charge. Définissez `Content-Type:
            application/json`.
        '429':
          description: >-
            Limite de débit dépassée. Réessayez avec une temporisation
            exponentielle.
        '500':
          description: Erreur serveur inattendue. Peut être réessayé en toute sécurité.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -X PATCH
            'https://verification.didit.me/v3/workflows/a1b2c3d4-5678-90ab-cdef-111111111111/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"workflow_label": "Premium KYC"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.workflows.update(
                "11111111-2222-3333-4444-555555555555",
                features=[{
                    "feature": "OCR",
                }, {
                    "feature": "AML",
                }],
            )
            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.workflows.update("11111111-2222-3333-4444-555555555555", {
              features: [{
                feature: "OCR",
              }, {
                feature: "AML",
              }],
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Workflows.Update(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SimpleWorkflowUpdateRequest{\n\tFeatures: didit.Some([]didit.SimpleWorkflowFeature{{\n\t\tFeature: \"OCR\",\n\t}, {\n\t\tFeature: \"AML\",\n\t}}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.SimpleWorkflowFeature;

            import me.didit.types.SimpleWorkflowUpdateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.workflows().update("11111111-2222-3333-4444-555555555555",
            SimpleWorkflowUpdateRequest.builder()
                    .features(List.of(
                            SimpleWorkflowFeature.builder()
                                    .feature(SimpleWorkflowFeature.Feature.of("OCR"))
                                    .build(),
                            SimpleWorkflowFeature.builder()
                                    .feature(SimpleWorkflowFeature.Feature.of("AML"))
                                    .build()))
                    .build());
            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->workflows->update('11111111-2222-3333-4444-555555555555', [
                'features' => [[
                    'feature' => 'OCR',
                ], [
                    'feature' => 'AML',
                ]],
            ]);

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

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.workflows.update(
              "11111111-2222-3333-4444-555555555555",
              features: [{
                feature: "OCR",
              }, {
                feature: "AML",
              }]
            )
            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.Workflows.UpdateAsync("11111111-2222-3333-4444-555555555555",
            new SimpleWorkflowUpdateRequest

            {
                Features = new SimpleWorkflowFeature[]
                {
                    new()
                    {
                        Feature = "OCR",
                    },
                    new()
                    {
                        Feature = "AML",
                    },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SimpleWorkflowUpdateRequest:
      type: object
      description: >-
        Mettre à jour les métadonnées du workflow ou remplacer la liste complète
        des fonctionnalités linéaires. Liste blanche de champs STRICTE : toute
        clé non listée ici est rejetée avec un 400.
      properties:
        workflow_label:
          type: string
          maxLength: 50
          description: Nom d'affichage du workflow (50 caractères maximum).
        is_default:
          type: boolean
          description: >-
            Définir ce workflow comme celui par défaut pour les nouvelles
            sessions.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            Contrôle la gestion des versions. Omettez ce champ pour mettre à
            jour la version actuelle sur place (les brouillons sont publiés
            automatiquement). La valeur `published` sur une version déjà publiée
            crée et renvoie une NOUVELLE version. La valeur `draft` est
            uniquement valide tant que la version est encore un brouillon.
        features:
          type: array
          minItems: 1
          description: >-
            S'il est fourni, remplace l'ordre complet des fonctionnalités ainsi
            que leur configuration.
          items:
            $ref: '#/components/schemas/SimpleWorkflowFeature'
        is_white_label_enabled:
          type: boolean
          description: >-
            Activer la personnalisation en marque blanche pour les sessions
            créées avec ce workflow.
        is_desktop_allowed:
          type: boolean
          description: >-
            Autoriser l'exécution du flux de vérification sur les navigateurs
            sur ordinateur.
        max_retry_attempts:
          type: integer
          minimum: 0
          maximum: 10
          description: >-
            Nombre maximal de tentatives de réessai autorisées après une
            vérification refusée. `0` bloque l'utilisateur après le premier
            refus.
        retry_window_days:
          type: integer
          minimum: 1
          maximum: 365
          nullable: true
          description: >-
            Fenêtre glissante en jours utilisée pour compter les nouvelles
            tentatives. `null` applique une limite globale depuis le début.
        face_liveness_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            Nombre maximal de soumissions de détection du vivant par session.
            Cette valeur est également copiée dans les nœuds de workflow de
            détection du vivant et d'estimation de l'âge générés, sauf si la
            configuration au niveau de la fonctionnalité la remplace.
        face_match_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            Nombre maximal de soumissions de correspondance faciale par session.
            Cette valeur est également copiée dans les nœuds de workflow de
            correspondance faciale générés, sauf si la configuration au niveau
            de la fonctionnalité la remplace.
        session_expiration_time:
          type: integer
          minimum: 3600
          maximum: 2419200
          description: >-
            Secondes avant l'expiration d'une session inachevée. Minimum 1 heure
            (3600), maximum 4 semaines (2419200).
    WorkflowDetail:
      type: object
      description: >-
        Les champs ci-dessous sont typés ; l'objet contient également toutes les
        autres colonnes de la configuration du workflow (activation des
        fonctionnalités, seuils, actions d'avertissement, documents autorisés,
        rappels) sous forme de propriétés supplémentaires. Les champs qui ne
        s'appliquent pas au `workflow_type` sont `null`.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            Identifiant par version (`settings_uuid`). Chaque version d'un
            workflow possède le sien.
        workflow_id:
          type: string
          format: uuid
          description: >-
            Identifiant stable partagé par toutes les versions du workflow. Les
            sessions créées avec celui-ci utilisent la dernière version publiée.
        workflow_label:
          type: string
          description: Nom d'affichage du workflow.
        workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: >-
            Modèle de workflow. `null` pour les workflows sous forme de graphe
            créés sans modèle.
        is_default:
          type: boolean
          description: Indique s'il s'agit du workflow par défaut de l'application.
        is_archived:
          type: boolean
          description: >-
            Les workflows archivés ne peuvent pas démarrer de nouvelles
            sessions.
        version:
          type: integer
          description: Numéro de version au sein du workflow.
        status:
          type: string
          enum:
            - draft
            - published
          description: "Les versions de brouillon sont modifiables\_; les versions publiées sont immuables et utilisées pour les nouvelles sessions."
        published_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date et heure auxquelles cette version a été publiée. `null` pour
            les brouillons.
        is_simple_workflow:
          type: boolean
          description: >-
            `true` lorsque le workflow ne comporte aucun `workflow_graph`
            personnalisé.
        is_editable:
          type: boolean
          description: '`true` uniquement pour les versions `draft`.'
        workflow_url:
          type: string
          format: uri
          description: URL publique qui démarre une session avec ce workflow.
        workflow_graph:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Structure en graphe du workflow (nœuds et arêtes). `null` pour les
            workflows simples.
        features:
          type: string
          description: >-
            Fonctionnalités activées jointes par `" + "`, par exemple `"OCR +
            LIVENESS"`.
        total_price:
          type: number
          nullable: true
          description: >-
            Prix par session ; pour les workflows de graphe, le parcours le plus
            cher.
        min_price:
          type: number
          nullable: true
          description: Prix du parcours le moins cher dans le workflow.
        max_price:
          type: number
          nullable: true
          description: Prix du parcours le plus cher dans le workflow.
        special_add_on_prices:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Prix des modules complémentaires spécifiques à l'organisation, ou
            `null` si aucun n'est défini.
        max_retry_attempts:
          type: integer
          description: Réessais autorisés après une vérification refusée.
        retry_window_days:
          type: integer
          nullable: true
          description: >-
            Nombre de jours pendant lesquels les nouvelles tentatives sont
            autorisées.
        session_expiration_time:
          type: integer
          description: Secondes avant l'expiration d'une session inachevée.
        questionnaire:
          type: object
          nullable: true
          additionalProperties: true
          description: Le questionnaire associé au workflow, ou `null`.
        kyb_role_settings:
          type: array
          items:
            type: object
            additionalProperties: true
          description: Paramètres de vérification par rôle pour les personnes clés KYB.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        signature_availability:
          type: object
          description: >-
            Quels niveaux de Signature électronique peuvent signer actuellement.
            Vérifiez-le avant de définir `signature_level`. Renvoyé sur les
            workflows `kyc`, `kyb` et de graphe.
          properties:
            simple:
              type: boolean
              description: Simple est toujours disponible.
            aes:
              type: boolean
              description: >-
                Indique si Advanced (AES) peut signer actuellement. Tant que
                cette valeur est `false`, l'enregistrement d'une nouvelle étape
                avec `signature_level: "aes"` est refusé avec
                `aes_not_available`.
            qes:
              type: boolean
              description: >-
                Indique si la signature qualifiée (QES) peut signer
                actuellement. La valeur est `false` jusqu'à ce qu'un fournisseur
                qualifié soit connecté.
        is_bank_verification_enabled:
          type: boolean
          description: >-
            Indique si un workflow KYC ou KYB simple exécute la vérification
            bancaire. Elle s'exécute après les étapes de contact (et la
            vérification de localisation) et avant la validation en base de
            données, le filtrage AML et l'analyse IP. La vérification bancaire
            n'est pas encore disponible pour tous : son activation est refusée
            partout où elle n'est pas activée.
        bank_verification_config:
          type: object
          additionalProperties: true
          description: >-
            Paramètres de vérification bancaire d'un workflow simple, avec les
            mêmes clés qu'un nœud `BANK_VERIFICATION` (par exemple
            `bank_countries` et `bank_method_order`). Les clés inconnues sont
            ignorées. Chaque clé est optionnelle et une clé absente conserve sa
            valeur par défaut, `{}` désigne donc toutes les valeurs par défaut.
            Voir [Paramètres de vérification
            bancaire](/fr/management-api/workflows/feature-configs#vérification-bancaire).
          example: {}
        is_geolocation_enabled:
          type: boolean
          description: >-
            Indique si un workflow KYC simple exécute la vérification de
            localisation. Elle s'exécute après les étapes de contact et avant la
            vérification bancaire et la validation en base de données. Les
            workflows d'entreprise (KYB) ne peuvent pas l'exécuter.
        geolocation_config:
          type: object
          additionalProperties: true
          description: >-
            Paramètres de vérification de localisation d'un workflow simple,
            avec les mêmes clés qu'un nœud `GEOLOCATION` (par exemple
            `is_geolocation_geofencing_enabled` et `geolocation_max_attempts`).
            Les clés inconnues sont ignorées. Chaque clé est facultative et une
            clé absente conserve sa valeur par défaut, `{}` correspond donc à
            toutes les valeurs par défaut.
          example: {}
      additionalProperties: true
    SimpleWorkflowFeature:
      type: object
      required:
        - feature
      properties:
        feature:
          type: string
          description: >-
            Fonctionnalité à exécuter. Utilisez les valeurs en majuscules
            indiquées ici.
          enum:
            - OCR
            - NFC
            - LIVENESS
            - FACE_MATCH
            - PROOF_OF_ADDRESS
            - QUESTIONNAIRE
            - DOCUMENT_AI
            - PHONE_VERIFICATION
            - EMAIL_VERIFICATION
            - DATABASE_VALIDATION
            - AML
            - IP_ANALYSIS
            - AGE_ESTIMATION
            - KYB_REGISTRY
            - KYB_DOCUMENTS
            - KYB_KEY_PEOPLE
            - SIGNATURE
        config:
          type: object
          description: >-
            Paramètres spécifiques à la fonctionnalité. Pour `QUESTIONNAIRE`,
            incluez `questionnaire_uuid` avec le `questionnaire_id` renvoyé par
            l'endpoint de création de questionnaire. Pour `SIGNATURE`, un
            workflow mis en production nécessite un document à signer :
            définissez `signature_documents_source` sur `session` ou `both` afin
            que chaque session puisse fournir le sien, ou envoyez `status:
            "draft"` et ajoutez les documents avant de publier.
            `signature_level: "aes"` est refusé avec `aes_not_available` tant
            que `signature_availability.aes` est `false` sur le workflow. Pour
            `OCR`, `methods` sélectionne les méthodes de vérification d'identité
            que chaque pays peut utiliser (capture de document, recherche sans
            document auprès d'une source gouvernementale ou d'une autre source
            faisant autorité, et portefeuilles d'identité numérique) ;
            omettez-le et chaque pays est configuré en capture de document
            uniquement. Pour `SIGNATURE`, consultez [Paramètres de signature
            électronique](/fr/management-api/workflows/feature-configs#signature-électronique)
            : `signature_level` accepte `simple` (par défaut, sans vérification
            d'identité requise ni e-mail ni téléphone requis) et `aes` pour le
            moment, et les documents de workflow ainsi que leurs champs sont
            gérés dans la console, donc via l'API, envoyez les documents et
            champs par session avec `signature_documents_source: "session"`.
          additionalProperties: true
        label:
          type: string
          description: Libellé interne optionnel pour ce nœud de workflow.
  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.