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

# Listar destinos de webhook: API de gestión de Didit

> Obtén todos los destinos de webhook de Didit con su versión, eventos suscritos, métricas de entrega de 30 días y estado de salud. Pago por llamada.



Prompt de la API para listar destinos de webhook
        Copiar el prompt al portapapeles



      
      

\<pre>

\`List every webhook destination configured for my Didit application through the Management API.

Endpoint:
GET https://verification.didit.me/v3/webhook/destinations/

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

Goal:
\- Get every webhook destination (URL, version, subscribed events, delivery health) for my application. Use this to build a back-office "Webhooks" screen or to audit which destinations are receiving which events.

Behavior:
\- Returns a JSON array (not paginated) of destinations ordered by created_at.
\- The list never includes the signing secret (secret_shared_key) and has no summary object. Each item carries secret_last4, the last four characters of the secret, so you can tell secrets apart. Read the full secret from GET /v3/webhook/destinations/{destination_uuid}/.
\- Each item carries flat delivery metrics for the last 30 days (metrics_window_days is always 30): deliveries_count, failed_deliveries_count, average_response_time_ms and error_rate_percentage. last_delivery_at is the most recent attempt.
\- daily_points has 30 entries, oldest first, one per UTC day: { date, total_deliveries, failed_deliveries }. Days without deliveries carry zeros.
\- health_status is "failing" when 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (failing_streak counts them, failing_since is when the first one failed), "degraded" when an attempt failed in the last 24 hours and no later attempt has delivered that event, and "healthy" otherwise. It does not reflect enabled.
\- last_success_at is when the destination last answered under HTTP 400 in the last 30 days (null if it has not).
\- created_by_email and created_by_name name the Business Console member who created the destination; both are null for a destination created with an API key.
\- environment is "live" or "sandbox", from the application.

Example call:
curl -X GET "https://verification.didit.me/v3/webhook/destinations/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- uuid — destination id; use as {destination_uuid} in subsequent calls.
\- url, label, enabled — basic config.
\- webhook_version — payload schema version ("v1", "v2", or "v3"; v3 is current).
\- subscribed_events — list of event names this destination receives. There is no wildcard.
\- health_status: the signal to alert on. failing_streak and failing_since tell you how long a destination has been failing.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope.
\- 429 — rate limited; back off and retry.

Side effects: none. This is a pure read.

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

\</pre>



      
      

Pegar en

## Estado del destino`health_status` resume cómo ha respondido un destino a sus entregas.| Valor | Significado |
| - | - |
| `failing` | 3 o más eventos consecutivos fallaron en su primer intento de entrega desde la última vez que el destino respondió correctamente. `failing_streak` los cuenta y `failing_since` indica cuándo falló el primero. |
| `degraded` | No está en estado de fallo, pero un intento de entrega falló en las últimas 24 horas y ningún intento posterior ha entregado ese evento. Un reintento o un reenvío que lo entregue elimina este estado. |
| `healthy` | Ninguno de los anteriores. |Un intento fallido es aquel ante el que el destino respondió con HTTP 400 o superior, o ante el que no respondió en absoluto (tiempo de espera agotado, conexión rechazada o dirección bloqueada).
Los reintentos no suman a `failing_streak`, y cualquier intento exitoso, incluido un reintento o un reenvío, pone fin a la racha.
`health_status` es independiente de `enabled`.Las métricas de entrega y `daily_points` cubren los últimos 30 días (`metrics_window_days`).
`daily_points` siempre tiene 30 entradas, una por día UTC, de la más antigua a la más reciente.## Contenido relacionado- [Obtener destino de webhook](https://docs.didit.me/es/management-api/webhook/get-destination.md): consulta un destino con su secreto de firma y su resumen de entregas.
- [Guía de webhooks](https://docs.didit.me/es/integration/webhooks.md): verificación de firma, reintentos y payloads.


## OpenAPI

````yaml es/openapi-25.json GET /v3/webhook/destinations/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/:
    get:
      tags:
        - Webhook
      summary: Listar destinos de webhook
      description: >-
        Lista todos los destinos de webhook (array sin paginar, del más antiguo
        al más reciente). Cada elemento incluye la configuración del destino,
        sus métricas de entrega de los últimos 30 días (`metrics_window_days`)
        con una entrada `daily_points` por día, y su estado de salud
        (`health_status`, `failing_streak`, `failing_since`, `last_success_at`).
        La lista no tiene objeto `summary` y nunca incluye el secreto de firma:
        cada elemento muestra solo `secret_last4`. Obtén un único destino (`GET
        /v3/webhook/destinations/{destination_uuid}/`) para leer
        `secret_shared_key`.
      operationId: list_webhook_destinations
      responses:
        '200':
          description: >-
            Lista de destinos de webhook (sin paginar, del más antiguo al más
            reciente).
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                      description: >-
                        Identificador estable del destino; úsalo como
                        `{destination_uuid}` para actualizarlo o eliminarlo.
                    label:
                      type: string
                      description: Nombre legible que se muestra en la Console.
                    url:
                      type: string
                      format: uri
                      description: >-
                        URL de destino que recibe solicitudes `POST` con el
                        payload del webhook.
                    enabled:
                      type: boolean
                      description: >-
                        Cuando es `false`, Didit omite sin avisar la entrega a
                        este destino.
                    webhook_version:
                      type: string
                      enum:
                        - v1
                        - v2
                        - v3
                      description: >-
                        Versión del esquema del payload que se envía a este
                        destino. `v3` es el formato actual y recomendado.
                    subscribed_events:
                      $ref: '#/components/schemas/WebhookSubscribedEvents'
                    subscribed_events_count:
                      type: integer
                      description: >-
                        Longitud de `subscribed_events` almacenada en caché,
                        útil para renderizar la interfaz.
                    deliveries_count:
                      type: integer
                      description: >-
                        Intentos de entrega (reintentos incluidos) realizados a
                        este destino en los últimos 30 días.
                    failed_deliveries_count:
                      type: integer
                      description: >-
                        Intentos de entrega de los últimos 30 días a los que el
                        destino respondió con HTTP 400 o superior, o no
                        respondió (tiempo de espera agotado, conexión rechazada
                        o dirección bloqueada).
                    average_response_time_ms:
                      type: integer
                      nullable: true
                      description: >-
                        Tiempo de respuesta promedio en milisegundos de los
                        últimos 30 días, redondeado a un entero. `null` cuando
                        no hubo entregas en ese periodo.
                    error_rate_percentage:
                      type: integer
                      description: >-
                        `round(failed_deliveries_count / deliveries_count *
                        100)` en los últimos 30 días; `0` cuando no hay
                        entregas.
                    last_delivery_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Marca de tiempo del intento de entrega más reciente
                        (correcto o fallido). `null` si nunca se entregó.
                    metrics_window_days:
                      type: integer
                      description: >-
                        Duración en días de la ventana que cubren
                        `deliveries_count`, `failed_deliveries_count`,
                        `average_response_time_ms`, `error_rate_percentage` y
                        `daily_points`. Siempre `30`.
                    health_status:
                      type: string
                      enum:
                        - healthy
                        - degraded
                        - failing
                      description: >-
                        Estado de las entregas. `failing`: 3 o más eventos
                        consecutivos fallaron en su primer intento de entrega
                        desde la última vez que el destino respondió
                        correctamente (consulta `failing_streak`). `degraded`:
                        el destino no está fallando, pero un intento de entrega
                        falló en las últimas 24 horas y ningún intento posterior
                        ha entregado ese evento; un reintento o un reenvío que
                        lo entregue elimina este estado. `healthy`: ninguno de
                        los dos casos anteriores. Es independiente de `enabled`.
                        Un intento fallido es aquel que recibe una respuesta
                        HTTP 400 o superior, o que no recibe ninguna respuesta.
                    failing_streak:
                      type: integer
                      description: >-
                        Cuántos eventos consecutivos fallaron en su primer
                        intento de entrega desde la última vez que el destino
                        respondió correctamente, dentro de los últimos 30 días.
                        Los reintentos no se cuentan, y cualquier intento
                        correcto, incluido un reintento o un reenvío, pone fin a
                        la racha. `0` cuando ningún evento ha fallado desde el
                        último éxito.
                    failing_since:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Cuándo se realizó el primer intento fallido de la
                        `failing_streak` actual. `null` cuando `failing_streak`
                        es `0`.
                    last_success_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Cuándo el destino respondió por última vez a una entrega
                        con un estado HTTP inferior a 400, dentro de los últimos
                        30 días. `null` si no lo ha hecho en ese periodo.
                    environment:
                      type: string
                      enum:
                        - live
                        - sandbox
                      description: Entorno de la aplicación a la que pertenece el destino.
                    daily_points:
                      type: array
                      description: >-
                        Una entrada por día UTC de los últimos 30 días, de la
                        más antigua a la más reciente, incluidos los días sin
                        entregas. Cuenta cada intento, reintentos incluidos.
                      items:
                        type: object
                        properties:
                          date:
                            type: string
                            format: date
                            description: El día en UTC.
                          total_deliveries:
                            type: integer
                            description: Intentos de entrega realizados ese día.
                          failed_deliveries:
                            type: integer
                            description: >-
                              Intentos realizados ese día que recibieron una
                              respuesta HTTP 400 o superior, o que no recibieron
                              respuesta.
                    secret_last4:
                      type: string
                      description: >-
                        Últimos cuatro caracteres del secreto de firma actual
                        del destino, para que puedas distinguir los secretos. No
                        basta para verificar una firma.
                    created_by_email:
                      type: string
                      nullable: true
                      description: >-
                        Correo electrónico del miembro de Business Console que
                        creó el destino. `null` para un destino creado con una
                        clave de API.
                    created_by_name:
                      type: string
                      nullable: true
                      description: >-
                        Nombre del miembro de Business Console que creó el
                        destino. `null` para un destino creado con una clave de
                        API.
                    created_at:
                      type: string
                      format: date-time
                    updated_at:
                      type: string
                      format: date-time
              examples:
                Two destinations:
                  value:
                    - uuid: 11111111-2222-3333-4444-555555555555
                      label: Production session webhooks
                      url: https://yourapp.com/webhooks/didit
                      enabled: true
                      webhook_version: v3
                      subscribed_events:
                        - status.updated
                        - data.updated
                      subscribed_events_count: 2
                      deliveries_count: 12453
                      failed_deliveries_count: 14
                      average_response_time_ms: 187
                      error_rate_percentage: 0
                      last_delivery_at: '2026-05-17T09:21:18Z'
                      metrics_window_days: 30
                      health_status: healthy
                      failing_streak: 0
                      failing_since: null
                      last_success_at: '2026-05-17T09:21:18Z'
                      environment: live
                      daily_points:
                        - date: '2026-04-18'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-19'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-20'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-21'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-22'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-23'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-24'
                          total_deliveries: 415
                          failed_deliveries: 9
                        - date: '2026-04-25'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-26'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-27'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-28'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-29'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-30'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-01'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-02'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-03'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-04'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-05'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-06'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-07'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-08'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-09'
                          total_deliveries: 415
                          failed_deliveries: 5
                        - date: '2026-05-10'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-11'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-12'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-13'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-14'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-15'
                          total_deliveries: 416
                          failed_deliveries: 0
                        - date: '2026-05-16'
                          total_deliveries: 416
                          failed_deliveries: 0
                        - date: '2026-05-17'
                          total_deliveries: 416
                          failed_deliveries: 0
                      secret_last4: 0xnQ
                      created_by_email: null
                      created_by_name: null
                      created_at: '2026-01-04T08:00:00Z'
                      updated_at: '2026-04-22T14:09:11Z'
                    - uuid: 22222222-3333-4444-5555-666666666666
                      label: Staging mirror
                      url: https://staging.yourapp.com/webhooks/didit
                      enabled: false
                      webhook_version: v3
                      subscribed_events:
                        - status.updated
                      subscribed_events_count: 1
                      deliveries_count: 0
                      failed_deliveries_count: 0
                      average_response_time_ms: null
                      error_rate_percentage: 0
                      last_delivery_at: null
                      metrics_window_days: 30
                      health_status: healthy
                      failing_streak: 0
                      failing_since: null
                      last_success_at: null
                      environment: live
                      daily_points:
                        - date: '2026-04-18'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-19'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-20'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-21'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-22'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-23'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-24'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-25'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-26'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-27'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-28'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-29'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-30'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-01'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-02'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-03'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-04'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-05'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-06'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-07'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-08'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-09'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-10'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-11'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-12'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-13'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-14'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-15'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-16'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-17'
                          total_deliveries: 0
                          failed_deliveries: 0
                      secret_last4: k9Qe
                      created_by_email: reviewer@example.com
                      created_by_name: Example Reviewer
                      created_at: '2026-03-12T10:15:02Z'
                      updated_at: '2026-03-12T10:15:02Z'
        '403':
          description: >-
            Clave de API ausente, con formato incorrecto, expirada o asociada a
            otra aplicación. Si falta la clave, se devuelve `403`; si es
            incorrecta, está revocada o ha expirado, se devuelve `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Límite de solicitudes superado; espera y reintenta.
          content:
            application/json:
              examples:
                Throttled:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET 'https://verification.didit.me/v3/webhook/destinations/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.webhooks.destinations.list()
            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.destinations.list();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Webhooks.Destinations.List(ctx)\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.webhooks().destinations().list();
            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->destinations->list();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.webhooks.destinations.list.each do |item|
              puts item.to_h
            end
        - 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.Destinations.ListAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WebhookSubscribedEvents:
      type: array
      description: >-
        Filtro de eventos de este destino de webhook. Didit entrega solo los
        webhooks cuyo tipo de evento coincide exactamente con uno de estos
        valores: no existe una suscripción comodín. Si se envía, la lista debe
        contener al menos un evento válido (un `[]` explícito se rechaza con
        400). Un destino con la lista vacía (campo omitido al crearlo) no recibe
        nada. Al actualizar, la lista se reemplaza por completo y nunca se
        combina.
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    WebhookEvent:
      type: string
      description: >-
        Nombre de evento de webhook admitido. Usa exactamente estas cadenas en
        `subscribed_events`; los valores no admitidos se rechazan.
      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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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