> ## 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 كل أحداث المراقبة لمستخدم واحد أو شركة واحدة، من الأحدث إلى الأقدم، مع الفصل بين الأفراد والشركات التي تشترك في vendor_data.

موجّه API للحصول على الخط الزمني لأحداث الموضوع
نسخ الموجّه إلى الحافظة

<pre>
  \`Read the monitoring event timeline of one user or company in my Didit application.

  Endpoint:
  GET [https://verification.didit.me/v3/events/subjects/\{vendor\_data}/](https://verification.didit.me/v3/events/subjects/\{vendor_data}/)

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

  Goal:

  * Show one subject's activity (logins, sessions, gameplay, bonuses, payments, disputes, security changes) on a customer profile or in an investigation.

  Behavior:

  * vendor\_data is my own id for the subject (subject.vendor\_data of its events). URL-encode it; it cannot contain a slash.
  * vendor\_data is unique only within an entity type: the same id can name an individual and a company, and they are two subjects with two timelines.
  * entity\_type selects the subject: individual (default) or company. Without entity\_type=company, a company id returns the individual's timeline, not both. subject\_entity\_type is accepted as an alias.
  * Newest occurred\_at first, paginated with limit (default 50) and offset. count is capped at 100, so follow next until it is null.
  * The list filters of GET /v3/events/ apply on top: event\_category, action\_type, status, retention\_class (repeat for several values), business\_vendor\_data, session\_id, device\_fingerprint, ip\_address, game\_id, round\_id, affiliate\_code, payment\_reference\_id, counterparty\_vendor\_data, matched\_only, occurred\_from, occurred\_to, search. 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).
  * A vendor\_data with no events returns an empty page, not 404.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/subjects/acct\_9931/?entity\_type=company\&limit=50](https://verification.didit.me/v3/events/subjects/acct_9931/?entity_type=company\&limit=50)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * results\[] - event summaries (event\_uuid, event\_category, action\_type, occurred\_at, status, score, rules\_matched\_count, ip\_country, device\_fingerprint).
  * results\[].subject\_uuid - the user or company the events resolved to.
  * 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/management-api/monitoring-events/list.md).


## OpenAPI

````yaml ar/openapi-25.json GET /v3/events/subjects/{vendor_data}/
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/subjects/{vendor_data}/:
    get:
      tags:
        - Monitoring Events
      summary: الحصول على المخطط الزمني لأحداث الموضوع
      description: >-
        سرد كل أحداث المراقبة لجهة معينة، الأحدث حسب `occurred_at` أولاً. معرّف
        `vendor_data` فريد فقط ضمن نوع الكيان الواحد، لذا يمكن لنفس المعرّف أن
        يُشير إلى فرد وشركة في آنٍ واحد: يحدد `entity_type` الجدول الزمني الذي
        تتلقاه، والقيمة الافتراضية هي `individual`، لذا تتطلب أحداث الشركة تعيين
        `entity_type=company`. تنطبق عوامل التصفية الخاصة بـ `GET /v3/events/`
        أيضاً، ويُرجع `vendor_data` الذي ليس لديه أي أحداث صفحة فارغة بدلاً من
        `404`. يتطلب مفتاح API محدد النطاق إذن `transactions: read`. راجع [قراءة
        الأحداث
        السابقة](https://docs.didit.me/ar/transaction-monitoring/events#قراءة-الأحداث-واسترجاعها).
      operationId: get_monitoring_event_subject_timeline
      parameters:
        - name: vendor_data
          in: path
          required: true
          description: >-
            المعرّف الخاص بك للكيان (`subject.vendor_data` لأحداثه). شفّره
            بترميز URL؛ لا يمكن لـ endpoint هذا معالجة قيمة تحتوي على `/`.
          schema:
            type: string
            minLength: 1
            maxLength: 255
          example: user-42
        - name: entity_type
          in: query
          required: false
          description: >-
            تُرجع القيمة `company` الشركة المرتبطة بقيمة `vendor_data` هذه؛
            بينما يُرجع أي قيمة أخرى، أو عدم تقديم قيمة، الفرد. تُقبل
            `subject_entity_type` كاسم بديل عند غياب `entity_type`.
          schema:
            type: string
            enum:
              - individual
              - company
            default: individual
          example: individual
        - 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: 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:
                Individual timeline:
                  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
                No events:
                  value:
                    count: 0
                    next: null
                    previous: null
                    results: []
        '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/subjects/user-42/?entity_type=individual&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.retrieve_subject_timeline(
                "user-42",
            ):
                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.retrieveSubjectTimeline("user-42")) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.MonitoringEvents.RetrieveSubjectTimelineAutoPaging(ctx, \"user-42\", didit.MonitoringEventsRetrieveSubjectTimelineParams{})\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().retrieveSubjectTimeline("user-42")) {
                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->retrieveSubjectTimeline('user-42') as
            $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            didit.monitoring_events.retrieve_subject_timeline("user-42").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.RetrieveSubjectTimelineAsync("user-42"))

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