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

# قائمة تسليمات Webhook API

> تصفّح جميع محاولات تسليم webhook إلى وجهة webhook واحدة في Didit، من الأحدث إلى الأقدم، مع حالة HTTP ووقت الاستجابة ونوع الحدث.



مطالبة API لسرد عمليات تسليم وجهة webhook
        نسخ الموجّه إلى الحافظة



      
      

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



      
      

الصق في

عمليات التسليم هي المحاولات التي أجرتها Didit لإرسال webhook إلى هذه الوجهة. تتبع عمليات إعادة المحاولة التلقائية [سياسة إعادة المحاولة](https://docs.didit.me/ar/integration/webhooks.md#سياسة-إعادة-المحاولة) ويظهر كل منها كإدخال مستقل. لإعادة إرسال عملية تسليم بعد إصلاح الـ endpoint لديك، استدعِ [إعادة إرسال تسليم وجهة webhook](https://docs.didit.me/ar/management-api/webhook/resend-delivery.md). للحصول على الإجماليات خلال فترة زمنية، استخدم [الحصول على تحليلات وجهة webhook](https://docs.didit.me/ar/management-api/webhook/destination-analytics.md).


## OpenAPI

````yaml ar/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 التحقق من الهوية. قم بالمصادقة باستخدام الرأس x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/{destination_uuid}/deliveries/:
    get:
      tags:
        - Webhook
      summary: عرض قائمة بعمليات التسليم إلى وجهة webhook
      description: >-
        تصفح كل محاولات التسليم إلى وجهة webhook واحدة عبر الصفحات، الأحدث
        أولاً. يُعد الإرسال الأول لكل حدث، وكل [إعادة
        محاولة](https://docs.didit.me/ar/integration/webhooks#سياسة-إعادة-المحاولة)
        تلقائية، وكل إعادة إرسال مدخلات منفصلة. تتضمن المدخلات حالة HTTP ووقت
        الاستجابة ولكن لا تتضمن payload: قم بجلب عملية تسليم واحدة لقراءة رؤوسها
        ومتنها. تكون قيمة `count` دقيقة حتى 100 وتقرأ 100 لما هو أعلى من ذلك،
        لذا اتبع `next` حتى تصبح `null`. تتوفر سجلات التسليم لمدة 30 يومًا
        تقريبًا. يتطلب مفتاح API محدد النطاق `webhooks: read` و `decisions:
        read`؛ ولا يمكن لمفتاح يقتصر على بعض مسارات سير العمل أو الجلسات
        المقبولة استخدام هذا الـ endpoint.
      operationId: list_webhook_destination_deliveries
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: >-
            معرّف UUID للوجهة (الـ `uuid` المُرجع بواسطة `GET
            /v3/webhook/destinations/`).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
        - name: limit
          in: query
          required: false
          description: >-
            الحد الأقصى لعدد عمليات التسليم لكل صفحة. القيمة الافتراضية هي 50.
            أي قيمة ليست عدداً صحيحاً موجباً تعود تلقائياً إلى 50؛ وأي قيمة تزيد
            عن 1000000 تُرجع `400`.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 50
        - name: offset
          in: query
          required: false
          description: >-
            عدد عمليات التسليم المراد تخطيها. القيمة الافتراضية هي 0. يُفضّل
            تتبّع رابطي `next` و`previous` من الاستجابة.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 0
        - name: date_from
          in: query
          required: false
          description: >-
            أول يوم بتوقيت UTC لتضمينه، بالصيغة `YYYY-MM-DD` (شاملاً ذلك اليوم).
            اتركه فارغاً للبدء من أقدم تسليم متاح. يُقبل `dateFrom` كاسم بديل.
          schema:
            type: string
            format: date
          example: '2026-10-01'
        - name: date_to
          in: query
          required: false
          description: >-
            آخر يوم بتوقيت UTC يتم تضمينه، بصيغة `YYYY-MM-DD` (شامل). يجب ألا
            يكون أقدم من `date_from`. يُقبل `dateTo` كاسم بديل.
          schema:
            type: string
            format: date
          example: '2026-10-16'
      responses:
        '200':
          description: صفحة واحدة من عمليات التسليم، الأحدث أولاً.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    minimum: 0
                    description: >-
                      عمليات التسليم المطابقة، دقيقة حتى 100 وبحد أقصى 100 بعد
                      ذلك. استخدم `next` لمعرفة ما إذا كانت هناك صفحات إضافية.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة التالية، أو `null` في الصفحة الأخيرة.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة السابقة، أو `null` في الصفحة الأولى.
                  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` أو `date_to` ليست تاريخاً بصيغة `YYYY-MM-DD`، أو
            `date_to` يسبق `date_from`، أو `limit` أو `offset` أكبر من 1000000
            (هذا الخطأ يكون عبارة عن مصفوفة 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: >-
            انتهت صلاحية مفتاح API: تم إنشاؤه مع تاريخ انتهاء قد مضى. يتلقى
            المفتاح الخاطئ أو الملغى أيضاً `401`؛ ويتلقى المفتاح المفقود `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            الطلب غير مسموح به. عند فقدان `x-api-key` أو عدم صلاحيته أو إلغائه،
            تتلقى `You do not have permission to perform this action.`. يحصل
            المفتاح ذو النطاق المحدود الذي يفتقر إلى الوصول الذي يتطلبه هذا
            endpoint على رسالة تذكر نوع الوصول المفقود، والمفتاح المستخدم من
            خارج قائمة العناوين المسموح بها الخاصة به يتلقى `This API key can't
            be used from this IP address.`. المفتاح المقتصر على بعض مسارات سير
            العمل أو على الجلسات المقبولة يتلقى `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: رسالة خطأ سهلة القراءة.
              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: لا توجد وجهة بهذا المعرّف UUID للتطبيق، أو قد تم حذفها.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Destination not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: >-
            تم تجاوز حد المعدل: أكثر من 600 طلب GET في نافذة الدقيقة الواحدة
            الحالية لمفتاح API هذا. انتظر لعدد الثواني المحدد في `Retry-After`
            قبل إعادة المحاولة.
          headers:
            Retry-After:
              description: عدد الثواني الواجب انتظارها قبل إعادة المحاولة.
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: الطلبات المسموح بها خلال نافذة الدقيقة الواحدة (600).
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: الطلبات المتبقية في النافذة الحالية.
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: توقيت Unix (بالثواني) عند إعادة تعيين النافذة الحالية.
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: اسم الميزانية التي تم تجاوزها.
              schema:
                type: string
                example: generic-get
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              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: >-
        محاولة تسليم واحدة إلى وجهة webhook. يعتبر الإرسال الأول للحدث، وكل
        إعادة محاولة تلقائية، وكل إعادة إرسال عمليات تسليم منفصلة.
      required:
        - uuid
        - session_id
        - request_url
        - response_status
        - response_time_ms
        - status
        - webhook_type
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: معرّف التسليم، لطلبات التفاصيل وإعادة الإرسال.
        session_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            جلسة التحقق من المستخدمين التي يتعلق بها الحدث. `null` لأحداث جلسة
            الشركة، والمستخدم، والشركة، والمعاملة، وTravel Rule، وسير العمل.
        request_url:
          type: string
          format: uri
          nullable: true
          description: >-
            رابط URL الذي أُرسل إليه التسليم: رابط URL الخاص بالوجهة عند إنشاء
            الحدث.
        response_status:
          type: integer
          nullable: true
          description: >-
            حالة HTTP التي أرجعها الـ endpoint الخاص بك. `null` طالما أن التسليم
            في قائمة الانتظار ولم تتم محاولته بعد. عندما لا يتم تلقي أي استجابة
            HTTP، تسجل Didit حالة خاصة بها: `504` عندما لم يُجب الـ endpoint
            الخاص بك في غضون 5 ثوانٍ، و`503` لفشل الاتصال، و`400` عندما تم رفض
            عنوان URL لعدم أمانه (على سبيل المثال عنوان خاص أو داخلي)، و`404`
            لأي خطأ آخر في الطلب. يُعتبر الرمز `400` أو أعلى تسليمًا فاشلاً.
        response_time_ms:
          type: integer
          nullable: true
          minimum: 0
          description: >-
            الوقت الذي استغرقته المحاولة بالمللي ثانية. يكون `null` عندما يكون
            التسليم في قائمة الانتظار.
        status:
          type: string
          nullable: true
          description: >-
            الحالة التي أبلغ عنها الحدث عند إنشائه: حالة الجلسة لأحداث الجلسة
            (على سبيل المثال `Approved` أو `In Review`)، وحالة الشخص أو الشركة
            لأحداث المستخدم والشركة، وحالة المعاملة لأحداث المعاملات. وتكون
            `null` للأحداث التي لا تحمل أي حالة.
        webhook_type:
          $ref: '#/components/schemas/WebhookEvent'
        created_at:
          type: string
          format: date-time
          description: وقت إنشاء التسليم.
    WebhookEvent:
      type: string
      description: >-
        اسم حدث webhook المدعوم. استخدم هذه النصوص بدقة في `subscribed_events`؛
        حيث يتم رفض القيم غير المدعومة.
      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: >-
        مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console.
        يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا
        شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات
        المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن
        المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم
        إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو
        الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير
        404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة
        بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL
        للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك
        إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع
        https://docs.didit.me/console/api-keys.

````

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