> ## 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: Management API

> جلب وجهة webhook مع سر التوقيع والأحداث المشترك بها وحالة التشغيل وملخص التسليم لآخر 30 يومًا عبر Didit Management API. الدفع لكل استدعاء.



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



      
      

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



      
      

الصق في

تتضمن الاستجابة حقول حالة التشغيل نفسها الموجودة في [القائمة](https://docs.didit.me/ar/management-api/webhook/list-destinations.md#حالة-تشغيل-الوجهة)، بالإضافة إلى `summary` لآخر 30 يومًا.## ذات صلة- [عرض وجهات webhook](https://docs.didit.me/ar/management-api/webhook/list-destinations.md): كل وجهة مع حالة تشغيلها وأعداد عمليات التسليم اليومية.
- [دليل webhook](https://docs.didit.me/ar/integration/webhooks.md#التحقق-من-التوقيع): كيفية التحقق من التوقيعات، بما في ذلك أثناء تدوير السر.


## OpenAPI

````yaml ar/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/
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}/:
    get:
      tags:
        - Webhook
      summary: الحصول على وجهة webhook
      description: >-
        استرداد وجهة webhook واحدة مع سر التوقيع `secret_shared_key` الخاص بها،
        وحالة التشغيل (`health_status`، `failing_streak`، `failing_since`،
        `last_success_at`) و`summary` لعمليات التسليم لآخر 30 يوماً. يتلقى
        المتصلون عبر مفتاح API السر دائماً بالكامل؛ بينما يرى مستخدمو لوحة
        التحكم الذين لا يملكون `read:webhooks` سلسلة فارغة.
      operationId: get_webhook_destination
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: معرّف UUID للوجهة (الـ `uuid` المُرجع من الإنشاء / الإدراج).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: تفاصيل وجهة 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: >-
                      سر توقيع HMAC (token آمن في عناوين URL بطول 43 حرفًا).
                      يُعاد دائمًا بالكامل للمستدعين عبر مفتاح API؛ يحتاج
                      مستخدمو لوحة التحكم إلى إذن `read:webhooks`، وإلا فسيكون
                      نصًا فارغًا.
                  secret_last4:
                    type: string
                    description: >-
                      آخر أربعة أحرف من سر التوقيع الحالي للوجهة، لتتمكن من
                      التمييز بين الأسرار. غير كافية للتحقق من التوقيع.
                  previous_secret_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      يُعيَّن لمدة 24 ساعة بعد تدوير سر التوقيع للوجهة في
                      Business Console. حتى هذا الوقت، يحمل كل تسليم إلى الوجهة
                      أيضاً `X-Signature-Previous` و `X-Signature-V2-Previous` و
                      `X-Signature-Simple-Previous`، المنشأة باستخدام السر
                      المُستبدل (انظر [التحقق من
                      التوقيع](/ar/integration/webhooks#التحقق-من-التوقيع)).
                      تكون القيمة `null` في حال عدم حدوث أي تدوير خلال آخر 24
                      ساعة.
                  subscribed_events:
                    $ref: '#/components/schemas/WebhookSubscribedEvents'
                  created_by_email:
                    type: string
                    nullable: true
                    description: >-
                      البريد الإلكتروني لعضو Business Console الذي أنشأ الوجهة.
                      يكون `null` بالنسبة للوجهة التي تم إنشاؤها باستخدام مفتاح
                      API.
                  created_by_name:
                    type: string
                    nullable: true
                    description: >-
                      اسم عضو Business Console الذي أنشأ الوجهة. `null` لوجهة تم
                      إنشاؤها باستخدام مفتاح API.
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                  health_status:
                    type: string
                    enum:
                      - healthy
                      - degraded
                      - failing
                    description: >-
                      حالة التشغيل للتسليم. `failing`: فشل 3 أحداث متتالية أو
                      أكثر في أول محاولة تسليم لها منذ آخر استجابة ناجحة للوجهة
                      (راجع `failing_streak`). `degraded`: ليست في حالة failing،
                      ولكن فشلت محاولة تسليم خلال آخر 24 ساعة ولم تنجح أي محاولة
                      لاحقة في تسليم ذلك الحدث؛ وستؤدي إعادة المحاولة أو إعادة
                      الإرسال التي تنجح في تسليمه إلى محو هذه الحالة. `healthy`:
                      ليست في أي من الحالتين السابقتين. مستقلة عن `enabled`.
                      المحاولة الفاشلة هي المحاولة التي تمت الاستجابة لها برمز
                      HTTP 400 أو أعلى، أو لم تتم الاستجابة لها على الإطلاق.
                  failing_streak:
                    type: integer
                    description: >-
                      عدد الأحداث المتتالية التي فشلت محاولة تسليمها الأولى منذ
                      آخر استجابة ناجحة للوجهة، خلال آخر 30 يوماً. لا تُحتسب
                      عمليات إعادة المحاولة، وأي محاولة ناجحة، بما في ذلك إعادة
                      المحاولة أو إعادة الإرسال، تنهي سلسلة الفشل. تكون القيمة
                      `0` عندما لا يفشل أي حدث منذ آخر نجاح.
                  failing_since:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      وقت إجراء أول محاولة فاشلة في `failing_streak` الحالية.
                      تكون القيمة `null` عندما تكون `failing_streak` تساوي `0`.
                  last_success_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      وقت آخر استجابة من الوجهة لتسليم بحالة HTTP أقل من 400،
                      خلال آخر 30 يوماً. وتكون القيمة `null` إذا لم تُجب خلال
                      تلك الفترة بتسليم ذي حالة HTTP أقل من 400.
                  environment:
                    type: string
                    enum:
                      - live
                      - sandbox
                    description: بيئة التطبيق الذي يملك الوجهة.
                  summary:
                    type: object
                    description: >-
                      مقاييس التسليم لآخر `metrics_window_days` (30) يوماً.
                      `last_delivery_at` هي أحدث محاولة، بغض النظر عن وقت
                      إجرائها.
                    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: >-
                          طول النافذة الزمنية بالأيام التي تغطيها مقاييس الملخص
                          الأخرى. القيمة دائماً `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: >-
            مفتاح API مفقود أو غير صالح أو منتهي الصلاحية أو مخصص لتطبيق مختلف.
            يُرجع المفتاح المفقود رمز الحالة `403`؛ بينما يُرجع المفتاح الخاطئ
            أو الملغى أو منتهي الصلاحية رمز الحالة `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            لا توجد وجهة بهذا المعرّف UUID، أو أنها تنتمي إلى تطبيق مختلف، أو قد
            تم حذفها.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: تم تجاوز حد المعدل؛ تراجع مؤقتاً وأعد المحاولة.
          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: >-
        أداة تصفية الأحداث لوجهة webhook هذه. تسلّم Didit فقط إشعارات webhook
        التي يتطابق نوع الحدث الخاص بها تماماً مع إحدى هذه القيم — لا يوجد
        اشتراك باستخدام أحرف البدل. عند الإرسال، يجب أن تحتوي القائمة على حدث
        صالح واحد على الأقل (يتم رفض `[]` الصريحة بالرمز 400)؛ والوجهة التي تكون
        قائمتها فارغة (تم إغفال الحقل عند الإنشاء) لا تتلقى أي شيء. عند التحديث،
        يتم استبدال القائمة بالكامل ولا تُدمج أبداً.
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    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.