> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 모니터링 이벤트 조회 API

> Didit에서 모니터링 이벤트 한 건의 페이로드, 기기 컨텍스트, IP 보강 정보, 캐시된 대상 신호, 태그, 규칙 근거를 조회합니다.

모니터링 이벤트 조회 API 프롬프트
프롬프트를 클립보드에 복사

<pre>
  \`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/ko/transaction-monitoring/event-rules.md#증거)를 참고하십시오. 보강된 주소 필드는 [IP 정보 보강](https://docs.didit.me/ko/transaction-monitoring/ip-enrichment.md)에서 확인할 수 있습니다.


## OpenAPI

````yaml ko/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` 권한이 필요합니다.
        [Evidence](https://docs.didit.me/ko/transaction-monitoring/event-rules#증거)
        및 [IP
        보강](https://docs.didit.me/ko/transaction-monitoring/ip-enrichment)을
        참조하십시오.
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            자체 `event_id`가 아닌 이벤트의 Didit 식별자(생성, 일괄 처리, 목록 또는 타임라인 응답의
            `event_uuid`)입니다.
          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: >-
            속도 제한 초과: `GET` 요청은 API 키당 분당 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: >-
        전체 엔벨로프, 보강 정보 및 규칙 증거가 포함된 모니터링 이벤트 1개입니다. `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
                보강(`ip_country`, `ip_country_code`, `ip_city`, `asn_number`,
                `asn_organization`, `is_vpn_or_tor`, `is_data_center`,
                `proxy_type`, `connection_type`)을 통해 완성된 `network_context`가
                포함됩니다.
            field_sources:
              type: object
              additionalProperties:
                type: string
                enum:
                  - customer
                  - sdk
                  - server
              description: >-
                출처를 나타내는 필드 경로입니다. `customer`(백엔드에서 전송), `sdk`(기기 경로를 통해 전송) 또는
                `server`(`received_at` 및 강화된 네트워크 필드 등 Didit에서 파생됨)입니다. 일치 항목에
                대한 조치를 취하기 전에 확인하십시오.
            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/ko/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에서 반환하는 저장된 모니터링 이벤트 1건입니다. 제한된 증거(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: >-
            이벤트의 주소입니다. 서버 레인에서는 전송된
            `device_context.network_context.ip_address`이며, 기기 레인에서는 요청의 주소입니다.
          maxLength: 64
        ip_country:
          type: string
          nullable: true
          description: >-
            IP 보강을 통해 확인된 `ip_address`의 국가 코드이며, 주소가 보강되지 않은 경우(누락되었거나 사설 IP이거나
            주소가 이미 알려져 있지 않은 저가치 텔레메트리인 경우) null입니다.
          example: ES
        amount:
          type: string
          nullable: true
          description: >-
            `transaction_context.amount`, `payload.amount`,
            `payload.stake_amount` 순서대로 가져온 소수점 이하 18자리의 십진수 문자열 금액입니다.
          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: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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