> ## 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 la configuració del webhook: API

> Canvia el webhook de l'aplicació a Didit, rota el secret, defineix la retenció de dades i plantilles biomètriques i registra hosts de retorn.



Actualitza la configuració del webhook: prompt de l'API
        Copia el prompt al porta-retalls



      
      

\<pre>

\`Update my Didit application's webhook configuration through the Management API.

Endpoint:
PATCH https://verification.didit.me/v3/webhook/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs webhooks: write.

Goal:
\- Change application-level settings: the legacy webhook URL and version, the application secret, the data-retention and biometric-template retention policy, the Digital ID wallet return hosts, or the allowed origins of the hosted flow.

Behavior:
\- Partial update: send only the fields to change. The response is the full configuration, the same shape as GET /v3/webhook/.
\- webhook_url and webhook_version change the application-level (legacy) webhook only. Didit uses it only while the application has no enabled destination, and only for status.updated and data.updated. It does not create a destination, and the next create, update or delete of a destination replaces webhook_url. To receive webhooks, create a destination with POST /v3/webhook/destinations/ instead.
\- rotate_secret_key: true replaces the application-level secret_shared_key immediately. Destination secrets are not changed. Each call generates a new secret, so it is not idempotent.
\- data_retention_months (1 to 120, or null for no automatic deletion): user verification sessions older than this many 30-day months are deleted automatically. Business verification sessions are not affected.
\- face_retention_policy (delete_with_session or retain_until_user_deleted) and face_retention_days (1 to 3650). retain_until_user_deleted needs face_retention_days in the same request or already set.
\- allowed_return_hosts replaces the registered list: up to 20 bare hostnames such as app.example.com (no scheme, port, path or wildcard). Send [] to clear it.
\- allowed_domains replaces the list of web origins (for example https://app.example.com; http only for localhost) that the hosted verification flow may be embedded in and may send the user back to with a session callback: up to 50 entries of at most 300 characters. Send [] to remove the restriction. Server-to-server calls are not affected. An invalid entry returns 400 on allowed_domains.
\- Manage destinations with the /v3/webhook/destinations/ endpoints, not here. Never send an endpoints field to this call: it is not part of this contract.

Example call:
curl -X PATCH "https://verification.didit.me/v3/webhook/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"face_retention_policy": "retain_until_user_deleted", "face_retention_days": 365}'

What to read from the response:
\- The updated fields, and secret_shared_key when you rotated it: store the new value before you discard the response.

Failure modes:
\- 400: field errors, each field mapped to a list of messages, for example { "face_retention_days": ["A finite retention duration is required when face retention is enabled."] }. Nothing is changed.
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." } or { "detail": "This API key has no write access to webhooks." }
\- 429: more than 300 write requests per minute with this key; wait for Retry-After.

Side effects:
\- Rotating the secret changes how deliveries to the legacy webhook_url are signed from then on, retries included.
\- A data_retention_months change applies to existing sessions too: every session older than the new window is deleted automatically, and that deletion is irreversible.
\- A face_retention_policy change applies to session deletions from then on; it creates or purges no existing biometric template.

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

\</pre>



      
      

Enganxa a

> [!NOTE]
>
> `rotate_secret_key` rota només el secret de nivell d'aplicació, que signa els lliuraments enviats a l'antic `webhook_url`. Cada [destinació del webhook](https://docs.didit.me/ca/management-api/webhook/list-destinations.md) signa amb el seu propi `secret_shared_key`, que aquesta crida no canvia.Els camps de retenció són la mateixa política que definiu a **Business Console → App Settings → Data retention**. Llegiu [Conservació de dades](https://docs.didit.me/ca/console/data-retention.md) abans de canviar-los, en particular la [conservació de la plantilla biomètrica](https://docs.didit.me/ca/console/data-retention.md#conservació-de-plantilles-biomètriques). `allowed_return_hosts` es descriu a [Registra la teva destinació de retorn](https://docs.didit.me/ca/standalone-apis/digital-id-wallets.md#registra-la-teva-destinació-de-retorn).`biometric_consent_mode` (`auto`, `always` o `never`) estableix quan el flux de verificació demana consentiment biomètric explícit abans de la captura facial. Consulta [Consentiment biomètric](https://docs.didit.me/ca/getting-started/biometric-consent.md).Per llegir primer els valors actuals, crida [Obté la configuració del webhook](https://docs.didit.me/ca/management-api/webhook/get-config.md).


## OpenAPI

````yaml ca/openapi-25.json PATCH /v3/webhook/
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/webhook/:
    patch:
      tags:
        - Webhook
      summary: Actualitza la configuració del webhook
      description: >-
        Actualitza parcialment la configuració a nivell d'aplicació: l'URL, la
        versió i el secret del webhook heretat, la política de conservació de
        dades i plantilles biomètriques, i els amfitrions de retorn de la
        cartera de Digital ID. Envia només els camps que calgui canviar; la
        resposta és la configuració completa, amb la mateixa estructura que `GET
        /v3/webhook/`. Les destinacions no es gestionen aquí: crea-les,
        actualitza-les i suprimeix-les amb els endpoints de
        `/v3/webhook/destinations/`, i no enviïs un camp `endpoints` a aquest
        endpoint. Un canvi a `data_retention_months` també s'aplica a les
        sessions existents, i les sessions que elimini no es podran restaurar;
        llegeix primer [Conservació de
        dades](https://docs.didit.me/ca/console/data-retention). Una clau d'API
        amb àmbit restringit necessita `webhooks: write`.
      operationId: update_webhook_config
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                Envia només els camps que vulguis canviar. Les destinacions no
                es gestionen aquí.
              properties:
                webhook_url:
                  type: string
                  format: uri
                  nullable: true
                  maxLength: 2000
                  description: >-
                    URL de webhook antiga a nivell d'aplicació. Didit només la
                    utilitza mentre l'aplicació no tingui cap destinació
                    activada, i aleshores només per a `status.updated` i
                    `data.updated`. No crea cap destinació, i la propera
                    creació, actualització o eliminació d'una destinació la
                    substituirà. Per rebre webhooks, crea una destinació amb
                    `POST /v3/webhook/destinations/`.
                webhook_version:
                  type: string
                  enum:
                    - v1
                    - v2
                    - v3
                  description: Versió del payload de la `webhook_url` heretada.
                rotate_secret_key:
                  type: boolean
                  default: false
                  description: >-
                    `true` substitueix immediatament la `secret_shared_key` a
                    nivell d'aplicació per un valor nou aleatori; el valor nou
                    es troba a la resposta. Els secrets de les destinacions no
                    es modifiquen. Cada crida amb `true` genera un secret nou,
                    de manera que no és idempotent.
                capture_method:
                  type: string
                  enum:
                    - MOBILE
                    - MOBILE_AND_DESKTOP
                  description: >-
                    Configuració antiga de l'aplicació. El flux de verificació
                    no la llegeix.
                data_retention_months:
                  type: integer
                  nullable: true
                  minimum: 1
                  maximum: 120
                  description: >-
                    Finestra d'eliminació automàtica en mesos (un mes compta com
                    a 30 dies), o `null` per no aplicar eliminació automàtica.
                    Un canvi també s'aplica a les sessions existents: cada
                    sessió de verificació d'usuaris més antiga que la nova
                    finestra s'elimina automàticament, i aquesta eliminació és
                    irreversible.
                face_retention_policy:
                  type: string
                  enum:
                    - delete_with_session
                    - retain_until_user_deleted
                  description: >-
                    Què passa amb l'embedding facial d'una sessió quan se
                    suprimeix la sessió. `retain_until_user_deleted` requereix
                    `face_retention_days` a la mateixa sol·licitud o ja
                    establert prèviament. Un canvi s'aplica a les supressions de
                    sessions a partir d'aquell moment; no crea ni purga cap
                    plantilla biomètrica existent.
                face_retention_days:
                  type: integer
                  nullable: true
                  minimum: 1
                  maximum: 3650
                  description: >-
                    Període de conservació de dades, en dies, de les plantilles
                    biomètriques sota `retain_until_user_deleted`.
                biometric_consent_mode:
                  type: string
                  enum:
                    - auto
                    - always
                    - never
                  description: >-
                    Quan el flux allotjat i els SDK natius demanen a la persona
                    el consentiment biomètric explícit abans d'una captura
                    facial. `auto` (per defecte) només el demana quan s'aplica
                    un activador: un estat declarat, la IP de la persona o
                    l'emissor del document d'identitat es troba a Illinois,
                    Texas o Colorado, o la persona sembla ser als EUA sense un
                    estat conegut. `always` el demana a cada persona el flux de
                    treball de la qual captura una cara. `never` no mostra mai
                    el pas, i recopiles el consentiment pel teu compte abans de
                    la selfie. Cada canvi es registra al registre d'auditoria.
                    Consulta [Consentiment
                    biomètric](https://docs.didit.me/ca/getting-started/biometric-consent).
                allowed_return_hosts:
                  type: array
                  maxItems: 20
                  description: >-
                    Substitueix tota la llista de noms d'amfitrió de retorn de
                    carteres de Digital ID. Només noms d'amfitrió simples, com
                    ara `shop.example.com`: sense esquema, port, ruta ni
                    caràcters comodí. Els valors es converteixen a minúscules i
                    s'eliminen els duplicats. Envia `[]` per buidar la llista.
                  items:
                    type: string
                    maxLength: 253
                allowed_domains:
                  type: array
                  maxItems: 50
                  items:
                    type: string
                    maxLength: 300
                  description: >-
                    Substitueix tota la llista d'orígens permesos. Orígens (per
                    exemple `https://app.example.com`; `http` només per a
                    `localhost`) en què es pot incrustar el flux de verificació
                    allotjat i als quals es pot redirigir l'usuari amb un
                    callback de sessió. Les crides de servidor a servidor no es
                    veuen afectades. Una llista buida significa que no hi ha cap
                    restricció. Didit emmagatzema cada origen en minúscules
                    sense un port per defecte. Una entrada no vàlida falla amb
                    `400` a `allowed_domains`. Envia `[]` per eliminar la
                    restricció.
                  example:
                    - https://app.example.com
            examples:
              Enable biometric template retention:
                value:
                  face_retention_policy: retain_until_user_deleted
                  face_retention_days: 365
                  biometric_consent_mode: auto
              Rotate the legacy secret:
                value:
                  rotate_secret_key: true
              Set data retention:
                value:
                  data_retention_months: 24
              Register return hosts:
                value:
                  allowed_return_hosts:
                    - shop.example.com
                    - app.example.com
      responses:
        '200':
          description: >-
            La configuració completa després de l'actualització, amb la mateixa
            estructura que `GET /v3/webhook/`. Si has rotat el secret, desa el
            nou `secret_shared_key` abans de descartar la resposta.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfig'
              examples:
                Retention enabled:
                  value:
                    webhook_url: https://yourapp.com/webhooks/didit
                    webhook_version: v3
                    secret_shared_key: dGhpcy1pcy10aGUtYXBwLWxldmVsLXNlY3JldC0wMDA
                    capture_method: MOBILE
                    data_retention_months: 24
                    face_retention_policy: retain_until_user_deleted
                    face_retention_days: 365
                    biometric_consent_mode: auto
                    available_events:
                      - value: status.updated
                        label: Session status updated
                      - value: data.updated
                        label: Session data updated
                      - value: user.status.updated
                        label: User status updated
                      - value: user.data.updated
                        label: User data updated
                      - value: business.status.updated
                        label: Business status updated
                      - value: business.data.updated
                        label: Business data updated
                      - value: activity.created
                        label: Activity created
                      - value: transaction.created
                        label: Transaction created
                      - value: transaction.status.updated
                        label: Transaction status updated
                      - value: travel_rule.status.updated
                        label: Travel Rule Status Updated
                      - value: workflow.compliance_changed
                        label: Workflow Compliance Changed
                    allowed_return_hosts:
                      - shop.example.com
                    endpoints:
                      - uuid: 11111111-2222-3333-4444-555555555555
                        label: Production session webhooks
                        url: https://yourapp.com/webhooks/didit
                        enabled: true
                        webhook_version: v3
                        secret_shared_key: dGhpcy1pcy1hbi1leGFtcGxlLXNlY3JldC0wMDAwMDA
                        subscribed_events:
                          - status.updated
                          - data.updated
                        created_at: '2026-01-04T08:00:00.000000Z'
                        updated_at: '2026-04-22T14:09:11.523671Z'
        '400':
          description: >-
            La validació ha fallat: cada camp no vàlid s'associa a una llista de
            missatges i no es modifica res. Un cos que no sigui JSON vàlid
            retorna `{"detail": "JSON parse error - ..."}`.
          content:
            application/json:
              schema:
                type: object
                description: Cada camp no vàlid associat a una llista de missatges.
                additionalProperties:
                  type: array
                  items:
                    type: string
              examples:
                Retention days missing:
                  value:
                    face_retention_days:
                      - >-
                        A finite retention duration is required when face
                        retention is enabled.
                    biometric_consent_mode: auto
                Retention window out of range:
                  value:
                    data_retention_months:
                      - Ensure this value is less than or equal to 120.
                Invalid return host:
                  value:
                    allowed_return_hosts:
                      - >-
                        'https://shop.example.com' is not a hostname. Register
                        the bare host (e.g. shop.example.com): no scheme, port,
                        path or wildcard.
                Invalid choice:
                  value:
                    face_retention_policy:
                      - '"forever" is not a valid choice.'
        '401':
          description: >-
            La clau d'API ha caducat: es va crear amb una data de caducitat que
            ja ha passat. Una clau incorrecta o revocada també rep `401`; si
            falta la clau, es rep `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La sol·licitud no està permesa. Si falta la `x-api-key`, o bé és
            invàlida o revocada, es rep `You do not have permission to perform
            this action.` Una clau amb àmbit que no tingui l'accés que aquest
            endpoint necessita rep un missatge indicant l'accés que falta, i una
            clau utilitzada des de fora de la seva llista d'adreces IP permeses
            rep `This API key can't be used from this IP address.`
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without webhooks write:
                  value:
                    detail: This API key has no write access to webhooks.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            S'ha superat el límit de freqüència: més de 300 sol·licituds
            d'escriptura (POST, PATCH, PUT, DELETE) en la finestra d'un minut
            actual per a aquesta clau d'API. Espera els segons indicats a
            `Retry-After` abans de reintentar.
          headers:
            Retry-After:
              description: Segons que cal esperar abans de reintentar.
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: Sol·licituds permeses a la finestra d'un minut (300).
              schema:
                type: integer
                example: 300
            X-RateLimit-Remaining:
              description: Sol·licituds restants a la finestra actual.
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: Temps Unix (segons) en què es reinicia la finestra actual.
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: Nom del pressupost que s'ha superat.
              schema:
                type: string
                example: generic-write
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Throttled:
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PATCH 'https://verification.didit.me/v3/webhook/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"face_retention_policy": "retain_until_user_deleted", "face_retention_days": 365}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.webhooks.update_config(
                face_retention_policy="retain_until_user_deleted",
                face_retention_days=365,
                biometric_consent_mode="auto",
            )
            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.webhooks.updateConfig({
              face_retention_policy: "retain_until_user_deleted",
              face_retention_days: 365,
              biometric_consent_mode: "auto",
            });
            console.log(result);
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.WebhooksUpdateConfigParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.webhooks().updateConfig(WebhooksUpdateConfigParams.builder()
                    .faceRetentionPolicy(WebhooksUpdateConfigParams.FaceRetentionPolicy.of("retain_until_user_deleted"))
                    .faceRetentionDays(365L)
                    .biometricConsentMode(WebhooksUpdateConfigParams.BiometricConsentMode.of("auto"))
                    .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->webhooks->updateConfig([
                'face_retention_policy' => 'retain_until_user_deleted',
                'face_retention_days' => 365,
                'biometric_consent_mode' => 'auto',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.webhooks.update_config(
              face_retention_policy: "retain_until_user_deleted",
              face_retention_days: 365,
              biometric_consent_mode: "auto"
            )
            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.Webhooks.UpdateConfigAsync(new
            WebhooksUpdateConfigParams

            {
                FaceRetentionPolicy = new WebhooksUpdateConfigParamsFaceRetentionPolicy("retain_until_user_deleted"),
                FaceRetentionDays = 365,
                BiometricConsentMode = new WebhooksUpdateConfigParamsBiometricConsentMode("auto"),
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WebhookConfig:
      type: object
      description: >-
        Configuració de webhook a nivell d'aplicació, política de conservació i
        amfitrions de retorn de la cartera de Digital ID, amb totes les
        destinacions de webhook.
      required:
        - webhook_url
        - webhook_version
        - secret_shared_key
        - capture_method
        - data_retention_months
        - face_retention_policy
        - face_retention_days
        - available_events
        - allowed_return_hosts
        - endpoints
      properties:
        webhook_url:
          type: string
          format: uri
          nullable: true
          description: >-
            URL de webhook a nivell d'aplicació (heretada). Didit només hi fa
            enviaments mentre l'aplicació no tingui cap destinació activada, i
            en aquest cas només envia `status.updated` i `data.updated`. Cada
            creació, actualització o eliminació d'una destinació l'estableix a
            la URL de la destinació activada més antiga, o a `null` si no n'hi
            ha cap d'activada.
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: >-
            Versió del payload de la `webhook_url` heretada. Cada destinació té
            la seva pròpia `webhook_version`.
        secret_shared_key:
          type: string
          description: >-
            Secret de signatura a nivell d'aplicació (token de 43 caràcters
            segur per a URL). Només signa els lliuraments a la `webhook_url`
            heretada; cada destinació signa amb la seva pròpia
            `secret_shared_key`. Els clients que cridin amb clau d'API sempre el
            reben complet; els usuaris de la consola sense `read:webhooks` reben
            una cadena buida.
        capture_method:
          type: string
          enum:
            - MOBILE
            - MOBILE_AND_DESKTOP
          description: >-
            Configuració antiga de l'aplicació. El flux de verificació no la
            llegeix: les opcions de captura es configuren per flux de treball.
        data_retention_months:
          type: integer
          nullable: true
          minimum: 1
          maximum: 120
          description: >-
            Finestra d'eliminació automàtica. Les sessions de verificació
            d'usuaris creades fa més d'aquest nombre de mesos (un mes compta com
            a 30 dies) s'eliminen automàticament, i aquesta eliminació és
            irreversible. `null` significa que les sessions no s'eliminen mai
            automàticament. Consulta [Conservació de
            dades](https://docs.didit.me/ca/console/data-retention).
        face_retention_policy:
          type: string
          enum:
            - delete_with_session
            - retain_until_user_deleted
          description: >-
            Què passa amb l'embedding facial d'una sessió quan se suprimeix la
            sessió. `delete_with_session` (per defecte) el suprimeix amb la
            sessió. `retain_until_user_deleted` és la [conservació de la
            plantilla
            biomètrica](https://docs.didit.me/ca/console/data-retention#conservació-de-plantilles-biomètriques)
            opcional: una plantilla biomètrica sense imatges vinculada a
            l'usuari es gestiona per separat fins que finalitza el seu període
            de conservació, se suprimeix l'usuari o bé la purges.
        face_retention_days:
          type: integer
          nullable: true
          minimum: 1
          maximum: 3650
          description: >-
            Període de conservació de dades, en dies, de les plantilles
            biomètriques sota `retain_until_user_deleted`. Obligatori quan
            s'estableix aquesta política.
        biometric_consent_mode:
          type: string
          enum:
            - auto
            - always
            - never
          description: >-
            Quan el flux allotjat i els SDK natius demanen a la persona el
            consentiment biomètric explícit abans d'una captura facial. `auto`
            (per defecte) només el demana quan s'aplica un activador: un estat
            declarat, la IP de la persona o l'emissor del document d'identitat
            es troba a Illinois, Texas o Colorado, o la persona sembla ser als
            EUA sense un estat conegut. `always` el demana a cada persona el
            flux de treball de la qual captura una cara. `never` no mostra mai
            el pas, i recopiles el consentiment pel teu compte abans de la
            selfie. Cada canvi es registra al registre d'auditoria. Consulta
            [Consentiment
            biomètric](https://docs.didit.me/ca/getting-started/biometric-consent).
        available_events:
          type: array
          description: >-
            Tots els tipus d'esdeveniments als quals es pot subscriure una
            destinació, amb una etiqueta que es mostra.
          items:
            type: object
            required:
              - value
              - label
            properties:
              value:
                $ref: '#/components/schemas/WebhookEvent'
              label:
                type: string
                description: Etiqueta visible, per exemple `Session status updated`.
        allowed_return_hosts:
          type: array
          maxItems: 20
          description: >-
            Noms d'amfitrió (coincidència exacta, només HTTPS) als quals una
            verificació independent de cartera de Digital ID pot retornar
            l'usuari amb el seu `return_url`. El teu domini de marca blanca
            també està permès sempre. Consulta [Registra la teva destinació de
            retorn](https://docs.didit.me/ca/standalone-apis/digital-id-wallets#registra-la-teva-destinació-de-retorn).
          items:
            type: string
            maxLength: 253
        endpoints:
          type: array
          description: >-
            Totes les destinacions del webhook de l'aplicació, de la més antiga
            a la més recent, cadascuna amb el seu secret de signatura. Aquí
            només es poden consultar: gestiona les destinacions amb els
            endpoints `/v3/webhook/destinations/`.
          items:
            $ref: '#/components/schemas/WebhookConfigDestination'
        allowed_domains:
          type: array
          maxItems: 50
          items:
            type: string
            maxLength: 300
          description: >-
            Orígens (per exemple `https://app.example.com`; `http` només per a
            `localhost`) on es pot incrustar el flux de verificació allotjat i
            als quals es pot redirigir l'usuari amb un callback de sessió. Les
            crides de servidor a servidor no es veuen afectades. Una llista
            buida significa sense restriccions. Didit emmagatzema cada origen en
            minúscules sense cap port per defecte. Una entrada no vàlida falla
            amb `400` a `allowed_domains`.
          example:
            - https://app.example.com
    WebhookEvent:
      type: string
      description: >-
        Nom d'esdeveniment de webhook admès. Utilitza aquestes cadenes exactes a
        `subscribed_events`; els valors no admesos es rebutgen.
      enum:
        - status.updated
        - data.updated
        - user.status.updated
        - user.data.updated
        - business.status.updated
        - business.data.updated
        - activity.created
        - transaction.created
        - transaction.status.updated
        - travel_rule.status.updated
        - workflow.compliance_changed
        - transaction_rule_suggestions.created
        - auth.signup
        - auth.login
        - auth.login_failed
        - auth.password_reset_requested
        - auth.password_reset_completed
        - auth.mfa_changed
        - auth.new_device
        - auth.account_locked
        - investigator.report.ready
        - investigator.decision.automated
        - investigator.decision.overridden
        - investigator.decision.contested
        - investigator.question.raised
        - investigator.automation.paused
        - investigator.rfi.answered
        - investigator.rfi.overdue
        - investigator.drift.detected
        - investigator.sla.breached
        - investigator.qa.failed
        - investigator.external.report.ready
    WebhookConfigDestination:
      type: object
      description: >-
        Una destinació del webhook tal com apareix a la configuració del
        webhook, sense mètriques de lliurament. `GET
        /v3/webhook/destinations/{destination_uuid}/` afegeix el seu resum de
        lliurament.
      required:
        - uuid
        - label
        - url
        - enabled
        - webhook_version
        - secret_shared_key
        - subscribed_events
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          format: uuid
          description: ID de la destinació.
        label:
          type: string
          maxLength: 255
          description: Nom llegible per a humans.
        url:
          type: string
          format: uri
          maxLength: 2000
          description: Endpoint HTTPS on Didit envia els esdeveniments.
        enabled:
          type: boolean
          description: '`false` posa en pausa els lliuraments a aquesta destinació.'
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: Versió del payload enviat a aquesta destinació.
        secret_shared_key:
          type: string
          description: >-
            El secret de signatura d'aquesta destinació (token de 43 caràcters
            segur per a URL). Verifica cada webhook amb el secret de la
            destinació a la qual s'ha enviat. Les crides amb clau d'API sempre
            el reben complet; els usuaris de la consola sense `read:webhooks`
            reben una cadena buida.
        subscribed_events:
          type: array
          uniqueItems: true
          description: >-
            Tipus d'esdeveniments lliurats a aquesta destinació. Buit quan la
            destinació es va crear sense esdeveniments, cas en què no rep res.
          items:
            $ref: '#/components/schemas/WebhookEvent'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  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.