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

# Ottieni destinazione webhook: Management API Didit

> Recupera con Didit una destinazione webhook: segreto di firma, eventi sottoscritti, stato e consegne degli ultimi 30 giorni. Pagamento per chiamata.



Prompt API per ottenere una destinazione webhook
        Copia il prompt negli appunti



      
      

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



      
      

Incolla in

La risposta contiene gli stessi campi di stato della [lista](https://docs.didit.me/it/management-api/webhook/list-destinations.md#stato-della-destinazione), più un `summary` degli ultimi 30 giorni.## Correlati- [Elenca le destinazioni webhook](https://docs.didit.me/it/management-api/webhook/list-destinations.md): ogni destinazione con il suo stato e i conteggi giornalieri delle consegne.
- [Guida ai webhook](https://docs.didit.me/it/integration/webhooks.md#verifica-della-firma): come verificare le firme, anche durante una rotazione del segreto condiviso.


## OpenAPI

````yaml it/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/{destination_uuid}/:
    get:
      tags:
        - Webhook
      summary: Recupera destinazione webhook
      description: >-
        Recupera una destinazione webhook con il relativo segreto di firma
        `secret_shared_key`, il suo stato (`health_status`, `failing_streak`,
        `failing_since`, `last_success_at`) e un riepilogo delle consegne
        (`summary`) per gli ultimi 30 giorni. Chi effettua chiamate con chiave
        API riceve sempre il segreto per intero; gli utenti della Console senza
        `read:webhooks` visualizzano una stringa vuota.
      operationId: get_webhook_destination
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: >-
            UUID della destinazione (lo `uuid` restituito dalla
            creazione/elenco).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: Dettagli della destinazione 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: >-
                      Segreto di firma HMAC (token URL-safe di 43 caratteri).
                      Viene sempre restituito per intero a chi chiama tramite
                      chiave API; gli utenti della Console necessitano di
                      `read:webhooks`, altrimenti viene restituita una stringa
                      vuota.
                  secret_last4:
                    type: string
                    description: >-
                      Ultimi quattro caratteri del segreto di firma attuale
                      della destinazione, per consentirti di distinguere i
                      segreti. Non sufficienti per verificare una firma.
                  previous_secret_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Impostato per 24 ore dopo la rotazione del segreto di
                      firma della destinazione nella Business Console. Fino a
                      tale momento, ogni consegna alla destinazione include
                      anche `X-Signature-Previous`, `X-Signature-V2-Previous` e
                      `X-Signature-Simple-Previous`, generati con il segreto
                      sostituito (vedi [Verifica della
                      firma](/it/integration/webhooks#verifica-della-firma)).
                      `null` quando non si è verificata alcuna rotazione nelle
                      ultime 24 ore.
                  subscribed_events:
                    $ref: '#/components/schemas/WebhookSubscribedEvents'
                  created_by_email:
                    type: string
                    nullable: true
                    description: >-
                      Email del membro della Business Console che ha creato la
                      destinazione. `null` per una destinazione creata con una
                      chiave API.
                  created_by_name:
                    type: string
                    nullable: true
                    description: >-
                      Nome del membro della Business Console che ha creato la
                      destinazione. `null` per una destinazione creata con una
                      chiave API.
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                  health_status:
                    type: string
                    enum:
                      - healthy
                      - degraded
                      - failing
                    description: >-
                      Stato della consegna. `failing`: 3 o più eventi
                      consecutivi hanno fallito il primo tentativo di consegna
                      dall'ultima risposta riuscita della destinazione (vedere
                      `failing_streak`). `degraded`: non in errore, ma un
                      tentativo di consegna è fallito nelle ultime 24 ore e
                      nessun tentativo successivo ha consegnato quell'evento; un
                      nuovo tentativo o reinvio che lo consegna cancella questa
                      condizione. `healthy`: nessuno dei due. Indipendente da
                      `enabled`. Un tentativo fallito è quello a cui è stato
                      risposto con HTTP 400 o superiore, o a cui non è stata
                      data alcuna risposta.
                  failing_streak:
                    type: integer
                    description: >-
                      Quanti eventi consecutivi hanno fallito il primo tentativo
                      di consegna dall'ultima risposta positiva della
                      destinazione, negli ultimi 30 giorni. I nuovi tentativi
                      non vengono conteggiati e qualsiasi tentativo riuscito,
                      inclusi nuovi tentativi o reinvii, interrompe la serie.
                      `0` quando nessun evento ha fallito dall'ultimo successo.
                  failing_since:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e ora del primo tentativo fallito dell'attuale
                      `failing_streak`. `null` quando `failing_streak` è `0`.
                  last_success_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e ora dell'ultima risposta della destinazione a una
                      consegna con uno stato HTTP inferiore a 400, negli ultimi
                      30 giorni. `null` se non ha risposto in tale intervallo.
                  environment:
                    type: string
                    enum:
                      - live
                      - sandbox
                    description: >-
                      Ambiente dell'applicazione proprietaria della
                      destinazione.
                  summary:
                    type: object
                    description: >-
                      Metriche di consegna per gli ultimi `metrics_window_days`
                      (30) giorni. `last_delivery_at` è il tentativo più
                      recente, a prescindere da quando è stato effettuato.
                    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: >-
                          Durata in giorni dell'intervallo coperto dalle altre
                          metriche di riepilogo. 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: >-
            Chiave API mancante, malformata, scaduta o associata a
            un'applicazione diversa. Una chiave mancante restituisce `403`; una
            chiave errata, revocata o scaduta restituisce `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Nessuna destinazione con questo UUID esiste, oppure appartiene a
            un'applicazione diversa o è stata eliminata.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: Limite di frequenza superato; rallenta e riprova.
          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 degli eventi per questa destinazione webhook. Didit consegna solo
        i webhook il cui tipo di evento corrisponde esattamente a uno di questi
        valori — non esiste un abbonamento con caratteri jolly. Quando viene
        inviato, l'elenco deve contenere almeno un evento valido (un `[]`
        esplicito viene rifiutato con 400); una destinazione il cui elenco è
        vuoto (campo omesso alla creazione) non riceve nulla. In caso di
        aggiornamento, l'elenco viene sostituito per intero, mai unito.
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    WebhookEvent:
      type: string
      description: >-
        Nome dell'evento webhook supportato. Usa queste stringhe esatte in
        `subscribed_events`; i valori non supportati vengono rifiutati.
      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 chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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