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

# Obtener un destino de webhook: Management API

> Obtén un destino de webhook de Didit con su secreto de firma, eventos suscritos, estado y resumen de entregas de 30 días. Pago por llamada.



Prompt de la API para obtener un destino de webhook
        Copiar el prompt al portapapeles



      
      

\<pre>

\`Fetch a single Didit webhook destination through the Management API.

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

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

Goal:
\- Retrieve the full configuration and delivery summary of one destination — useful for back-office detail screens or to confirm a config change.

Path parameter:
\- destination_uuid — the destination UUID returned by POST /v3/webhook/destinations/ or GET /v3/webhook/destinations/.

What to read from the response:
\- url, label, enabled, webhook_version — basic config.
\- subscribed_events — current event subscription list.
\- secret_shared_key: the HMAC signing secret, always returned in full to your API key.
\- secret_last4: the last four characters of the current secret.
\- previous_secret_expires_at: set for 24 hours after the secret is rotated in the Business Console. Until then every delivery also carries X-Signature-Previous, X-Signature-V2-Previous and X-Signature-Simple-Previous, made with the replaced secret. null otherwise.
\- health_status: "failing" (3 or more consecutive events failed their first delivery attempt since the last success), "degraded" (an attempt failed in the last 24 hours and no later attempt has delivered that event) or "healthy". failing_streak, failing_since and last_success_at give the details.
\- summary: { total_deliveries, failed_deliveries, error_rate_percentage, min/avg/max_response_time_ms, last_delivery_at, metrics_window_days } for the last 30 days (metrics_window_days is always 30; last_delivery_at is the most recent attempt).
\- created_by_email, created_by_name: the Business Console member who created the destination; null for a destination created with an API key.
\- environment: "live" or "sandbox", from the application.

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

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403: canonical { "detail": "You do not have permission to perform this action." } envelope.
\- 404 — destination not found in this application (also returned for deleted destinations).

Side effects: none. This is a pure read.

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

\</pre>



      
      

Pegar en

La respuesta incluye los mismos campos de estado que la [lista](https://docs.didit.me/es/management-api/webhook/list-destinations.md#estado-del-destino), además de un `summary` de los últimos 30 días.## Relacionado- [Listar destinos de webhook](https://docs.didit.me/es/management-api/webhook/list-destinations.md): todos los destinos con su estado y sus recuentos diarios de entregas realizadas.
- [Guía de webhooks](https://docs.didit.me/es/integration/webhooks.md#verificación-de-firma): cómo verificar firmas, también durante una rotación del secreto.


## OpenAPI

````yaml es/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/
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/{destination_uuid}/:
    get:
      tags:
        - Webhook
      summary: Obtener destino de webhook
      description: >-
        Obtén un destino de webhook con su secreto de firma `secret_shared_key`,
        su estado de salud (`health_status`, `failing_streak`, `failing_since`,
        `last_success_at`) y un `summary` de entregas de los últimos 30 días.
        Quienes llaman con una clave de API siempre reciben el secreto completo;
        los usuarios de la consola sin `read:webhooks` ven una cadena vacía.
      operationId: get_webhook_destination
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: UUID del destino (el `uuid` que devuelven la creación o el listado).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: Detalles del destino de webhook.
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                  label:
                    type: string
                  url:
                    type: string
                    format: uri
                  enabled:
                    type: boolean
                  webhook_version:
                    type: string
                    enum:
                      - v1
                      - v2
                      - v3
                  secret_shared_key:
                    type: string
                    description: >-
                      Secreto de firma HMAC (token de 43 caracteres seguro para
                      URL). Siempre se devuelve completo a quienes llaman con
                      una clave de API; los usuarios de la consola necesitan
                      `read:webhooks`; de lo contrario, se devuelve una cadena
                      vacía.
                  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.
                  previous_secret_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Se establece durante 24 horas después de rotar el secreto
                      de firma del destino en la Business Console. Hasta ese
                      momento, cada entrega al destino también incluye
                      `X-Signature-Previous`, `X-Signature-V2-Previous` y
                      `X-Signature-Simple-Previous`, generados con el secreto
                      sustituido (consulta [Verificación de
                      firma](/es/integration/webhooks#verificación-de-firma)).
                      `null` cuando no se ha producido ninguna rotación en las
                      últimas 24 horas.
                  subscribed_events:
                    $ref: '#/components/schemas/WebhookSubscribedEvents'
                  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
                  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.
                  summary:
                    type: object
                    description: >-
                      Métricas de entrega de los últimos `metrics_window_days`
                      (30) días. `last_delivery_at` es el intento más reciente,
                      independientemente de cuándo se realizó.
                    properties:
                      total_deliveries:
                        type: integer
                      failed_deliveries:
                        type: integer
                      error_rate_percentage:
                        type: integer
                      min_response_time_ms:
                        type: integer
                        nullable: true
                      avg_response_time_ms:
                        type: integer
                        nullable: true
                      max_response_time_ms:
                        type: integer
                        nullable: true
                      last_delivery_at:
                        type: string
                        format: date-time
                        nullable: true
                      metrics_window_days:
                        type: integer
                        description: >-
                          Duración en días de la ventana que cubren las demás
                          métricas del resumen. Siempre `30`.
              examples:
                Healthy destination:
                  value:
                    uuid: 11111111-2222-3333-4444-555555555555
                    label: Production session webhooks
                    url: https://yourapp.com/webhooks/didit
                    enabled: true
                    webhook_version: v3
                    secret_shared_key: tno2NTeRC1ZK3sBOYlBJDyEzBVENl3pQ1AcZyAW0xnQ
                    secret_last4: 0xnQ
                    previous_secret_expires_at: null
                    subscribed_events:
                      - status.updated
                      - data.updated
                    created_by_email: null
                    created_by_name: null
                    created_at: '2026-01-04T08:00:00Z'
                    updated_at: '2026-04-22T14:09:11Z'
                    health_status: healthy
                    failing_streak: 0
                    failing_since: null
                    last_success_at: '2026-05-17T09:21:18Z'
                    environment: live
                    summary:
                      total_deliveries: 12453
                      failed_deliveries: 14
                      error_rate_percentage: 0
                      min_response_time_ms: 41
                      avg_response_time_ms: 187
                      max_response_time_ms: 2103
                      last_delivery_at: '2026-05-17T09:21:18Z'
                      metrics_window_days: 30
        '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.
        '404':
          description: >-
            No existe ningún destino con este UUID, pertenece a otra aplicación
            o se ha eliminado.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Webhook destination not found.
        '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/11111111-2222-3333-4444-555555555555/'
            \
              -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.retrieve(
                "11111111-2222-3333-4444-555555555555",
            )
            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.retrieve("11111111-2222-3333-4444-555555555555");

            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.Retrieve(ctx, \"11111111-2222-3333-4444-555555555555\")\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().retrieve("11111111-2222-3333-4444-555555555555");

            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->retrieve('11111111-2222-3333-4444-555555555555');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.webhooks.destinations.retrieve("11111111-2222-3333-4444-555555555555")

            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.Destinations.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            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.