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

# API : lister les livraisons de webhooks

> Didit : listez les tentatives de livraison d'une destination webhook, des plus récentes aux plus anciennes, avec statut HTTP et temps de réponse.



Prompt API pour lister les livraisons d'une destination de webhook
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`List the delivery attempts made to one Didit webhook destination through the Management API.

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

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs webhooks: read and decisions: read. A key limited to some workflows or to approved sessions cannot use this endpoint.

Goal:
\- Find the webhooks my endpoint failed to accept, so I can fix the endpoint and resend them.

Path parameter:
\- destination_uuid: the destination uuid from GET /v3/webhook/destinations/.

Query parameters (optional):
\- limit (default 50) and offset for pagination.
\- date_from, date_to: UTC days as YYYY-MM-DD, both inclusive.

Behavior:
\- Newest first. Every attempt is its own entry: the first send of an event, each automatic retry and each resend.
\- Response: { count, next, previous, results }. count is exact up to 100 and reads 100 above that, so follow next until it is null instead of computing pages from count.
\- Entries do not carry the payload. Fetch one with GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/ to read the headers and body.

Example call:
curl -X GET "https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/deliveries/?limit=50&date_from=2026-05-01" \
-H "x-api-key: YOUR_API_KEY"

What to read from each result:
\- uuid: the delivery id, for the detail and resend calls.
\- response_status: what my endpoint answered. null means the attempt has not been made yet; 504 is a timeout, 503 a connection failure, 400 a URL Didit refused to call, 404 any other request error; 400 or above is a failure.
\- Delivery records are available for about 30 days.
\- response_time_ms, created_at, webhook_type, status, request_url.
\- session_id: the verification session the event is about, or null for business, user, transaction and other events.

Failure modes:
\- 400: invalid date_from or date_to, date_to earlier than date_from, or limit or offset above 1000000.
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." }, { "detail": "This API key has no read access to webhooks." }, { "detail": "This API key has no read access to decisions." }, or the limited-key message.
\- 404: { "detail": "Webhook destination not found." }
\- 429: more than 600 GET requests per minute with this key; wait for Retry-After.

Side effects: none. This is a pure read.

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

\</pre>



      
      

Coller dans

Les livraisons sont les tentatives que Didit a effectuées pour envoyer un webhook à cette destination. Les nouvelles tentatives automatiques suivent la [politique de réessai](https://docs.didit.me/fr/integration/webhooks.md#politique-de-nouvelles-tentatives), et chacune apparaît comme une entrée distincte. Pour renvoyer une livraison après avoir corrigé votre endpoint, appelez [Renvoyer une livraison de destination de webhook](https://docs.didit.me/fr/management-api/webhook/resend-delivery.md). Pour obtenir les totaux sur une période, utilisez [Obtenir les analyses de destination de webhook](https://docs.didit.me/fr/management-api/webhook/destination-analytics.md).


## OpenAPI

````yaml fr/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/
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/webhook/destinations/{destination_uuid}/deliveries/:
    get:
      tags:
        - Webhook
      summary: Lister les livraisons vers les destinations de webhook
      description: "Parcourez chaque tentative de livraison vers une destination de webhook, de la plus récente à la plus ancienne. Le premier envoi de chaque événement, chaque [nouvelle tentative](https://docs.didit.me/fr/integration/webhooks#politique-de-nouvelles-tentatives) automatique et chaque renvoi constituent des entrées distinctes. Les entrées indiquent le statut HTTP et le temps de réponse mais pas le payload\_: récupérez une livraison pour lire ses en-têtes et son corps. `count` est exact jusqu'à 100 et affiche 100 au-delà, suivez donc `next` jusqu'à ce qu'il soit `null`. Les historiques de livraison sont conservés environ 30 jours. Une clé API avec des autorisations restreintes requiert `webhooks: read` et `decisions: read`\_; une clé limitée à certains workflows ou aux sessions approuvées ne peut pas utiliser cet endpoint."
      operationId: list_webhook_destination_deliveries
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: >-
            UUID de la destination (le `uuid` renvoyé par `GET
            /v3/webhook/destinations/`).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
        - name: limit
          in: query
          required: false
          description: "Nombre maximal de livraisons par page. Vaut par défaut 50. Une valeur qui n'est pas un entier positif revient à 50\_; une valeur supérieure à 1000000 renvoie `400`."
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 50
        - name: offset
          in: query
          required: false
          description: >-
            Nombre de livraisons à ignorer. Vaut 0 par défaut. Privilégiez
            l'utilisation des URL `next` et `previous` de la réponse.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 0
        - name: date_from
          in: query
          required: false
          description: >-
            Premier jour UTC à inclure, au format `YYYY-MM-DD` (inclus). Omettez
            pour démarrer à partir de la livraison la plus ancienne disponible.
            `dateFrom` est accepté comme alias.
          schema:
            type: string
            format: date
          example: '2026-10-01'
        - name: date_to
          in: query
          required: false
          description: >-
            Dernier jour UTC à inclure, au format `YYYY-MM-DD` (inclus). Ne doit
            pas être antérieur à `date_from`. `dateTo` est accepté en tant
            qu'alias.
          schema:
            type: string
            format: date
          example: '2026-10-16'
      responses:
        '200':
          description: Une page de livraisons, de la plus récente à la plus ancienne.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    minimum: 0
                    description: >-
                      Livraisons correspondantes, exactes jusqu'à 100 et
                      plafonnées à 100 au-delà. Utilisez `next` pour savoir si
                      d'autres pages existent.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolue de la page suivante, ou `null` sur la dernière
                      page.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolue de la page précédente, ou `null` sur la
                      première page.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookDestinationDelivery'
              examples:
                Failed delivery, its retry and a queued event:
                  value:
                    count: 3
                    next: null
                    previous: null
                    results:
                      - uuid: 66666666-7777-8888-9999-000000000003
                        session_id: null
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: null
                        response_time_ms: null
                        status: APPROVED
                        webhook_type: transaction.created
                        created_at: '2026-10-15T09:23:02.871190Z'
                      - uuid: 66666666-7777-8888-9999-000000000002
                        session_id: 22222222-3333-4444-5555-666666666666
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: 200
                        response_time_ms: 143
                        status: In Progress
                        webhook_type: status.updated
                        created_at: '2026-10-15T09:22:19.104233Z'
                      - uuid: 66666666-7777-8888-9999-000000000001
                        session_id: 22222222-3333-4444-5555-666666666666
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: 503
                        response_time_ms: 412
                        status: In Progress
                        webhook_type: status.updated
                        created_at: '2026-10-15T09:21:18.412345Z'
        '400':
          description: >-
            `date_from` ou `date_to` n'est pas une date au format `YYYY-MM-DD`,
            `date_to` est antérieure à `date_from`, ou `limit` ou `offset` est
            supérieur à 1000000 (cette erreur est un tableau de messages JSON).
          content:
            application/json:
              examples:
                Malformed date:
                  value:
                    date_from:
                      - >-
                        Date has wrong format. Use one of these formats instead:
                        YYYY-MM-DD.
                Reversed range:
                  value:
                    date_to:
                      - date_to must be greater than or equal to date_from.
                Limit too large:
                  value:
                    - limit must not exceed 1000000.
        '401':
          description: >-
            La clé API a expiré : elle a été créée avec une date d'expiration
            qui est dépassée. Une clé incorrecte ou révoquée reçoit également un
            code `401` ; une clé manquante reçoit un code `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La requête n'est pas autorisée. Un en-tête `x-api-key` manquant,
            invalide ou révoqué renvoie `You do not have permission to perform
            this action.` Une clé avec restriction de portée sans l'accès requis
            par cet endpoint renvoie un message indiquant l'accès manquant, et
            une clé utilisée en dehors de sa liste d'autorisation d'adresses IP
            renvoie `This API key can't be used from this IP address.` Une clé
            limitée à certains workflows ou à des sessions approuvées renvoie
            `This API key only reaches sessions inside its workflow or status
            limits, so it can't use this endpoint.`
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without webhooks read:
                  value:
                    detail: This API key has no read access to webhooks.
                Scoped key without decisions read:
                  value:
                    detail: This API key has no read access to decisions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            Aucune destination avec cet UUID n'existe pour l'application, ou
            elle a été supprimée.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Destination not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: >-
            Limite de débit dépassée : plus de 600 requêtes GET dans la fenêtre
            actuelle d'une minute pour cette clé API. Attendez `Retry-After`
            secondes avant de réessayer.
          headers:
            Retry-After:
              description: Secondes à attendre avant de réessayer.
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: Requêtes autorisées dans la fenêtre d'une minute (600).
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: Requêtes restantes dans la fenêtre actuelle.
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: >-
                Temps Unix (en secondes) auquel la fenêtre actuelle se
                réinitialise.
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: Nom du budget qui a été dépassé.
              schema:
                type: string
                example: generic-get
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Message d'erreur lisible par l'humain.
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/?limit=50&date_from=2026-10-01'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

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


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            for await (const item of
            didit.webhooks.destinations.listDeliveries("11111111-2222-3333-4444-555555555555"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Webhooks.Destinations.ListDeliveriesAutoPaging(ctx, \"11111111-2222-3333-4444-555555555555\", didit.WebhooksDestinationsListDeliveriesParams{})\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 client = new Didit();


            for (var item :
            client.webhooks().destinations().listDeliveries("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 = new DiditClient();


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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            didit.webhooks.destinations.list_deliveries("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.

            using var client = new DiditClient();


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

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    WebhookDestinationDelivery:
      type: object
      description: >-
        Une tentative de livraison vers une destination de webhook. Le premier
        envoi d'un événement, chaque nouvelle tentative automatique et chaque
        renvoi constituent des livraisons distinctes.
      required:
        - uuid
        - session_id
        - request_url
        - response_status
        - response_time_ms
        - status
        - webhook_type
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            ID de livraison, pour les appels de consultation détaillée et de
            renvoi.
        session_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Session de vérification d'utilisateur concernée par l'événement.
            `null` pour les événements de session d'entreprise, ainsi que pour
            les événements utilisateur, entreprise, de transaction, de Travel
            Rule et de workflow.
        request_url:
          type: string
          format: uri
          nullable: true
          description: "URL à laquelle la livraison a été envoyée\_: l'URL de la destination au moment où l'événement a été généré."
        response_status:
          type: integer
          nullable: true
          description: >-
            Code d'état HTTP renvoyé par votre endpoint. `null` tant que la
            livraison est en file d'attente et n'a pas encore été tentée.
            Lorsqu'aucune réponse HTTP n'a été reçue, Didit enregistre son
            propre statut : `504` lorsque votre endpoint n'a pas répondu dans un
            délai de 5 secondes, `503` en cas d'échec de connexion, `400`
            lorsque l'URL a été rejetée car non sécurisée (par exemple une
            adresse privée ou interne), et `404` pour toute autre erreur de
            requête. Un code supérieur ou égal à `400` est considéré comme une
            livraison échouée.
        response_time_ms:
          type: integer
          nullable: true
          minimum: 0
          description: >-
            Durée de la tentative, en millisecondes. `null` tant que la
            livraison est dans la file d'attente.
        status:
          type: string
          nullable: true
          description: >-
            Statut signalé par l'événement lors de sa génération : le statut de
            la session pour les événements de session (par exemple `Approved` ou
            `In Review`), le statut de la personne ou de l'entreprise pour les
            événements utilisateur et entreprise, et le statut de la transaction
            pour les événements de transaction. `null` pour les événements ne
            comportant aucun statut.
        webhook_type:
          $ref: '#/components/schemas/WebhookEvent'
        created_at:
          type: string
          format: date-time
          description: Date et heure de création de la livraison.
    WebhookEvent:
      type: string
      description: >-
        Nom d'événement webhook pris en charge. Utilisez ces chaînes exactes
        dans `subscribed_events` ; les valeurs non prises en charge sont
        rejetées.
      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 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.

````

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