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

# Activité d'échec des destinations de webhook : API

> Listez les alertes d'échec des destinations de webhook Didit avec horodatages et nombre d'échecs, via accès en lecture et pagination limit/offset.

L'API d'activité des destinations de webhook de Didit renvoie les alertes d'échec enregistrées, les plus récentes en premier. Chaque entrée contient `id`, `type` (`failure_alert`), `occurred_at` et `failure_count`.

Utilisez `limit` et `offset` pour paginer les résultats, et suivez `next` jusqu'à ce que sa valeur soit null ; `count` peut être plafonné ou estimé. Une destination inexistante renvoie `404`.

Ces alertes sont distinctes des [tentatives de livraison](https://docs.didit.me/fr/management-api/webhook/list-deliveries.md). Voir [activité d'échec des webhooks](https://docs.didit.me/fr/integration/webhooks.md#politique-de-nouvelles-tentatives) et [analyses des destinations](https://docs.didit.me/fr/management-api/webhook/destination-analytics.md).


## OpenAPI

````yaml fr/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/:
    get:
      tags:
        - Webhook
      summary: Lister l'activité de la destination de webhook
      description: >-
        Liste les alertes d'échec enregistrées pour une destination, de la plus
        récente à la plus ancienne. Nécessite read:webhooks. Les identifiants
        d'application ou de clé API doivent appartenir à l'application figurant
        dans le chemin ; les tokens Bearer de membre doivent avoir accès à cette
        application. Il s'agit d'événements d'alerte d'échec, et non de
        tentatives d'envoi individuelles ni de types d'événements webhook
        sortants. Voir
        [Webhooks](https://docs.didit.me/fr/integration/webhooks#politique-de-nouvelles-tentatives).
      operationId: list_activity_webhooks_destinations
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'organisation.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'application.
        - name: destination_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de la destination.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: Nombre maximal de résultats par page.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Nombre de résultats à ignorer.
      responses:
        '200':
          description: Liste l'activité de la destination de webhook.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDestinationActivityList'
        '401':
          description: Identifiants manquants, invalides ou expirés.
        '403':
          description: >-
            L'appelant n'a pas accès à cette application ou ne dispose pas des
            autorisations requises.
        '404':
          description: Destination de webhook introuvable.
        '429':
          $ref: '#/components/responses/RateLimitedRead'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            for item in client.webhooks.destinations.list_activity(
                "11111111-2222-3333-4444-555555555555",
            ):
                print(item)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            for await (const item of
            didit.webhooks.destinations.listActivity("11111111-2222-3333-4444-555555555555"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\niter := client.Webhooks.Destinations.ListActivityAutoPaging(ctx, \"11111111-2222-3333-4444-555555555555\", didit.WebhooksDestinationsListActivityParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            for (var item :
            client.webhooks().destinations().listActivity("11111111-2222-3333-4444-555555555555"))
            {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            foreach
            ($didit->webhooks->destinations->listActivity('11111111-2222-3333-4444-555555555555')
            as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            # and DIDIT_APPLICATION_ID.

            didit = Didit::Client.new


            didit.webhooks.destinations.list_activity("11111111-2222-3333-4444-555555555555").auto_paging_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, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            await foreach (var item in await
            client.Webhooks.Destinations.ListActivityAsync("11111111-2222-3333-4444-555555555555"))

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    WebhookDestinationActivityList:
      type: object
      required:
        - count
        - next
        - previous
        - results
      properties:
        count:
          type: integer
          description: >-
            Nombre de résultats, généralement plafonné à 100 ; peut être estimé.
            Suivez next plutôt que count pour arrêter la pagination.
        next:
          type: string
          description: URL de la page suivante, ou null.
          nullable: true
        previous:
          type: string
          description: URL de la page précédente, ou null.
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/WebhookDestinationActivity'
      example:
        count: 1
        next: null
        previous: null
        results:
          - id: 00000000-0000-4000-8000-000000000003
            type: failure_alert
            occurred_at: '2026-11-11T01:00:00Z'
            failure_count: 3
    WebhookDestinationActivity:
      type: object
      required:
        - id
        - type
        - occurred_at
        - failure_count
      properties:
        id:
          type: string
          description: Identifiant de l'alerte d'échec.
          format: uuid
        type:
          type: string
          description: Type d'activité.
          enum:
            - failure_alert
        occurred_at:
          type: string
          description: Heure de l'alerte d'échec.
          format: date-time
        failure_count:
          type: integer
          description: Nombre d'échecs enregistré avec cette alerte.
          minimum: 0
    RateLimitBudgetError:
      type: object
      description: >-
        Renvoyé uniquement pour un refus de quota du middleware lié à la limite
        de débit. Les autres erreurs 429, y compris les conflits d'idempotence
        et les plafonds propres à chaque endpoint, ne garantissent pas ces
        champs de métadonnées.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Message lisible de refus de budget existant.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: "Référence de support opaque\_: RL- suivi de 32 caractères hexadécimaux minuscules d'un UUID."
        limit:
          type: integer
          description: Budget du périmètre dépassé ; égal à X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: Budget restant, ramené à zéro ; égal à X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Heure de réinitialisation de la fenêtre en secondes Unix ; égale à
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Durée de la fenêtre fixe en secondes, et non le temps d'attente
            restant. Respectez Retry-After avant de réessayer.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
  responses:
    RateLimitedRead:
      description: >-
        Dépassement du budget de lecture du middleware. Respectez Retry-After
        avant de réessayer.
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              GET request rate limit exceeded. You can make up to 600 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 600
            remaining: 0
            reset: 1794358860
            window_seconds: 60
  headers:
    BudgetRetryAfter:
      description: >-
        Nombre de secondes à attendre, arrondi à la fenêtre suivante. Présent
        sur les refus liés au quota du middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Le périmètre dont le quota a été dépassé. Présent sur les refus liés au
        quota du middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Budget du périmètre dépassé ; égal à la limite du corps. Présent sur les
        refus de budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Budget restant, ramené à zéro ; égal à remaining du corps. Présent lors
        des refus liés au budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Heure de réinitialisation en secondes Unix ; égale à reset dans le
        corps. Présent sur les refus liés au quota du middleware.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Le token d'accès client-credentials de l'application.

````

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