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

# Consultar destino do webhook: Management API da Didit

> Consulte um destino do webhook via Management API da Didit: segredo, eventos, saúde e resumo de entregas de 30 dias. Pague por chamada.



Prompt da API para obter destino do webhook
        Copiar o prompt para a área de transferência



      
      

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



      
      

Colar em

A resposta traz os mesmos campos de status da [lista](https://docs.didit.me/pt-br/management-api/webhook/list-destinations.md#status-do-destino), além de um `summary` dos últimos 30 dias.## Relacionados- [Listar destinos de webhook](https://docs.didit.me/pt-br/management-api/webhook/list-destinations.md): todos os destinos, com o status e as contagens diárias de entregas de cada um.
- [Guia de webhooks](https://docs.didit.me/pt-br/integration/webhooks.md#verificação-de-assinatura): como verificar assinaturas, inclusive durante a rotação de um segredo.


## OpenAPI

````yaml pt-br/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 verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/{destination_uuid}/:
    get:
      tags:
        - Webhook
      summary: Obter destino do webhook
      description: >-
        Obtenha um destino do webhook com o seu segredo de assinatura
        `secret_shared_key`, a sua saúde (`health_status`, `failing_streak`,
        `failing_since`, `last_success_at`) e um `summary` das entregas dos
        últimos 30 dias. Quem chama com chave de API sempre recebe o segredo
        completo; usuários do Console sem `read:webhooks` veem uma string vazia.
      operationId: get_webhook_destination
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: UUID do destino (o `uuid` retornado na criação ou na listagem).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: Detalhes do destino do 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: >-
                      Segredo de assinatura HMAC (token seguro para URL de 43
                      caracteres). Sempre retornado por completo para chamadores
                      com chave de API; usuários do Console precisam de
                      `read:webhooks`; caso contrário, recebem uma string vazia.
                  secret_last4:
                    type: string
                    description: >-
                      Últimos quatro caracteres do segredo de assinatura atual
                      do destino, para que você possa distinguir os segredos.
                      Não é suficiente para verificar uma assinatura.
                  previous_secret_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Definido por 24 horas após a rotação do segredo de
                      assinatura do destino no Business Console. Até esse
                      momento, toda entrega ao destino também inclui
                      `X-Signature-Previous`, `X-Signature-V2-Previous` e
                      `X-Signature-Simple-Previous`, gerados com o segredo
                      substituído (consulte [Verificação de
                      assinatura](/pt-br/integration/webhooks#verificação-de-assinatura)).
                      `null` quando nenhuma rotação ocorreu nas últimas 24
                      horas.
                  subscribed_events:
                    $ref: '#/components/schemas/WebhookSubscribedEvents'
                  created_by_email:
                    type: string
                    nullable: true
                    description: >-
                      E-mail do membro do Business Console que criou o destino.
                      `null` para um destino criado com uma chave de API.
                  created_by_name:
                    type: string
                    nullable: true
                    description: >-
                      Nome do membro do Business Console que criou o destino.
                      `null` para um destino criado com uma chave 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: >-
                      Saúde das entregas. `failing`: 3 ou mais eventos
                      consecutivos falharam na primeira tentativa de entrega
                      desde a última vez que o destino respondeu com sucesso
                      (consulte `failing_streak`). `degraded`: não está em
                      falha, mas uma tentativa de entrega falhou nas últimas 24
                      horas e nenhuma tentativa posterior entregou esse evento;
                      uma nova tentativa ou um reenvio que o entregue remove
                      esse estado. `healthy`: nenhum dos dois. Independe de
                      `enabled`. Uma tentativa com falha é aquela respondida com
                      HTTP 400 ou superior, ou que não recebeu resposta.
                  failing_streak:
                    type: integer
                    description: >-
                      Quantos eventos consecutivos falharam na primeira
                      tentativa de entrega desde a última resposta bem-sucedida
                      do destino, nos últimos 30 dias. Novas tentativas não são
                      contadas, e qualquer tentativa bem-sucedida, incluindo uma
                      nova tentativa ou um reenvio, encerra a sequência. `0`
                      quando nenhum evento falhou desde o último sucesso.
                  failing_since:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Quando foi feita a primeira tentativa com falha do
                      `failing_streak` atual. `null` quando `failing_streak` é
                      `0`.
                  last_success_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Quando o destino respondeu pela última vez a uma entrega
                      com um status HTTP abaixo de 400, nos últimos 30 dias.
                      `null` se isso não ocorreu nesse período.
                  environment:
                    type: string
                    enum:
                      - live
                      - sandbox
                    description: Ambiente da aplicação proprietária do destino.
                  summary:
                    type: object
                    description: >-
                      Métricas de entrega dos últimos `metrics_window_days` (30)
                      dias. `last_delivery_at` é a tentativa mais recente,
                      independentemente de quando foi feita.
                    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: >-
                          Duração, em dias, da janela coberta pelas demais
                          métricas de resumo. Sempre `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: >-
            Chave de API ausente, malformada, expirada ou vinculada a outra
            aplicação. Uma chave ausente retorna `403`; uma chave incorreta,
            revogada ou expirada retorna `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Não existe nenhum destino com este UUID, ou ele pertence a outra
            aplicação, ou foi excluído.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: Limite de requisições excedido; aguarde e tente novamente.
          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 deste destino do webhook. A Didit entrega apenas
        webhooks cujo tipo de evento corresponde exatamente a um destes valores;
        não existe assinatura curinga. Quando enviada, a lista deve conter pelo
        menos um evento válido (um `[]` explícito é rejeitado com 400); um
        destino cuja lista está vazia (campo omitido na criação) não recebe
        nada. Na atualização, a lista é substituída por inteiro, nunca mesclada.
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    WebhookEvent:
      type: string
      description: >-
        Nome de evento de webhook compatível. Use exatamente estas strings em
        `subscribed_events`; valores não compatíveis são rejeitados.
      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: >-
        Chave de API da sua aplicação, em Developers -> API keys no Business
        Console. A chave principal tem acesso total. Uma chave nomeada pode ter
        escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada
        a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a
        uma data de validade. 401 significa que a chave está errada, revogada ou
        expirada; 403 significa que nenhuma chave foi enviada, que a chave não
        tem acesso a este recurso ou ação, ou que a requisição veio de um
        endereço fora da sua lista de IPs; 404 em uma rota de sessão significa
        que a sessão está fora dos fluxos ou status da chave. Uma chave sem
        acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave
        sem permissão de escrita em sessões recebe links e tokens de sessão como
        null. Consulte https://docs.didit.me/console/api-keys.

````

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