> ## 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 اختبارية إلى عنوان `destination` URL الذي قمت بتكوينه. يتّبع هذا الإرسال الاختباري نفس التنسيق ومنطق إعادة المحاولة كما في عمليات تسليم 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`

<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

````