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

# Actualitzar flux de treball API: edita el flux KYC

> Actualitza per API un flux KYC o KYB de Didit: canvia el nom, reordena funcionalitats o ajusta llindars. Pagament per crida, sense contractes.



Prompt de l'API per actualitzar el flux de treball
        Copia el prompt al porta-retalls



      
      

\<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>



      
      

Enganxa a

Utilitza `PATCH` per a les actualitzacions parcials. Per canviar el nom d'un flux de treball, envia només `workflow_label`.```json theme={null}
{
  "workflow_label": "Premium KYC"
}
```Per canviar les comprovacions del flux de treball, envia la matriu `features` completa que vols. Això substitueix l'ordre i la configuració de les funcionalitats anteriors.```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 manté els fluxos de treball senzills: un camí lineal i un únic pas d'estat final. No s'accepten bifurcacions, nodes d'acció ni nodes de webhook.## Referència de configuració de les funcionalitatsQuan envies `features` en un `PATCH`, la matriu substitueix l'ordre i la configuració de les funcionalitats anteriors. Torna a incloure tota la configuració obligatòria.L'objecte `config` exacte depèn de la funcionalitat. Consulta la llista completa de camps, els valors per defecte, la configuració obligatòria, els intervals de valors i els exemples a [Configuracions de les funcionalitats del flux de treball](https://docs.didit.me/ca/management-api/workflows/feature-configs.md).Per a `OCR`, omet `config.documents_allowed`, envia `null` o envia `{}` per permetre tots els tipus de document compatibles. Inclou-lo només si vols restringir el flux de treball a països o tipus de document concrets. Per a `QUESTIONNAIRE`, `config.questionnaire_uuid` és obligatori.## Actualització de la configuració del flux de treballPots actualitzar la configuració a nivell de sessió sense tocar la llista de funcionalitats. Envia només els camps que vols canviar.| Camp | Tipus | Descripció |
| - | - | - |
| `is_white_label_enabled` | booleà | Activa la personalització en marca blanca per a les sessions creades amb aquest flux de treball. |
| `is_desktop_allowed` | booleà | Permet que el flux de verificació s'executi en navegadors d'escriptori. |
| `max_retry_attempts` | enter (0–10) | Nombre màxim de reintents permesos després d'una verificació rebutjada. `0` bloqueja l'usuari després del primer rebuig. |
| `retry_window_days` | enter (1–365) o `null` | Finestra mòbil, en dies, que s'utilitza per comptar els reintents (`null` = límit permanent). |
| `session_expiration_time` | enter (3600–2419200) | Segons abans que caduqui una sessió no finalitzada. Mínim 1 hora, màxim 4 setmanes. |```json theme={null}
{
  "is_white_label_enabled": true,
  "is_desktop_allowed": true,
  "max_retry_attempts": 5,
  "retry_window_days": 14,
  "session_expiration_time": 86400
}
```Utilitza el `uuid` del flux de treball que retorna l'endpoint de llista, de creació o d'obtenció com a `settings_uuid` en aquesta URL.


## OpenAPI

