> ## 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/zh/transaction-monitoring/event-rules.md#证据)，了解规则运行如何记录每个匹配值及其来源；请参阅[IP 信息富化](https://docs.didit.me/zh/transaction-monitoring/ip-enrichment.md)，了解富化后的地址字段。


## OpenAPI

````yaml zh/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/zh/transaction-monitoring/event-rules#证据)和[IP
        富化](https://docs.didit.me/zh/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`
            权限的作用域密钥、仅限于某些工作流或已通过会话的密钥（此类密钥绝无法访问交易监控数据），或来自密钥 IP 白名单之外的请求。
          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: 超出速率限制：每个 API 密钥的 `GET` 请求共享每分钟 600 次的配额。请等待 `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`。当 IP 丰富化功能标记该地址且您未设置这些值时，Didit 会添加
                `vpn_or_proxy_detected: true` 或 `is_data_center: true`。
            device_context:
              type: object
              additionalProperties: true
              description: >-
                存储的设备上下文：您的 `device_context`（在发送时包含
                `fingerprint`、`persistent_device_id` 和 `bot_score`），对于您留空的键，会通过
                IP 丰富化补充
                `network_context`（`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
                天，可按应用调整）。对于遵循交易保留规则的 `monetary_or_compliance` 事件为 Null。
            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/zh/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: >-
        由列表和主体时间线 endpoint 返回的一条已存储监控事件。受限证据（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`：您为该用户或公司设置的 id。
        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 信息增强获取的 `ip_address`
            国家/地区代码；如果地址未进行信息增强（缺失、私有或地址尚不可知的低价值遥测数据），则为 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: >-
            当此事件仍需运行异步规则（跨主体关联，或时长超过 24 小时的序列）时为 `true`。它会在数分钟内处理完成，并就地更新
            `status`、`score` 和 `rules_matched_count`。
        is_droppable:
          type: boolean
          description: >-
            处于背压状态下的 SDK 是否可以丢弃此类事件。对于所有 `security`、`payment`、`dispute` 和
            `responsible_gambling` 事件，以及
            `gameplay.bet_placed`、`gameplay.bet_settled` 和
            `gameplay.p2p_settlement` 事件，此项均为 `false`。
    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: 规则的严重程度。对于 `TEST` 运行以及没有严重程度的规则，该值为 Null。
        score_delta:
          type: integer
          description: 本次运行对事件评分的改变幅度（`TEST` 运行为 0）。
        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 密钥，可在 Business Console 的“开发者 -> API
        密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域：针对每个资源设为无权限、只读或读写，限定于特定工作流或已通过的会话、限定于
        IP 地址列表，以及设置到期日期。401 表示密钥错误、已撤销或已过期；403 表示未发送密钥、密钥无权访问该资源或操作，或请求来自其 IP
        列表之外的地址；在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF
        URL 将为 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.