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

# Obter destino de webhook: API de gestão da Didit

> Obtenha um destino de webhook da Didit com segredo de assinatura, eventos, estado e resumo de entregas de 30 dias. Pagamento 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 inclui os mesmos campos de estado que a [lista](https://docs.didit.me/pt/management-api/webhook/list-destinations.md#estado-do-destino), além de um `summary` dos últimos 30 dias.## Relacionados- [Listar destinos do webhook](https://docs.didit.me/pt/management-api/webhook/list-destinations.md): todos os destinos com o respetivo estado e as contagens diárias de entregas.
- [Guia dos webhooks](https://docs.didit.me/pt/integration/webhooks.md#verificação-da-assinatura): como verificar assinaturas, incluindo durante uma rotação do segredo.


## OpenAPI

````yaml pt/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`, o seu estado (`health_status`, `failing_streak`,
        `failing_since`, `last_success_at`) e um resumo (`summary`) de entregas
        dos últimos 30 dias. Quem chama via chave de API recebe sempre o segredo
        na íntegra; os utilizadores da Consola sem `read:webhooks` veem uma
        cadeia de carateres vazia.
      operationId: get_webhook_destination
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: UUID do destino (o `uuid` retornado por criar / listar).
          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
                      carateres). Devolvido sempre na totalidade para chamadas
                      com chave de API; os utilizadores da Consola necessitam de
                      `read:webhooks`, caso contrário recebem uma string vazia.
                  secret_last4:
                    type: string
                    description: >-
                      Últimos quatro carateres do segredo de assinatura atual do
                      destino, para que possa distinguir os segredos. Não são
                      suficientes para verificar uma assinatura.
                  previous_secret_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Definido durante 24 horas após o segredo de assinatura do
                      destino ser alterado na Business Console. Até esse
                      momento, cada entrega para o 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 da
                      assinatura](/pt/integration/webhooks#verificação-da-assinatura)).
                      `null` quando não ocorreu qualquer rotação nas últimas 24
                      horas.
                  subscribed_events:
                    $ref: '#/components/schemas/WebhookSubscribedEvents'
                  created_by_email:
                    type: string
                    nullable: true
                    description: >-
                      E-mail do membro da 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 da 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: >-
                      Estado da entrega. `failing`: 3 ou mais eventos
                      consecutivos falharam a primeira tentativa de entrega
                      desde que o destino respondeu com sucesso pela última vez
                      (consulte `failing_streak`). `degraded`: não está a
                      falhar, mas uma tentativa de entrega falhou nas últimas 24
                      horas e nenhuma tentativa posterior entregou esse evento;
                      uma nova tentativa ou reenvio bem-sucedido limpa este
                      estado. `healthy`: nenhum dos anteriores. Independente de
                      `enabled`. Uma tentativa falhada é aquela respondida com
                      HTTP 400 ou superior, ou que não obteve qualquer resposta.
                  failing_streak:
                    type: integer
                    description: >-
                      Quantos eventos consecutivos falharam a primeira tentativa
                      de entrega desde a última resposta bem-sucedida do
                      destino, nos últimos 30 dias. As novas tentativas não são
                      contabilizadas, e qualquer tentativa bem-sucedida,
                      incluindo uma nova tentativa ou um reenvio, termina 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 falhada da atual
                      `failing_streak`. `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 estado HTTP inferior a 400, nos últimos 30 dias.
                      `null` se não o tiver feito nesse período.
                  environment:
                    type: string
                    enum:
                      - live
                      - sandbox
                    description: Ambiente da aplicação a que pertence o destino.
                  summary:
                    type: object
                    description: >-
                      Métricas de entrega para os últimos `metrics_window_days`
                      (30) dias. `last_delivery_at` é a tentativa mais recente,
                      independentemente de quando foi efetuada.
                    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 do intervalo abrangido pelas outras
                          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 em falta, mal formatada, expirada ou com âmbito
            limitado a uma aplicação diferente. Uma chave em falta devolve
            `403`; uma chave incorreta, revogada ou expirada devolve `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, pertence a uma aplicação
            diferente ou foi eliminado.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: Limite de pedidos excedido; reduza a frequência 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 para este destino do webhook. O Didit entrega apenas
        webhooks cujo tipo de evento corresponda exatamente a um destes valores
        — não existe subscrição com carateres universais. Ao ser enviada, a
        lista deve conter pelo menos um evento válido (um `[]` explícito é
        rejeitado com 400); um destino cuja lista esteja vazia (campo omitido na
        criação) não recebe nada. Na atualização, a lista é substituída
        integralmente, nunca fundida.
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    WebhookEvent:
      type: string
      description: >-
        Nome de evento de webhook suportado. Utilize estas strings exatas em
        `subscribed_events`; valores não suportados 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: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, 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á
        incorreta, 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 o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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