````yaml ca/openapi-25.json PATCH /v3/workflows/{settings_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/workflows/{settings_uuid}/:
    patch:
      tags:
        - Workflows
      summary: Actualitza el flux de treball
      description: >-
        Actualitza un flux de treball. La gestió de versions depèn del camp
        `status` que enviïs i de l'estat actual de la versió: (1) sense `status`
        en una versió **publicada** → la versió publicada s'actualitza
        directament (mateix `uuid`, mateixa `version`); (2) sense `status` en un
        **esborrany** → l'esborrany s'actualitza i es publica immediatament; (3)
        `status: "published"` en una versió **publicada** → es crea una NOVA
        versió publicada sota el mateix `workflow_id` (nou `uuid`, `version` +
        1) i es retorna, i qualsevol esborrany existent al grup se suprimeix;
        (4) `status: "draft"` manté un esborrany com a esborrany (desat
        automàtic), però es rebutja amb 400 en una versió publicada (`"Cannot
        revert a published version to draft."`). El cos accepta la mateixa
        llista blanca estricta de camps que la creació: les claus desconegudes
        es rebutgen amb 400.
      operationId: update_workflow
      parameters:
        - name: settings_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID per versió del flux de treball que s'actualitzarà.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleWorkflowUpdateRequest'
            examples:
              Replace features:
                summary: Envia l'ordre complet de funcionalitats que vulguis
                value:
                  features:
                    - feature: OCR
                    - feature: AML
              Rename:
                summary: Reanomenar un flux de treball
                value:
                  workflow_label: Premium KYC
              Set as default:
                summary: >-
                  Fes que aquest flux de treball sigui el predeterminat de
                  l'aplicació
                value:
                  is_default: true
              Update config:
                summary: Canviar la configuració de la funcionalitat
                value:
                  features:
                    - feature: OCR
                    - feature: LIVENESS
                      config:
                        face_liveness_method: passive
              Publish a draft:
                summary: Promoure un esborrany a l'estat de publicat
                value:
                  status: published
      responses:
        '200':
          description: >-
            Flux de treball actualitzat. El cos és la configuració COMPLETA de
            la versió resultant (la mateixa estructura `VerificationSettings` en
            brut que `GET /v3/workflows/{settings_uuid}/`). Quan l'actualització
            crea una nova versió (s'ha enviat `status: "published"` en una fila
            publicada), l'`uuid` i la `version` retornats difereixen dels que
            has modificat; utilitza l'`uuid` retornat per a les crides
            posteriors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          description: >-
            Error de validació — una clau de primer nivell fora de la llista
            blanca acceptada, una funcionalitat desconeguda, una ordenació no
            vàlida, un llindar fora de rang, referència a un qüestionari
            inexistent, una funcionalitat `SIGNATURE` que es posaria en
            producció sense cap document per signar, una nova funcionalitat
            `SIGNATURE` a `signature_level: "aes"` mentre l'Avançada (AES) no
            està disponible (`aes_not_available`, consulta
            `signature_availability` al flux de treball; un pas que ja
            emmagatzema `aes` el conserva), o `status: "draft"` enviat per a una
            versió publicada (`"Cannot revert a published version to draft."`).
            El cos de la resposta és un error de validació de DRF indexat pel
            nom del camp.
        '403':
          description: Falta la clau d'API o no és vàlida.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            No existeix cap flux de treball amb aquest `settings_uuid` per a
            l'aplicació autenticada.
        '415':
          description: 'Tipus de mitjà no admès. Defineix `Content-Type: application/json`.'
        '429':
          description: >-
            S'ha superat el límit de freqüència. Reintenta amb un retrocés
            exponencial.
        '500':
          description: Error inesperat del servidor. Es pot reintentar amb seguretat.
      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: >-
        Actualitza les metadades del flux de treball o substitueix la llista
        lineal completa de funcionalitats. Llista blanca de camps ESTRICTA:
        qualsevol clau no indicada aquí es rebutja amb un 400.
      properties:
        workflow_label:
          type: string
          maxLength: 50
          description: Nom visible per al flux de treball (màxim 50 caràcters).
        is_default:
          type: boolean
          description: >-
            Estableix aquest flux de treball com a predeterminat per a les noves
            sessions.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            Controla el versionat. Omet-ho per actualitzar la versió actual
            directament (els esborranys es publiquen automàticament).
            `published` en una versió ja publicada crea i retorna una NOVA
            versió. `draft` només és vàlid mentre la versió encara sigui un
            esborrany.
        features:
          type: array
          minItems: 1
          description: >-
            Si es proporciona, això substitueix l'ordre i la configuració
            completes de les funcionalitats.
          items:
            $ref: '#/components/schemas/SimpleWorkflowFeature'
        is_white_label_enabled:
          type: boolean
          description: >-
            Habilita la personalització de marca blanca per a les sessions
            creades amb aquest flux de treball.
        is_desktop_allowed:
          type: boolean
          description: >-
            Permet que el flux de verificació s'executi en navegadors
            d'escriptori.
        max_retry_attempts:
          type: integer
          minimum: 0
          maximum: 10
          description: >-
            Nombre màxim d'intents de reintent permesos després d'una
            verificació rebutjada. `0` bloqueja l'usuari després del primer
            rebuig.
        retry_window_days:
          type: integer
          minimum: 1
          maximum: 365
          nullable: true
          description: >-
            Finestra mòbil en dies utilitzada per comptar els reintents. `null`
            aplica un límit per a tot l'historial.
        face_liveness_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            Nombre màxim d'enviaments de prova de vida per sessió. Aquest valor
            també es copia als nodes generats del flux de treball de prova de
            vida i estimació d'edat tret que la configuració a nivell de
            funcionalitat el sobreescrigui.
        face_match_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            Nombre màxim d'enviaments de coincidència facial per sessió. Aquest
            valor també es copia als nodes generats del flux de treball de
            coincidència facial tret que la configuració a nivell de
            funcionalitat el sobreescrigui.
        session_expiration_time:
          type: integer
          minimum: 3600
          maximum: 2419200
          description: >-
            Segons abans que caduqui una sessió no finalitzada. Mínim 1 hora
            (3600), màxim 4 setmanes (2419200).
    WorkflowDetail:
      type: object
      description: >-
        Els camps següents estan tipats; l'objecte també conté la resta de
        columnes de la configuració del flux de treball (commutadors de
        funcionalitats, llindars, accions d'advertència, documents permesos,
        callbacks) com a propietats addicionals. Els camps que no s'apliquen al
        `workflow_type` són `null`.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            Identificador per versió (`settings_uuid`). Cada versió d'un flux de
            treball té el seu propi identificador.
        workflow_id:
          type: string
          format: uuid
          description: >-
            Identificador estable compartit per totes les versions del flux de
            treball. Les sessions creades amb aquest identificador utilitzen
            l'última versió publicada.
        workflow_label:
          type: string
          description: Nom visible del flux de treball.
        workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: >-
            Plantilla de flux de treball. `null` per a fluxos de treball basats
            en grafs creats sense plantilla.
        is_default:
          type: boolean
          description: Si aquest és el flux de treball per defecte de l'aplicació.
        is_archived:
          type: boolean
          description: Els fluxos de treball arxivats no poden iniciar noves sessions.
        version:
          type: integer
          description: Número de versió dins del flux de treball.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            Les versions en esborrany són editables; les versions publicades són
            immutables i s'utilitzen per a noves sessions.
        published_at:
          type: string
          format: date-time
          nullable: true
          description: Quan es va publicar aquesta versió. `null` per a esborranys.
        is_simple_workflow:
          type: boolean
          description: >-
            `true` quan el flux de treball no té cap `workflow_graph`
            personalitzat.
        is_editable:
          type: boolean
          description: '`true` només per a versions `draft`.'
        workflow_url:
          type: string
          format: uri
          description: URL pública que inicia una sessió amb aquest flux de treball.
        workflow_graph:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Estructura del graf del flux de treball (nodes i arestes). `null`
            per a fluxos de treball simples.
        features:
          type: string
          description: >-
            Funcionalitats habilitades unides amb `" + "`, per exemple `"OCR +
            LIVENESS"`.
        total_price:
          type: number
          nullable: true
          description: >-
            Preu per sessió; per als fluxos de treball amb graf, el camí més
            car.
        min_price:
          type: number
          nullable: true
          description: Preu del camí més econòmic a través del flux de treball.
        max_price:
          type: number
          nullable: true
          description: Preu del camí més car a través del flux de treball.
        special_add_on_prices:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Preus de complements específics de l'organització, o `null` si no
            n'hi ha cap de definit.
        max_retry_attempts:
          type: integer
          description: Reintents permesos després d'una verificació rebutjada.
        retry_window_days:
          type: integer
          nullable: true
          description: Dies durant els quals es permeten els reintents.
        session_expiration_time:
          type: integer
          description: Segons abans que caduqui una sessió no finalitzada.
        questionnaire:
          type: object
          nullable: true
          additionalProperties: true
          description: El qüestionari adjunt al flux de treball, o `null`.
        kyb_role_settings:
          type: array
          items:
            type: object
            additionalProperties: true
          description: Configuració de verificació per rol per a persones clau de KYB.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        signature_availability:
          type: object
          description: >-
            Quins nivells de signatura electrònica poden signar ara mateix.
            Comprova-ho abans d'establir `signature_level`. Es retorna en fluxos
            de treball `kyc`, `kyb` i de graf.
          properties:
            simple:
              type: boolean
              description: El pla Simple sempre està disponible.
            aes:
              type: boolean
              description: >-
                Indica si es pot signar amb signatura avançada (AES) en aquest
                moment. Mentre sigui `false`, desar un nou pas amb
                `signature_level: "aes"` es rebutjarà amb `aes_not_available`.
            qes:
              type: boolean
              description: >-
                Indica si es pot signar amb signatura qualificada (QES) en
                aquest moment. És `false` fins que es connecti un proveïdor
                qualificat.
        is_bank_verification_enabled:
          type: boolean
          description: >-
            Indica si un flux de treball senzill de KYC o KYB executa la
            verificació bancària. S'executa després dels passos de contacte (i
            la verificació d'ubicació) i abans de la validació en bases de
            dades, l'anàlisi AML i l'anàlisi d'IP. La verificació bancària
            encara no està disponible de manera general: activar-la es rebutjarà
            allà on no estigui habilitada.
        bank_verification_config:
          type: object
          additionalProperties: true
          description: >-
            Configuració de verificació bancària d'un flux de treball simple,
            amb les mateixes claus que accepta un node `BANK_VERIFICATION` (per
            exemple `bank_countries` i `bank_method_order`). Les claus
            desconegudes es descarten. Cada clau és opcional i una clau absent
            manté el seu valor per defecte, de manera que `{}` indica tots els
            valors per defecte. Consulta [Configuració de verificació
            bancària](/ca/management-api/workflows/feature-configs#verificació-bancària).
          example: {}
        is_geolocation_enabled:
          type: boolean
          description: >-
            Indica si un flux de treball senzill de KYC executa la verificació
            d'ubicació. S'executa després dels passos de contacte i abans de la
            verificació bancària i la validació en bases de dades. Els fluxos de
            treball d'empreses (KYB) no la poden executar.
        geolocation_config:
          type: object
          additionalProperties: true
          description: >-
            Configuració de verificació d'ubicació d'un flux de treball simple,
            amb les mateixes claus que accepta un node `GEOLOCATION` (per
            exemple, `is_geolocation_geofencing_enabled` i
            `geolocation_max_attempts`). S'ometen les claus desconegudes. Totes
            les claus són opcionals i una clau absent manté el seu valor per
            defecte, de manera que `{}` implica tots els valors per defecte.
          example: {}
      additionalProperties: true
    SimpleWorkflowFeature:
      type: object
      required:
        - feature
      properties:
        feature:
          type: string
          description: >-
            Funcionalitat a executar. Utilitza els valors en majúscules que es
            mostren aquí.
          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: >-
            Configuració específica de la funcionalitat. Per a `QUESTIONNAIRE`,
            inclou `questionnaire_uuid` amb el `questionnaire_id` retornat per
            l'endpoint de creació de qüestionaris. Per a `SIGNATURE`, un flux de
            treball que passi a producció necessita un document per signar:
            defineix `signature_documents_source` com a `session` o `both`
            perquè cada sessió pugui aportar el seu propi, o envia `status:
            "draft"` i afegeix els documents abans de publicar.
            `signature_level: "aes"` es rebutja amb `aes_not_available` mentre
            `signature_availability.aes` sigui `false` al flux de treball. Per a
            `OCR`, `methods` selecciona quins mètodes de Verificació d'identitat
            pot utilitzar cada país (captura de documents, consulta sense
            document en una font governamental o una altra font oficial, i
            carteres d'identitat digital); omet-lo i, per a tots els països,
            només s'utilitzarà la captura de documents. Per a `SIGNATURE`,
            consulta [Configuració de signatura
            electrònica](/ca/management-api/workflows/feature-configs#e-signature):
            de moment `signature_level` accepta `simple` (el valor per defecte,
            sense necessitat de verificació d'identitat, correu electrònic o
            telèfon) i `aes`, i els documents del flux de treball i els seus
            camps es gestionen a la consola, de manera que a través de l'API
            s'envien documents i camps per sessió amb
            `signature_documents_source: "session"`.
          additionalProperties: true
        label:
          type: string
          description: Etiqueta interna opcional per a aquest node del flux de treball.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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