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

> اعرض أحداث المراقبة في Didit مع تصفية حسب الفئة والحالة والموضوع والجهاز وعنوان IP ومرجع الدفع والنافذة الزمنية، الأحدث أولاً.

موجّه واجهة API لعرض أحداث المراقبة
نسخ الموجّه إلى الحافظة

<pre>
  \`List and filter the monitoring events (logins, sessions, gameplay, bonuses, payments, disputes, security changes) stored for my Didit application.

  Endpoint:
  GET [https://verification.didit.me/v3/events/](https://verification.didit.me/v3/events/)

  Authentication:
  Use the x-api-key header with my Didit API key. A scoped key needs transactions: read.

  Goal:

  * Search events for a back-office screen, an export job or an investigation: for example every payment and dispute event a rule matched last week, or every event from one device fingerprint or IP address.

  Behavior:

  * Newest occurred\_at first. Paginated with limit (default 50) and offset; follow next until it is null.
  * count is exact up to 100 and capped at 100 above that, so never use it to compute the number of pages.
  * Every filter is optional and filters combine with AND. Multi-value filters repeat the parameter (?event\_category=payment\&event\_category=dispute) and match any of the values.
  * Filters: event\_category, action\_type, status, retention\_class (multi-value); subject\_vendor\_data, subject\_entity\_type (company for a company, any other value for an individual), business\_vendor\_data, session\_id, device\_fingerprint, ip\_address, game\_id, round\_id, affiliate\_code, payment\_reference\_id, counterparty\_vendor\_data (exact match); matched\_only=true; occurred\_from and occurred\_to (inclusive; ISO 8601 with Z or an offset whose + is sent as %2B, for example 2026-10-17T09:00:00Z, or a date alone, which means 00:00 UTC of that day); search (case-insensitive substring of event\_id, action\_type, subject\_vendor\_data or counterparty\_vendor\_data).
  * Each result is a summary. Call GET /v3/events/{event_uuid}/ for the payload, device context, IP enrichment and rule evidence.
  * For one subject, prefer GET /v3/events/subjects/{vendor_data}/, which keeps an individual and a company with the same vendor\_data apart.
  * Reads work whether or not event ingestion is switched on.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/?event\_category=payment\&event\_category=dispute\&matched\_only=true\&limit=50](https://verification.didit.me/v3/events/?event_category=payment\&event_category=dispute\&matched_only=true\&limit=50)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * results\[].event\_uuid - Didit id of the event; use it as {event_uuid} in the detail and delete calls.
  * results\[].event\_id - your own id (the idempotency key you sent).
  * results\[].event\_category, action\_type, occurred\_at, received\_at.
  * results\[].status (ACCEPTED, APPROVED, IN\_REVIEW, DECLINED) and score.
  * results\[].rules\_matched\_count and correlation\_pending (true while an asynchronous rule still has to run).
  * results\[].ip\_country, device\_fingerprint, session\_id, amount, currency, payment\_reference\_id.
  * results\[].is\_droppable - whether an SDK under backpressure may drop events of this kind.
  * next - URL of the next page, or null.

  Failure modes:

  * 400 - limit or offset larger than 1000000.
  * 401 - the API key has expired.
  * 403 - missing API key (a wrong, revoked or expired key gets 401), a scoped key without transactions: read, or a request from outside the key's IP list.
  * 429 - more than 600 reads per minute for this API key; honor Retry-After.

  Side effects: none. This is a pure read.

  For the full integration shape, see /integration/integration-prompt.\`
</pre>

الصق في

تُحفظ الأحداث ضمن [فئات الاحتفاظ](https://docs.didit.me/ar/transaction-monitoring/events.md#الاحتفاظ-بالبيانات)، لذا لا يظهر الحدث هنا بعد انتهاء فئته. راجع [استيعاب الأحداث](https://docs.didit.me/ar/transaction-monitoring/events.md#قراءة-الأحداث-واسترجاعها) للاطلاع على مرجع التصفية، و[القواعد المطبقة على الأحداث](https://docs.didit.me/ar/transaction-monitoring/event-rules.md) لمعرفة ما يغيّر قيمة `rules_matched_count`.


## OpenAPI

````yaml ar/openapi-25.json GET /v3/events/
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/events/:
    get:
      tags:
        - Monitoring Events
      summary: عرض أحداث المراقبة
      description: >-
        عرض أحداث المراقبة المخزنة لتطبيقك، الأحدث بحسب `occurred_at` أولاً، مع
        عوامل تصفية اختيارية تتحد باستخدام AND. تُكرر عوامل التصفية متعددة القيم
        (`event_category`، و`action_type`، و`status`، و`retention_class`)
        المعامل وتطابق أيًا من القيم؛ أما عوامل التصفية الأخرى فتتطلب تطابقًا
        تامًا، وتؤدي القيم غير المعروفة ببساطة إلى عدم إرجاع أي أحداث. كل نتيجة
        تمثل ملخصًا: استدعِ `GET /v3/events/{event_uuid}/` للحصول على الـ
        payload، وسياق الجهاز، وإثراء IP، وأدلة القواعد، ويُفضل استخدام `GET
        /v3/events/subjects/{vendor_data}/` لسجل جهة معنية واحدة. تعمل عمليات
        القراءة سواء تم تفعيل استيعاب الأحداث أم لا. يتطلب مفتاح API محدد النطاق
        صلاحية `transactions: read`. راجع [استيعاب
        الأحداث](https://docs.didit.me/ar/transaction-monitoring/events).
      operationId: list_monitoring_events
      parameters:
        - name: limit
          in: query
          required: false
          description: >-
            الحد الأقصى لعدد الأحداث لكل صفحة. القيمة الافتراضية هي 50. تُرْجِع
            القيم التي تزيد عن 1000000 الرمز `400`؛ وأي قيمة غير عددية أو صفرية
            أو سالبة تعود تلقائياً إلى 50.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 50
        - name: offset
          in: query
          required: false
          description: >-
            عدد الأحداث المراد تخطيها. القيمة الافتراضية هي 0. يُفضّل تتبّع رابط
            `next` من الاستجابة.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 0
        - name: event_category
          in: query
          required: false
          description: >-
            الأحداث في هذه الفئات فقط. كرر المعامل لعدة قيم
            (`?event_category=payment&event_category=dispute`)؛ ويتم إرجاع أي
            حدث يطابق أيًا منها.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - auth
                - session
                - gameplay
                - bonus
                - affiliate
                - payment
                - dispute
                - security
                - responsible_gambling
                - custom
          example:
            - payment
            - dispute
        - name: action_type
          in: query
          required: false
          description: >-
            فقط الأحداث التي تتضمن أنواع الإجراءات هذه (مطابقة تامة، حساسة لحالة
            الأحرف). كرر لعدة قيم.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - deposit_completed
            - chargeback_opened
        - name: status
          in: query
          required: false
          description: فقط الأحداث التي لها هذه الحالات. كرر لعدة قيم.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACCEPTED
                - APPROVED
                - IN_REVIEW
                - DECLINED
          example:
            - IN_REVIEW
            - DECLINED
        - name: retention_class
          in: query
          required: false
          description: الأحداث في فئات الاحتفاظ هذه فقط. كرر لعدة قيم.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - low_value
                - standard
                - risk_relevant
                - monetary_or_compliance
          example:
            - risk_relevant
        - name: subject_vendor_data
          in: query
          required: false
          description: >-
            تطابق تام في `vendor_data` الخاص بالموضوع. يمكن للمعرّف نفسه أن يسمي
            فرداً وشركة؛ أضف `subject_entity_type` لاختيار أحدهما، أو استخدم
            `GET /v3/events/subjects/{vendor_data}/`.
          schema:
            type: string
          example: user-42
        - name: subject_entity_type
          in: query
          required: false
          description: >-
            يعيد `company` أحداث كيانات الشركات فقط؛ وأي قيمة أخرى غير فارغة
            (على سبيل المثال `individual`) تعيد أحداث الأفراد فقط. احذفه لإعادة
            كليهما.
          schema:
            type: string
            enum:
              - individual
              - company
          example: individual
        - name: business_vendor_data
          in: query
          required: false
          description: تطابق تام في `business.vendor_data` المرسل مع الحدث.
          schema:
            type: string
          example: merchant-7
        - name: session_id
          in: query
          required: false
          description: تطابق تام في `session.session_id`.
          schema:
            type: string
          example: web-session-abc
        - name: device_fingerprint
          in: query
          required: false
          description: تطابق تام في `device_context.fingerprint`.
          schema:
            type: string
          example: fp-a8c1
        - name: ip_address
          in: query
          required: false
          description: تطابق تام في عنوان IP الخاص بالحدث.
          schema:
            type: string
          example: 203.0.113.42
        - name: game_id
          in: query
          required: false
          description: تطابق تام في `game_id` المُروَّج إلى المستوى الأعلى.
          schema:
            type: string
          example: poker-holdem-01
        - name: round_id
          in: query
          required: false
          description: تطابق تام مع `round_id` المُروَّج إلى المستوى الأعلى.
          schema:
            type: string
          example: round-88231
        - name: affiliate_code
          in: query
          required: false
          description: تطابق تام مع `affiliate_code` المُروَّج إلى المستوى الأعلى.
          schema:
            type: string
          example: aff-summer
        - name: payment_reference_id
          in: query
          required: false
          description: >-
            تطابق تام في مرجع الدفع (من
            `transaction_context.payment_reference_id` أو
            `payload.payment_reference_id`).
          schema:
            type: string
          example: dep_735
        - name: counterparty_vendor_data
          in: query
          required: false
          description: >-
            تطابق تام في `counterparty_vendor_data` المُروَّج إلى المستوى
            الأعلى.
          schema:
            type: string
          example: user-77
        - name: matched_only
          in: query
          required: false
          description: >-
            تُرجع القيمة `true` (وكذلك `1` أو `yes`، بدون تحسس لحالة الأحرف)
            الأحداث التي طابقت قاعدة واحدة على الأقل فقط (`rules_matched_count`
            أكبر من 0). وتُتجاهل أي قيمة أخرى.
          schema:
            type: boolean
            default: false
          example: true
        - name: occurred_from
          in: query
          required: false
          description: >-
            فقط الأحداث التي يكون فيها `occurred_at` في هذه اللحظة أو بعدها
            (شاملًا). أرسل قيمة بتنسيق ISO 8601: مثل `2026-10-01T00:00:00Z`، أو
            إزاحة صريحة مع ترميز `+` بنسبة مئوية (`2026-10-01T02:00:00%2B02:00`؛
            حيث يتم فك ترميز `+` غير المرمز كمسافة وتتعذر قراءة القيمة)، أو
            تاريخ بمفرده (`2026-10-01`)، وهو ما يعني 00:00:00 UTC من ذلك اليوم.
            تُقرأ القيمة بدون إزاحة على أنها بتوقيت UTC. لا تُقبل القيم بأي
            تنسيق آخر.
          schema:
            type: string
            format: date-time
          example: '2026-10-01T00:00:00Z'
        - name: occurred_to
          in: query
          required: false
          description: >-
            فقط الأحداث التي يكون فيها `occurred_at` في هذه اللحظة أو قبلها
            (شاملًا). التاريخ بمفرده يعني بداية ذلك اليوم، لذا فإن
            `occurred_to=2026-10-15` يستبعد بقية يوم 15 أكتوبر؛ أرسل
            `2026-10-15T23:59:59Z` لتضمينه. أرسل قيمة بتنسيق ISO 8601: مثل
            `2026-10-01T00:00:00Z`، أو إزاحة صريحة مع ترميز `+` بنسبة مئوية
            (`2026-10-01T02:00:00%2B02:00`؛ حيث يتم فك ترميز `+` غير المرمز
            كمسافة وتتعذر قراءة القيمة)، أو تاريخ بمفرده (`2026-10-01`)، وهو ما
            يعني 00:00:00 UTC من ذلك اليوم. تُقرأ القيمة بدون إزاحة على أنها
            بتوقيت UTC. لا تُقبل القيم بأي تنسيق آخر.
          schema:
            type: string
            format: date-time
          example: '2026-10-17T23:59:59Z'
        - name: search
          in: query
          required: false
          description: >-
            تطابق لسلسلة فرعية غير حساس لحالة الأحرف في `event_id` أو
            `action_type` أو `subject_vendor_data` أو
            `counterparty_vendor_data`.
          schema:
            type: string
          example: chargeback
      responses:
        '200':
          description: صفحة واحدة من ملخصات الأحداث.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitoringEventPage'
              examples:
                Payment and dispute events:
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - event_uuid: 11111111-2222-3333-4444-555555555555
                        event_id: chargeback-2026-10-16-000318
                        event_category: dispute
                        action_type: chargeback_opened
                        occurred_at: '2026-10-16T14:02:11Z'
                        received_at: '2026-10-16T14:02:12.418230Z'
                        status: IN_REVIEW
                        score: 60
                        subject_vendor_data: user-42
                        subject_entity_type: individual
                        subject_uuid: 66666666-7777-8888-9999-000000000000
                        counterparty_vendor_data: null
                        session_id: null
                        device_fingerprint: null
                        ip_address: null
                        ip_country: null
                        amount: '250.000000000000000000'
                        currency: EUR
                        game_id: null
                        round_id: null
                        bonus_id: null
                        affiliate_code: null
                        payment_reference_id: dep_735
                        retention_class: monetary_or_compliance
                        rules_matched_count: 1
                        correlation_pending: false
                        is_droppable: false
                      - event_uuid: 22222222-3333-4444-5555-666666666666
                        event_id: login-2026-10-15-000912
                        event_category: auth
                        action_type: login
                        occurred_at: '2026-10-15T08:30:00.120000Z'
                        received_at: '2026-10-15T08:30:00.734512Z'
                        status: ACCEPTED
                        score: 0
                        subject_vendor_data: user-42
                        subject_entity_type: individual
                        subject_uuid: 66666666-7777-8888-9999-000000000000
                        counterparty_vendor_data: null
                        session_id: web-session-abc
                        device_fingerprint: fp-a8c1
                        ip_address: 203.0.113.42
                        ip_country: ES
                        amount: null
                        currency: null
                        game_id: null
                        round_id: null
                        bonus_id: null
                        affiliate_code: null
                        payment_reference_id: null
                        retention_class: standard
                        rules_matched_count: 0
                        correlation_pending: false
                        is_droppable: true
        '400':
          description: >-
            `limit` أو `offset` أكبر من 1000000. نص الاستجابة هو مصفوفة JSON
            تحتوي على رسالة واحدة. تعود قيمة `limit` غير الرقمية أو غير الموجبة
            إلى القيمة الافتراضية 50 بدلاً من أن يفشل الطلب.
          content:
            application/json:
              examples:
                limit too large:
                  summary: حقل limit يتجاوز 1000000
                  value:
                    - limit must not exceed 1000000.
                offset too large:
                  summary: حقل offset يتجاوز 1000000
                  value:
                    - offset must not exceed 1000000.
        '401':
          description: >-
            انتهت صلاحية مفتاح API محدد النطاق. المفتاح منتهي الصلاحية فقط هو ما
            يتلقى `401`؛ أما المفتاح المفقود أو غير الصالح فيتلقى `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            `x-api-key` مفقود (المفتاح الخاطئ أو الملغى أو منتهي الصلاحية يتلقى
            `401`)، أو مفتاح ذو نطاق محدد يفتقر إلى `transactions: read`، أو
            مفتاح مقتصر على بعض مسارات سير العمل أو على الجلسات المقبولة (مثل
            هذا المفتاح لا يصل أبداً إلى بيانات مراقبة المعاملات)، أو طلب من
            خارج قائمة العناوين المسموح بها للمفتاح.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without access:
                  value:
                    detail: This API key has no read access to transactions.
                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.
                IP not allowed:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            تم تجاوز حد المعدل: تتشارك طلبات `GET` رصيداً قدره 600 طلب في
            الدقيقة لكل مفتاح API. انتظر لعدد الثواني المحدد في `Retry-After`،
            ثم أعد المحاولة.
          headers:
            Retry-After:
              description: عدد الثواني الواجب انتظارها قبل إعادة المحاولة.
              schema:
                type: integer
                minimum: 1
                example: 30
          content:
            application/json:
              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/events/?event_category=payment&event_category=dispute&matched_only=true&occurred_from=2026-10-01T00:00:00Z&limit=50'
            \
              -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.monitoring_events.list():
                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.monitoringEvents.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.MonitoringEvents.ListAutoPaging(ctx, didit.MonitoringEventsListParams{})\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.monitoringEvents().list()) {
                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->monitoringEvents->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.monitoring_events.list.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.MonitoringEvents.ListAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    MonitoringEventPage:
      type: object
      description: صفحة واحدة من أحداث المراقبة، الأحدث في `occurred_at` أولاً.
      required:
        - count
        - next
        - previous
        - results
      properties:
        count:
          type: integer
          description: >-
            عدد الأحداث المتطابقة، دقيق حتى 100 ويقتصر على 100 كحد أقصى بعد ذلك.
            لا تحسب عدد الصفحات بناءً عليه؛ اتبع `next` حتى تصبح null.
        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/MonitoringEvent'
    MonitoringEvent:
      type: object
      description: >-
        حدث مراقبة مخزّن واحد كما تُرجعه endpoints الخاصة بالقائمة والجدول
        الزمني للشخص المعني. لا تُرجع الأدلة المقيدة (payload، وسياق الجهاز،
        وأدلة القاعدة) إلا عبر `GET /v3/events/{event_uuid}/`.
      required:
        - event_uuid
        - event_id
        - event_category
        - action_type
        - occurred_at
        - received_at
        - status
        - score
        - subject_vendor_data
        - subject_entity_type
        - subject_uuid
        - counterparty_vendor_data
        - session_id
        - device_fingerprint
        - ip_address
        - ip_country
        - amount
        - currency
        - game_id
        - round_id
        - bonus_id
        - affiliate_code
        - payment_reference_id
        - retention_class
        - rules_matched_count
        - correlation_pending
        - is_droppable
      properties:
        event_uuid:
          type: string
          format: uuid
          description: >-
            معرّف Didit للحدث. استخدمه كـ `{event_uuid}` في استدعاءات الجلب
            والحذف.
        event_id:
          type: string
          maxLength: 128
          description: المعرّف الخاص بك، وهو مفتاح الـ idempotency الذي أرسلته.
        event_category:
          type: string
          enum:
            - auth
            - session
            - gameplay
            - bonus
            - affiliate
            - payment
            - dispute
            - security
            - responsible_gambling
            - custom
          description: فئة الحدث.
        action_type:
          type: string
          maxLength: 128
          description: ما حدث ضمن الفئة، كما أرسلته.
        occurred_at:
          type: string
          format: date-time
          description: وقت وقوع الحدث من جانبك.
        received_at:
          type: string
          format: date-time
          description: وقت قبول Didit للحدث.
        status:
          type: string
          enum:
            - ACCEPTED
            - APPROVED
            - IN_REVIEW
            - DECLINED
          description: >-
            `ACCEPTED`: تم التخزين، ولم تُغير أي قاعدة مطابقة وضعه (وهي
            الاستجابة العادية لمعظم الأحداث، ودائماً ما تكون الاستجابة في تطبيق
            البيئة التجريبية، حيث لا يتم تشغيل أي قواعد). `APPROVED`: تطابقت
            قاعدة وبقيت الدرجة أقل من حد المراجعة الخاص بك. `IN_REVIEW`: رفعت
            قاعدةٌ الدرجةَ فوق حد المراجعة أو قامت بتعيين الحالة. `DECLINED`:
            رفضته قاعدةٌ أو تجاوزت الدرجةُ حد الرفض الخاص بك.
        score:
          type: integer
          description: >-
            درجة القاعدة المتراكمة. تبدأ من 0؛ وتغيرها إجراءات `add_score`
            للقاعدة (يُسمح بفروق سالبة).
        subject_vendor_data:
          type: string
          maxLength: 255
          description: '`subject.vendor_data` للحدث: معرّفك الخاص بالمستخدم أو الشركة.'
        subject_entity_type:
          type: string
          description: >-
            `individual` أو `company`: نوع الكيان الذي يحدده
            `subject_vendor_data`.
          example: individual
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            معرّف UUID للمستخدم (الفرد) أو الشركة التي انتهى إليها الحدث، أو
            null إذا لم يعد هذا السجل موجودًا.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: >-
            الطرف الآخر في حدث P2P (تمت ترقيته من
            `payload.counterparty_vendor_data`).
          maxLength: 255
        session_id:
          type: string
          nullable: true
          description: '`session.session_id` المُرسل مع الحدث.'
          maxLength: 255
        device_fingerprint:
          type: string
          nullable: true
          description: '`device_context.fingerprint` المُرسلة مع الحدث.'
          maxLength: 255
        ip_address:
          type: string
          nullable: true
          description: >-
            عنوان IP للحدث. في مسار الخادم يكون هذا
            `device_context.network_context.ip_address` كما أرسلته؛ وفي مسار
            الجهاز يكون هو عنوان IP الخاص بالطلب.
          maxLength: 64
        ip_country:
          type: string
          nullable: true
          description: >-
            رمز الدولة لـ `ip_address` من إثراء عنوان IP، أو null إذا لم يتم
            إثراء العنوان (لأنه مفقود أو خاص، أو لأن بيانات القياس عن بُعد
            منخفضة القيمة ولم يكن العنوان معروفاً مسبقاً).
          example: ES
        amount:
          type: string
          nullable: true
          description: >-
            المبلغ كسلسلة عشرية تتضمن 18 خانة عشرية، من
            `transaction_context.amount` أو `payload.amount` أو
            `payload.stake_amount`، بهذا الترتيب.
          example: '250.000000000000000000'
        currency:
          type: string
          nullable: true
          description: العملة من `transaction_context.currency` أو `payload.currency`.
          maxLength: 10
        game_id:
          type: string
          nullable: true
          description: تمت ترقيته من `payload.game_id`.
          maxLength: 128
        round_id:
          type: string
          nullable: true
          description: تمت ترقيته من `payload.round_id`.
          maxLength: 128
        bonus_id:
          type: string
          nullable: true
          description: تمت ترقيته من `payload.bonus_id`.
          maxLength: 128
        affiliate_code:
          type: string
          nullable: true
          description: تمت ترقيته من `payload.affiliate_code`.
          maxLength: 128
        payment_reference_id:
          type: string
          nullable: true
          description: >-
            مرجع الدفع من `transaction_context.payment_reference_id` أو
            `payload.payment_reference_id`.
          maxLength: 255
        retention_class:
          type: string
          enum:
            - low_value
            - standard
            - risk_relevant
            - monetary_or_compliance
          description: >-
            فئة الاحتفاظ. أحداث الدفع والنزاعات هي `monetary_or_compliance`؛
            وأحداث الأمان والمقامرة المسؤولة هي `risk_relevant`؛ وأحداث
            `session.page_view` و`session.sdk_heartbeat` و`session.sdk_loaded`
            و`session.device_seen` و`session.bot_signal_observed`
            و`bonus.promotion_viewed` و`affiliate.referral_clicked` هي
            `low_value`؛ وكل ما عدا ذلك هو `standard`. تتم ترقية الحدث الذي
            تطابق مع قاعدة نشطة إلى `risk_relevant` (ولا يتم خفضه أبداً).
        rules_matched_count:
          type: integer
          minimum: 0
          description: >-
            عدد القواعد التي طابقت الحدث، بما في ذلك القواعد في وضع `TEST` (التي
            تسجل الأدلة ولكن لا تطبق أي إجراءات).
        correlation_pending:
          type: boolean
          description: >-
            تكون `true` طالما أن هناك قاعدة غير متزامنة (ربط بين الكيانات، أو
            تسلسل أطول من 24 ساعة) لا يزال يتعين تشغيلها لهذا الحدث. يتم حسمها
            في غضون دقائق ويتم تحديث `status` و`score` و`rules_matched_count` في
            مكانها.
        is_droppable:
          type: boolean
          description: >-
            ما إذا كان بإمكان SDK تحت الضغط العكسي إسقاط أحداث من هذا النوع.
            تكون `false` لكل حدث من أحداث `security` و`payment` و`dispute`
            و`responsible_gambling` ولأحداث `gameplay.bet_placed`
            و`gameplay.bet_settled` و`gameplay.p2p_settlement`.
  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.