> ## 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/ru/transaction-monitoring/event-rules.md#доказательства). Поля обогащённого IP-адреса описаны в разделе [Обогащение IP-адреса](https://docs.didit.me/ru/transaction-monitoring/ip-enrichment.md).


## OpenAPI

````yaml ru/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/ru/transaction-monitoring/event-rules#доказательства)
        и [Обогащение по
        IP](https://docs.didit.me/ru/transaction-monitoring/ip-enrichment).
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            Идентификатор события в Didit (`event_uuid` из ответа методов
            create, batch, list или timeline), а не ваш собственный `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/ru/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).
                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: Ваш собственный идентификатор, переданный ключ идемпотентности.
        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 при обратном давлении (backpressure) отбрасывать
            события этого типа. Значение `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-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в
        Business Console. Основной ключ имеет полный доступ. Именованный ключ
        может иметь ограниченную область действия: без доступа, чтение или
        запись для каждого ресурса, ограничение определенными сценариями или
        одобренными сессиями, списком IP-адресов и сроком действия. 401
        означает, что ключ неверен, отозван или его срок действия истек; 403
        означает, что ключ не был передан, у ключа нет доступа к этому ресурсу
        или действию, либо запрос поступил с адреса вне его списка IP-адресов;
        404 на маршруте сессии означает, что сессия не входит в сценарии или
        статусы ключа. Ключ без доступа к медиа получает URL изображений, видео
        и PDF как null, а ключ без прав на запись сессий получает ссылки на
        сессии и токены как null. См. https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.