> ## 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 حدثًا واحدًا للمراقبة مع الحمولة payload وسياق الجهاز وإثراء عنوان IP والإشارات المخزنة مؤقتًا والوسوم وأدلة القاعدة.

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

<pre>
  \`Retrieve one monitoring event from Didit with its full envelope, enrichment and rule evidence.

  Endpoint:
  GET [https://verification.didit.me/v3/events/\{event\_uuid}/](https://verification.didit.me/v3/events/\{event_uuid}/)

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

  Goal:

  * Show the event detail in my back office or an investigation tool: what was sent, what Didit derived, and why a rule matched.

  Behavior:

  * event\_uuid is the Didit id returned by the create, batch, list and timeline calls (not my own event\_id).
  * Returns every summary field of the list call plus payload, custom\_values, device\_context, field\_sources, the promoted domain fields (hand\_id, dispute\_id, chargeback\_id, withdrawal\_address\_hash, changed\_field, ...), expires\_at, rules\_evaluated\_count, rule\_runs, ip\_enrichment, subject\_profile and tags.
  * field\_sources maps each field path to customer (sent by my backend), sdk (sent by the device lane) or server (derived by Didit, such as received\_at and IP enrichment).
  * While correlation\_pending is true an asynchronous rule still has to run; read the event again later for the final status, score and rule\_runs.
  * ip\_enrichment and subject\_profile are null when nothing is known.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/11111111-2222-3333-4444-555555555555/](https://verification.didit.me/v3/events/11111111-2222-3333-4444-555555555555/)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * status, score, rules\_matched\_count.
  * rule\_runs\[] - one per matching rule: rule\_uuid, rule\_title, library\_key, mode (ACTIVE or TEST), severity, matched (always true), score\_delta, action\_summary, is\_async, matched\_payload (the conditions and aggregations that matched, with expected and observed values) and created\_at.
  * ip\_enrichment - ip\_country\_code, ip\_city, asn\_number, asn\_organization, is\_vpn\_or\_tor, is\_data\_center, proxy\_type, last\_enriched\_at.
  * field\_sources - trust signal for each value before acting on a match.
  * tags - names of the tags rules attached.

  Failure modes:

  * 401 - the API key has expired.
  * 403 - missing API key (a wrong, revoked or expired key gets 401), or a scoped key without transactions: read.
  * 404 - no event with this event\_uuid in the application (never stored, deleted, or another application's).

  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/event-rules.md#الأدلة) لمعرفة كيف تسجّل عمليات تشغيل القواعد كل قيمة مطابقة ومصدرها، و[إثراء عنوان IP](https://docs.didit.me/ar/transaction-monitoring/ip-enrichment.md) للاطلاع على حقول عنوان IP المُثرى.


## OpenAPI

````yaml ar/openapi-25.json GET /v3/events/{event_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/events/{event_uuid}/:
    get:
      tags:
        - Monitoring Events
      summary: الحصول على حدث المراقبة
      description: >-
        استرداد حدث مراقبة واحد مع كل ما ترجعه القائمة بالإضافة إلى payload
        والقيم المخصصة وسياق الجهاز ومصدر الحقول (`field_sources`) وحقول النطاق
        التي جرى رفعها إلى المستوى الرئيسي و`expires_at` وكل عمليات تشغيل
        القواعد المطابقة مع أدلتها، وإثراء عنوان IP والوسوم التي أرفقتها
        القواعد. عندما تكون `correlation_pending` بقيمة `true`، فهذا يعني أن
        هناك قاعدة غير متزامنة لا تزال بحاجة إلى التشغيل؛ اقرأ الحدث مرة أخرى
        بعد بضع دقائق للحصول على `status` و`score` و`rule_runs` النهائية. تعمل
        عمليات القراءة سواء تم تفعيل استيعاب الأحداث أم لا. يتطلب مفتاح API
        المخصص الصلاحية `transactions: read`. راجع
        [الأدلة](https://docs.didit.me/ar/transaction-monitoring/event-rules#الأدلة)
        و[إثراء عنوان
        IP](https://docs.didit.me/ar/transaction-monitoring/ip-enrichment).
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            معرّف Didit للحدث (`event_uuid` من استجابة الإنشاء أو الدُفعة أو
            القائمة أو المخطط الزمني)، وليس `event_id` الخاص بك.
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: الحدث مع الأدلة الخاصة به.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitoringEventDetail'
              examples:
                Login from a VPN, in review:
                  value:
                    event_uuid: 33333333-4444-5555-6666-777777777777
                    event_id: login-2026-10-17-000001
                    event_category: auth
                    action_type: login
                    occurred_at: '2026-10-17T09:15:02.481000Z'
                    received_at: '2026-10-17T09:15:02.903114Z'
                    status: IN_REVIEW
                    score: 40
                    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: risk_relevant
                    rules_matched_count: 1
                    correlation_pending: false
                    is_droppable: true
                    payload:
                      method: password
                    custom_values:
                      vip_tier: gold
                      vpn_or_proxy_detected: true
                    device_context:
                      fingerprint: fp-a8c1
                      network_context:
                        ip_address: 203.0.113.42
                        ip_country: Spain
                        ip_country_code: ES
                        ip_city: Madrid
                        asn_number: 64500
                        asn_organization: Example Networks
                        is_vpn_or_tor: true
                        is_data_center: false
                    field_sources:
                      subject.vendor_data: customer
                      event_category: customer
                      action_type: customer
                      occurred_at: customer
                      received_at: server
                      payload.method: customer
                      session.session_id: customer
                      session.sequence: customer
                      device_context.fingerprint: customer
                      device_context.network_context.ip_address: customer
                      device_context.network_context.ip_country: server
                      device_context.network_context.ip_country_code: server
                      device_context.network_context.ip_city: server
                      device_context.network_context.asn_number: server
                      device_context.network_context.asn_organization: server
                      device_context.network_context.is_vpn_or_tor: server
                      device_context.network_context.is_data_center: server
                    session_sequence: 142
                    table_id: null
                    hand_id: null
                    match_id: null
                    market_id: null
                    side: null
                    role: null
                    net_result_amount: null
                    payment_fingerprint: null
                    instrument_reference_hash: null
                    withdrawal_address_hash: null
                    dispute_id: null
                    chargeback_id: null
                    changed_field: null
                    identity_match_ref: null
                    schema_version: 1
                    expires_at: '2027-01-15T09:15:02.481000Z'
                    rules_evaluated_count: 6
                    rule_runs:
                      - rule_uuid: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        rule_title: Login from VPN or Tor
                        library_key: null
                        matched: true
                        mode: ACTIVE
                        is_async: false
                        severity: MEDIUM
                        score_delta: 40
                        action_summary: score +40; add_tag:VPN_LOGIN
                        matched_payload:
                          - field: event.ip.is_vpn_or_tor
                            operator: eq
                            expected_value: true
                            current_value: true
                            matched: true
                            group_index: null
                            group_logic: AND
                            field_source: server
                        created_at: '2026-10-17T09:15:02.951207Z'
                    ip_enrichment:
                      ip_country_code: ES
                      ip_city: Madrid
                      asn_number: 64500
                      asn_organization: Example Networks
                      is_vpn_or_tor: true
                      is_data_center: false
                      proxy_type: null
                      last_enriched_at: '2026-10-17T09:15:02.910442Z'
                    subject_profile: null
                    tags:
                      - VPN_LOGIN
        '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.
        '404':
          description: >-
            لا يوجد حدث بهذا المعرّف `event_uuid` في التطبيق: لم يتم تخزينه
            مطلقاً، أو تم حذفه، أو ينتمي إلى تطبيق آخر. أي جزء مسار لا يمثل UUID
            لا يطابق المسار ويُرجع أيضاً `404`.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: No MonitoringEvent matches the given query.
        '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/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.monitoring_events.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.monitoringEvents.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.MonitoringEvents.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.monitoringEvents().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->monitoringEvents->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.monitoring_events.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.MonitoringEvents.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    MonitoringEventDetail:
      description: >-
        حدث مراقبة واحد مع الغلاف الكامل الخاص به، وبيانات الإثراء وأدلة
        القواعد. يحتوي على كل حقول `MonitoringEvent` بالإضافة إلى الحقول أدناه.
      allOf:
        - $ref: '#/components/schemas/MonitoringEvent'
        - type: object
          required:
            - payload
            - custom_values
            - device_context
            - field_sources
            - session_sequence
            - table_id
            - hand_id
            - match_id
            - market_id
            - side
            - role
            - net_result_amount
            - payment_fingerprint
            - instrument_reference_hash
            - withdrawal_address_hash
            - dispute_id
            - chargeback_id
            - changed_field
            - identity_match_ref
            - schema_version
            - expires_at
            - rules_evaluated_count
            - rule_runs
            - ip_enrichment
            - subject_profile
            - tags
          properties:
            payload:
              type: object
              additionalProperties: true
              description: حقول الفئة التي أرسلتها في `payload`.
            custom_values:
              type: object
              additionalProperties: true
              description: >-
                قيم `custom_values` المفردة التي أرسلتها. يضيف Didit القيمة
                `vpn_or_proxy_detected: true` أو `is_data_center: true` عندما
                يضع إثراء عنوان IP علامة تنبيه على العنوان ولم تقم بتعيين أيٍّ
                منهما.
            device_context:
              type: object
              additionalProperties: true
              description: >-
                سياق الجهاز كما تم تخزينه: `device_context` الخاص بك (بما في ذلك
                `fingerprint` و`persistent_device_id` و`bot_score` عند إرسالها)
                مع إكمال `network_context` عبر إثراء عنوان IP (`ip_country`
                و`ip_country_code` و`ip_city` و`asn_number` و`asn_organization`
                و`is_vpn_or_tor` و`is_data_center` و`proxy_type`
                و`connection_type`) للمفاتيح التي تركتها فارغة.
            field_sources:
              type: object
              additionalProperties:
                type: string
                enum:
                  - customer
                  - sdk
                  - server
              description: >-
                مسار الحقل الخاص بمصدره: `customer` (أرسله خادمك الخلفي)، أو
                `sdk` (أُرسل عبر مسار الجهاز)، أو `server` (مشتق بواسطة Didit،
                مثل `received_at` وحقول الشبكة المعززة). تحقق منه قبل اتخاذ
                إجراء بناءً على التطابق.
            session_sequence:
              type: integer
              format: int64
              nullable: true
              description: '`session.sequence` المُرسل مع الحدث.'
            table_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.table_id`.
              maxLength: 128
            hand_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.hand_id`.
              maxLength: 128
            match_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.match_id`.
              maxLength: 128
            market_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.market_id`.
              maxLength: 128
            side:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.side`.
              maxLength: 64
            role:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.role`.
              maxLength: 64
            net_result_amount:
              type: string
              nullable: true
              description: >-
                تمت ترقيته من `payload.net_result_amount`، كسلسلة عشرية بـ 18
                منزلة عشرية.
              example: '-120.000000000000000000'
            payment_fingerprint:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.payment_fingerprint`.
              maxLength: 255
            instrument_reference_hash:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.instrument_reference_hash`.
              maxLength: 255
            withdrawal_address_hash:
              type: string
              nullable: true
              description: >-
                تمت ترقيته من `payload.withdrawal_address_hash` (أو
                `payload.destination_reference_hash`).
              maxLength: 255
            dispute_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.dispute_id`.
              maxLength: 255
            chargeback_id:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.chargeback_id`.
              maxLength: 255
            changed_field:
              type: string
              nullable: true
              description: تمت ترقيته من `payload.changed_field` (أحداث التغيير الأمني).
              maxLength: 128
            identity_match_ref:
              type: string
              nullable: true
              description: >-
                تمت ترقيته من `payload.identity_match_ref` (تطابقات سجل المقامرة
                المسؤولة).
              maxLength: 255
            schema_version:
              type: integer
              description: إصدار مخطط غلاف الحدث. حالياً `1`.
              example: 1
            expires_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                وقت انتهاء صلاحية الحدث بموجب فئة الاحتفاظ به وحذفه:
                `occurred_at` مضافاً إليه مدة الفئة (14 أو 30 أو 90 يوماً بشكل
                افتراضي، قابلة للتعديل لكل تطبيق). القيمة Null لأحداث
                `monetary_or_compliance`، والتي تتبع سياسة الاحتفاظ بالمعاملات.
            rules_evaluated_count:
              type: integer
              minimum: 0
              description: عدد قواعد الأحداث التي تم تقييمها لهذا الحدث.
            rule_runs:
              type: array
              description: كل قاعدة تطابقت مع الحدث، الأحدث أولاً.
              items:
                $ref: '#/components/schemas/MonitoringEventRuleRun'
            ip_enrichment:
              type: object
              nullable: true
              description: >-
                إثراء عنوان IP الخاص بالحدث، أو null عندما لا يتم إثراء العنوان.
                راجع [إثراء
                IP](https://docs.didit.me/ar/transaction-monitoring/ip-enrichment).
              properties:
                ip_country_code:
                  type: string
                  nullable: true
                  description: رمز الدولة للعنوان.
                ip_city:
                  type: string
                  nullable: true
                  description: مدينة العنوان.
                asn_number:
                  type: integer
                  nullable: true
                  description: رقم النظام المستقل.
                asn_organization:
                  type: string
                  nullable: true
                  description: المؤسسة التي تشغّل النظام المستقل.
                is_vpn_or_tor:
                  type: boolean
                  description: ما إذا كان العنوان عقدة خروج VPN أو Tor معروفة.
                is_data_center:
                  type: boolean
                  description: ما إذا كان العنوان ينتمي إلى شبكة استضافة أو مركز بيانات.
                proxy_type:
                  type: string
                  nullable: true
                  description: تصنيف البروكسي للعنوان كسلسلة مبهمة، أو null.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: وقت آخر إثراء للعنوان.
              required:
                - ip_country_code
                - ip_city
                - asn_number
                - asn_organization
                - is_vpn_or_tor
                - is_data_center
                - proxy_type
                - last_enriched_at
            subject_profile:
              type: object
              nullable: true
              description: >-
                إشارات مخاطر البريد الإلكتروني والهاتف المخزنة مؤقتاً للهدف، أو
                null في حال عدم وجود ملف تعريف للهدف.
              properties:
                email_risk_score:
                  type: integer
                  nullable: true
                  description: درجة مخاطر البريد الإلكتروني.
                email_deliverability:
                  type: string
                  nullable: true
                  description: قرار قابلية تسليم البريد الإلكتروني.
                email_is_disposable:
                  type: boolean
                  nullable: true
                  description: ما إذا كان عنوان البريد الإلكتروني مؤقتاً.
                email_is_breached:
                  type: boolean
                  nullable: true
                  description: >-
                    ما إذا كان عنوان البريد الإلكتروني يظهر في اختراقات بيانات
                    معروفة.
                email_social_count:
                  type: integer
                  nullable: true
                  description: عدد الحسابات عبر الإنترنت المرتبطة بعنوان البريد الإلكتروني.
                email_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    أسماء الخدمات عبر الإنترنت التي عُثر فيها على حساب مرتبط
                    بعنوان البريد الإلكتروني.
                phone_risk_score:
                  type: integer
                  nullable: true
                  description: درجة مخاطر الهاتف.
                phone_line_type:
                  type: string
                  nullable: true
                  description: نوع خط الهاتف.
                phone_carrier:
                  type: string
                  nullable: true
                  description: اسم شركة الاتصالات المشغلة للهاتف.
                phone_social_count:
                  type: integer
                  nullable: true
                  description: عدد الحسابات عبر الإنترنت المرتبطة برقم الهاتف.
                phone_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    أسماء الخدمات عبر الإنترنت التي عُثر فيها على حساب مرتبط
                    برقم الهاتف.
                source_provider:
                  type: string
                  nullable: true
                  description: معرّف مبهم لمصدر الملف التعريفي.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: متى تم تحديث الملف التعريفي آخر مرة.
              required:
                - email_risk_score
                - email_deliverability
                - email_is_disposable
                - email_is_breached
                - email_social_count
                - email_social_providers
                - phone_risk_score
                - phone_line_type
                - phone_carrier
                - phone_social_count
                - phone_social_providers
                - source_provider
                - last_enriched_at
            tags:
              type: array
              items:
                type: string
              description: أسماء الوسوم المرفقة بالحدث (إجراءات `add_tags` للقاعدة).
    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`.
    MonitoringEventRuleRun:
      type: object
      properties:
        rule_uuid:
          type: string
          format: uuid
          description: معرّف UUID لقاعدة مراقبة المعاملات.
        rule_title:
          type: string
          description: عنوان القاعدة.
        library_key:
          type: string
          nullable: true
          description: >-
            مفتاح المكتبة عندما يتم تثبيت القاعدة من مكتبة القواعد، وإلا يكون
            null.
        matched:
          type: boolean
          description: 'دائماً `true`: يتم تسجيل عمليات التشغيل المتطابقة فقط.'
        mode:
          type: string
          enum:
            - ACTIVE
            - TEST
          description: >-
            وضع القاعدة عند تشغيلها. يسجل التشغيل في وضع `TEST` الأدلة ولكنه لا
            يطبق أي إجراءات.
        is_async:
          type: boolean
          description: >-
            تكون `true` عندما يأتي التشغيل من مرحلة الربط غير المتزامنة بدلاً من
            طلب إدخال البيانات.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: >-
            مستوى خطورة القاعدة. يكون Null لعمليات التشغيل `TEST` وللقواعد التي
            لا تملك مستوى خطورة.
        score_delta:
          type: integer
          description: >-
            مقدار التغيير الذي أحدثه هذا التشغيل في درجة الحدث (0 لعمليات
            التشغيل من نوع `TEST`).
        action_summary:
          type: string
          nullable: true
          description: >-
            ملخص قصير للإجراءات المطبقة، على سبيل المثال `score +40;
            add_tag:VPN_LOGIN`. يكون null عندما لا يتم تطبيق أي شيء.
        matched_payload:
          type: array
          description: >-
            الشروط والتجميعات المتطابقة. تحمل مدخلات الشروط `field` و`operator`
            و`expected_value` و`current_value` و`matched` و`group_index`
            و`group_logic` و`field_source` (`server` أو `sdk` أو `customer`)؛
            وتحمل مدخلات التجميع `metric` و`field` و`operator` و`expected_value`
            و`computed_value` و`window` و`filters` و`matched`
            و`sample_references`.
          items:
            type: object
            additionalProperties: true
        created_at:
          type: string
          format: date-time
          description: متى تم تسجيل تشغيل القاعدة.
      required:
        - rule_uuid
        - rule_title
        - library_key
        - matched
        - mode
        - is_async
        - severity
        - score_delta
        - action_summary
        - matched_payload
        - created_at
  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.