> ## Documentation Index
> Fetch the complete documentation index at: https://docs.benzinga.com/llms.txt
> Use this file to discover all available pages before exploring further.

# اختبار تسليم Webhook

> ستُرسل نقطة النهاية هذه بيانات اختبار إلى نقطة الـ webhook الخاصة بك حتى تتمكن من التحقق من صحة عملية التكامل

<div id="overview">
  ## نظرة عامة
</div>

استخدم نقطة النهاية هذه لاستدعاء إرسال Webhook تجريبي إلى نقطة النهاية التي قمت بإعدادها. يتيح لك ذلك التحقق من أن تكامل Webhook الخاص بك يعمل بشكل صحيح قبل البدء في تلقي بيانات الإنتاج المباشرة.

<div id="testing-your-integration">
  ## اختبار التكامل الخاص بك
</div>

عند استدعاء نقطة النهاية هذه، سترسل Benzinga حمولة Webhook تجريبية إلى عنوان URL الوجهة `destination` الذي قمت بإعداده. يتبع هذا التسليم التجريبي نفس التنسيق ومنطق إعادة المحاولة المستخدم في عمليات تسليم Webhook في بيئة الإنتاج.

<div id="what-to-expect">
  ### ما الذي يجب توقّعه
</div>

1. **استجابة فورية**: تُرجِع واجهة برمجة التطبيقات API رمز حالة `200` إذا تم تشغيل التسليم الاختباري بنجاح
2. **حمولة اختبارية**: تتلقى نقطة webhook النهائية لديك حمولة اختبارية بنفس تنسيق بيانات بيئة الإنتاج
3. **ترويسات التسليم**: يتضمّن التسليم الاختباري الترويسة `X-BZ-Delivery` تمامًا كما في عمليات التسليم في بيئة الإنتاج

<div id="verify-your-integration">
  ### التحقق من تكاملك
</div>

استخدم نقطة النهاية هذه للتأكد مما يلي:

* أن نقطة نهاية Webhook لديك متاحة للوصول إليها من الإنترنت بشكل عام
* أن نقطة النهاية الخاصة بك يمكنها معالجة تنسيق حمولة Webhook بشكل صحيح
* أن نقطة النهاية الخاصة بك تستجيب برموز الحالة المناسبة (2xx للنجاح)
* أن نقطة النهاية الخاصة بك تستجيب خلال مهلة 30 ثانية
* أن منطق idempotency لديك يتعامل بشكل صحيح مع ترويسة `X-BZ-Delivery` وحقل `id` في الحمولة

<div id="best-practices">
  ## أفضل الممارسات
</div>

* اختبر أولاً باستخدام نقاط نهاية webhook غير الخاصة ببيئة الإنتاج
* تحقق من أن نقطة النهاية تستجيب برموز الحالة `200` أو `204`
* تأكد من أن التسجيل والمراقبة لديك يلتقطان عملية التسليم التجريبية
* تحقق من أن منطق إزالة التكرار لديك يعمل مع معرّف التسليم التجريبي
* اختبر سيناريوهات الأخطاء عن طريق إرجاع رموز حالة خطأ بشكل مؤقت

<div id="troubleshooting">
  ## استكشاف الأخطاء وإصلاحها
</div>

<div id="424-delivery-error">
  ### 424 خطأ في التسليم
</div>

إذا تلقيت رمز حالة `424`، فهذا يعني أن النظام لم يتمكن من تسليم الحمولة الاختبارية إلى نقطة النهاية الوجهة. من الأسباب الشائعة:

* عنوان URL للوجهة غير متاح للوصول العام
* نقطة نهاية الوجهة تُرجع رموز حالة خطأ
* مشكلات في اتصال الشبكة
* أخطاء في شهادة SSL/TLS على نقطة نهاية الوجهة

<div id="400-invalid-request">
  ### 400 طلب غير صالح
</div>

تحقَّق من توفير جميع المعلمات المطلوبة وتنسيقها بشكل صحيح:

* يجب أن يكون `destination` عنوان URL صالحًا عبر HTTPS
* يجب أن تكون قيمة `version` هي `webhook/v1`
* يجب أن تكون قيمة `kind` أحد أنواع الأحداث المدعومة (مثلًا، `News/v1`، `Earnings/v1`، `Ratings/v1`، إلخ)

<ResponseExample>
  ```json Response (200 OK) theme={null}
  {
    "status": "success"
  }
  ```

  ```json Response (400 Bad Request) theme={null}
  {
    "error": "Invalid destination URL"
  }
  ```

  ```json Response (424 Failed Dependency) theme={null}
  {
    "error": "Failed to deliver test payload to destination"
  }
  ```

  ```json Response (401 Unauthorized) theme={null}
  {
    "ok": false,
    "errors": [
      {
        "code": "auth_failed",
        "id": "unauthorized",
        "value": "Invalid or missing authentication token"
      }
    ]
  }
  ```

  ```json Response (404 Not Found) theme={null}
  {
    "ok": false,
    "errors": [
      {
        "code": "no_data_found",
        "id": "not_found",
        "value": "No data found for the specified parameters"
      }
    ]
  }
  ```

  ```json Response (500 Internal Server Error) theme={null}
  {
    "ok": false,
    "errors": [
      {
        "code": "internal_server_error",
        "id": "server_error",
        "value": "An unexpected error occurred while processing your request"
      }
    ]
  }
  ```
</ResponseExample>


## OpenAPI

````yaml ar/openapi/webhook_api.spec.yml GET /api/v1/webhook/test
openapi: 3.0.0
info:
  contact: {}
  description: اختبر تسليم الـ webhook للتأكد من أن التكامل لديك يعمل بشكل صحيح
  title: Webhook API
  version: 1.0.0
servers:
  - url: https://api.benzinga.com
security: []
paths:
  /api/v1/webhook/test:
    get:
      summary: اختبار تسليم الـ Webhook
      description: >-
        ستُرسل نقطة النهاية هذه بيانات اختبار إلى نقطة الـ webhook الخاصة بك حتى
        تتمكن من التحقق من صحة عملية التكامل
      operationId: get-webhook-test
      parameters:
        - name: destination
          in: query
          required: true
          description: عنوان url لنقطة نهاية webhook التي ستُرسل إليها بيانات الاختبار
          schema:
            type: string
            format: uri
          example: https://your-endpoint.com/webhook
        - name: version
          in: query
          required: true
          description: 'إصدار واجهة برمجة التطبيقات API الحالي: webhook/v1'
          schema:
            type: string
            enum:
              - webhook/v1
            default: webhook/v1
        - name: kind
          in: query
          required: true
          description: يُحدِّد قيمة الحقل kind في حمولة الاختبار
          schema:
            type: string
            enum:
              - News/v1
              - Signals/v1
              - Earnings/v1
              - Ratings/v1
              - Dividends/v1
              - IPOs/v1
              - Guidance/v1
              - Splits/v1
              - OptionActivity/v1
              - Conference/v1
              - Economics/v1
              - Offerings/v1
              - MA/v1
              - Retail/v1
              - FDA/v1
              - WIIMs/v1
              - SECInsiderTransaction/v1
              - GovernmentTrade/v1
            default: News/v1
        - name: token
          in: query
          required: false
          description: حدِّد رمز الوصول ليتم تهيئة البيانات للاستخدام في بيئة الإنتاج
          schema:
            type: string
      responses:
        '200':
          description: نجاح - تم إرسال اختبار تسليم Webhook بنجاح
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
        '400':
          description: طلب غير صالح - تحقّق من محتوى الاستجابة للاطّلاع على التفاصيل
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid destination URL
        '424':
          description: خطأ في التسليم - واجه النظام خطأ أثناء تسليم البيانات الاختبارية
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Failed to deliver test payload to destination
        '500':
          description: خطأ داخلي في الخادم
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Internal server error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Key
      description: مفتاح واجهة برمجة التطبيقات (API) الخاص بك من Benzinga

````