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

# Dapatkan Event Pemantauan API

> Ambil satu event pemantauan dari Didit beserta payload, konteks perangkat, pengayaan IP, sinyal subjek, tag, dan bukti aturan.

Prompt API untuk Mendapatkan Event Pemantauan
Salin prompt ke papan klip

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

Tempel ke

Lihat [Bukti](https://docs.didit.me/id/transaction-monitoring/event-rules.md#bukti) untuk mengetahui cara setiap eksekusi aturan mencatat nilai yang cocok beserta sumbernya, dan [Pengayaan IP](https://docs.didit.me/id/transaction-monitoring/ip-enrichment.md) untuk kolom alamat yang telah diperkaya.


## OpenAPI

````yaml id/openapi-25.json GET /v3/events/{event_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/events/{event_uuid}/:
    get:
      tags:
        - Monitoring Events
      summary: Dapatkan event pemantauan
      description: >-
        Ambil satu event pemantauan beserta semua data yang dikembalikan daftar
        ditambah payload, nilai kustom, konteks perangkat, asal-usul kolom
        (`field_sources`), kolom domain yang dipromosikan, `expires_at`, setiap
        eksekusi aturan yang cocok beserta buktinya, pengayaan IP, dan tag yang
        dilampirkan aturan. Selama `correlation_pending` bernilai `true`, aturan
        asinkron masih harus dijalankan; baca kembali event tersebut beberapa
        menit kemudian untuk mendapatkan `status`, `score`, dan `rule_runs`
        akhir. Operasi baca berfungsi baik penyerapan event diaktifkan maupun
        tidak. Kunci API dengan pembatasan cakupan memerlukan `transactions:
        read`. Lihat
        [Bukti](https://docs.didit.me/id/transaction-monitoring/event-rules#bukti)
        dan [Pengayaan
        IP](https://docs.didit.me/id/transaction-monitoring/ip-enrichment).
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            Pengidentifikasi Didit untuk event tersebut (`event_uuid` dari
            respons pembuatan, batch, daftar, atau linimasa), bukan `event_id`
            Anda sendiri.
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: Event beserta buktinya.
          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: >-
            Kunci API dengan cakupan terbatas telah kedaluwarsa. Hanya kunci
            yang kedaluwarsa yang menerima `401`; kunci yang hilang atau tidak
            valid menerima `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            `x-api-key` tidak ada (kunci yang salah, dicabut, atau kedaluwarsa
            menghasilkan `401`), kunci dengan pembatasan cakupan tanpa
            `transactions: read`, kunci yang dibatasi pada alur kerja tertentu
            atau pada sesi yang disetujui (kunci semacam itu tidak pernah
            mengakses data pemantauan transaksi), atau permintaan dari luar
            allowlist IP milik kunci tersebut.
          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: >-
            Tidak ada event dengan `event_uuid` ini di dalam aplikasi: event
            tidak pernah disimpan, telah dihapus, atau milik aplikasi lain.
            Segmen jalur yang bukan berupa UUID tidak cocok dengan rute dan juga
            mengembalikan `404`.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: No MonitoringEvent matches the given query.
        '429':
          description: >-
            Batas laju terlampaui: permintaan `GET` berbagi anggaran sebanyak
            600 permintaan per menit per kunci API. Tunggu `Retry-After` detik,
            lalu coba lagi.
          headers:
            Retry-After:
              description: Detik untuk menunggu sebelum mencoba lagi.
              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: >-
        Satu event pemantauan dengan envelope lengkap, pengayaan, dan bukti
        aturan. Setiap kolom dari `MonitoringEvent` ditambah kolom-kolom di
        bawah ini.
      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: Kolom kategori yang Anda kirimkan dalam `payload`.
            custom_values:
              type: object
              additionalProperties: true
              description: >-
                Nilai skalar `custom_values` yang Anda kirim. Didit menambahkan
                `vpn_or_proxy_detected: true` atau `is_data_center: true` saat
                pengayaan IP menandai alamat tersebut dan Anda tidak
                mengaturnya.
            device_context:
              type: object
              additionalProperties: true
              description: >-
                Konteks perangkat sebagaimana disimpan: `device_context` Anda
                (termasuk `fingerprint`, `persistent_device_id`, dan `bot_score`
                saat dikirim) dengan `network_context` yang dilengkapi oleh
                pengayaan IP (`ip_country`, `ip_country_code`, `ip_city`,
                `asn_number`, `asn_organization`, `is_vpn_or_tor`,
                `is_data_center`, `proxy_type`, `connection_type`) untuk kunci
                yang Anda biarkan kosong.
            field_sources:
              type: object
              additionalProperties:
                type: string
                enum:
                  - customer
                  - sdk
                  - server
              description: >-
                Jalur kolom ke asal-usul (provenance): `customer` (dikirim oleh
                backend Anda), `sdk` (dikirim melalui jalur perangkat), atau
                `server` (diturunkan oleh Didit, seperti `received_at` dan kolom
                jaringan yang diperkaya). Periksa ini sebelum menindaklanjuti
                kecocokan.
            session_sequence:
              type: integer
              format: int64
              nullable: true
              description: '`session.sequence` dikirim bersama event.'
            table_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.table_id`.
              maxLength: 128
            hand_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.hand_id`.
              maxLength: 128
            match_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.match_id`.
              maxLength: 128
            market_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.market_id`.
              maxLength: 128
            side:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.side`.
              maxLength: 64
            role:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.role`.
              maxLength: 64
            net_result_amount:
              type: string
              nullable: true
              description: >-
                Dipromosikan dari `payload.net_result_amount`, sebagai string
                desimal dengan 18 tempat desimal.
              example: '-120.000000000000000000'
            payment_fingerprint:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.payment_fingerprint`.
              maxLength: 255
            instrument_reference_hash:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.instrument_reference_hash`.
              maxLength: 255
            withdrawal_address_hash:
              type: string
              nullable: true
              description: >-
                Dipromosikan dari `payload.withdrawal_address_hash` (atau
                `payload.destination_reference_hash`).
              maxLength: 255
            dispute_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.dispute_id`.
              maxLength: 255
            chargeback_id:
              type: string
              nullable: true
              description: Dipromosikan dari `payload.chargeback_id`.
              maxLength: 255
            changed_field:
              type: string
              nullable: true
              description: >-
                Dipromosikan dari `payload.changed_field` (peristiwa perubahan
                keamanan).
              maxLength: 128
            identity_match_ref:
              type: string
              nullable: true
              description: >-
                Dipromosikan dari `payload.identity_match_ref` (kecocokan dengan
                registri perjudian yang bertanggung jawab).
              maxLength: 255
            schema_version:
              type: integer
              description: Versi skema envelope event. Saat ini `1`.
              example: 1
            expires_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Waktu ketika peristiwa kedaluwarsa berdasarkan kelas retensinya
                dan dihapus: `occurred_at` ditambah periode kelas (secara
                default 14, 30, atau 90 hari, dapat disesuaikan per aplikasi).
                Null untuk peristiwa `monetary_or_compliance`, yang mengikuti
                retensi transaksi.
            rules_evaluated_count:
              type: integer
              minimum: 0
              description: Jumlah aturan event yang dievaluasi untuk event ini.
            rule_runs:
              type: array
              description: >-
                Setiap aturan yang cocok dengan event, yang terbaru terlebih
                dahulu.
              items:
                $ref: '#/components/schemas/MonitoringEventRuleRun'
            ip_enrichment:
              type: object
              nullable: true
              description: >-
                Pengayaan alamat IP event, atau null jika alamat tidak
                diperkaya. Lihat [Pengayaan
                IP](https://docs.didit.me/id/transaction-monitoring/ip-enrichment).
              properties:
                ip_country_code:
                  type: string
                  nullable: true
                  description: Kode negara dari alamat tersebut.
                ip_city:
                  type: string
                  nullable: true
                  description: Kota dari alamat.
                asn_number:
                  type: integer
                  nullable: true
                  description: Nomor sistem otonom.
                asn_organization:
                  type: string
                  nullable: true
                  description: Organisasi yang mengoperasikan sistem otonom.
                is_vpn_or_tor:
                  type: boolean
                  description: >-
                    Apakah alamat merupakan exit node VPN atau Tor yang
                    diketahui.
                is_data_center:
                  type: boolean
                  description: Apakah alamat milik jaringan hosting atau pusat data.
                proxy_type:
                  type: string
                  nullable: true
                  description: >-
                    Klasifikasi proksi dari alamat sebagai string opak, atau
                    null.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Waktu ketika alamat terakhir diperkaya.
              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: >-
                Sinyal risiko email dan telepon yang di-cache dari subjek, atau
                null jika tidak ada profil untuk subjek tersebut.
              properties:
                email_risk_score:
                  type: integer
                  nullable: true
                  description: Skor risiko email.
                email_deliverability:
                  type: string
                  nullable: true
                  description: Hasil evaluasi keterkiriman email.
                email_is_disposable:
                  type: boolean
                  nullable: true
                  description: Apakah alamat email bersifat sekali pakai.
                email_is_breached:
                  type: boolean
                  nullable: true
                  description: >-
                    Apakah alamat email muncul dalam kebocoran data yang
                    diketahui.
                email_social_count:
                  type: integer
                  nullable: true
                  description: Jumlah akun online yang terhubung ke alamat email.
                email_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nama layanan online tempat akun yang ditautkan ke alamat
                    email ditemukan.
                phone_risk_score:
                  type: integer
                  nullable: true
                  description: Skor risiko telepon.
                phone_line_type:
                  type: string
                  nullable: true
                  description: Jenis saluran telepon.
                phone_carrier:
                  type: string
                  nullable: true
                  description: Nama operator telepon.
                phone_social_count:
                  type: integer
                  nullable: true
                  description: Jumlah akun online yang terhubung ke nomor telepon.
                phone_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nama layanan online tempat akun yang ditautkan ke nomor
                    telepon ditemukan.
                source_provider:
                  type: string
                  nullable: true
                  description: Pengidentifikasi tidak transparan dari sumber profil.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Waktu profil terakhir disegarkan.
              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: >-
                Nama tag yang dilampirkan ke peristiwa (tindakan aturan
                `add_tags`).
    MonitoringEvent:
      type: object
      description: >-
        Satu event pemantauan tersimpan sebagaimana dikembalikan oleh endpoint
        daftar dan linimasa subjek. Bukti terbatas (payload, konteks perangkat,
        bukti aturan) hanya dikembalikan oleh `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: >-
            Pengidentifikasi Didit untuk event tersebut. Gunakan sebagai
            `{event_uuid}` dalam panggilan pengambilan dan penghapusan.
        event_id:
          type: string
          maxLength: 128
          description: Pengenal Anda sendiri, kunci idempotensi yang Anda kirimkan.
        event_category:
          type: string
          enum:
            - auth
            - session
            - gameplay
            - bonus
            - affiliate
            - payment
            - dispute
            - security
            - responsible_gambling
            - custom
          description: Kategori peristiwa.
        action_type:
          type: string
          maxLength: 128
          description: Hal yang terjadi dalam kategori, sesuai yang Anda kirimkan.
        occurred_at:
          type: string
          format: date-time
          description: Waktu ketika peristiwa terjadi di pihak Anda.
        received_at:
          type: string
          format: date-time
          description: Waktu ketika Didit menerima event tersebut.
        status:
          type: string
          enum:
            - ACCEPTED
            - APPROVED
            - IN_REVIEW
            - DECLINED
          description: >-
            `ACCEPTED`: disimpan, tidak ada aturan yang cocok yang mengubah
            statusnya (jawaban normal untuk sebagian besar peristiwa, dan selalu
            menjadi jawaban dalam aplikasi sandbox, tempat aturan tidak
            dijalankan). `APPROVED`: aturan cocok dan skor tetap di bawah ambang
            batas peninjauan Anda. `IN_REVIEW`: aturan menaikkan skor melampaui
            ambang batas peninjauan atau menetapkan status tersebut. `DECLINED`:
            aturan menolaknya atau skor melampaui ambang batas penolakan Anda.
        score:
          type: integer
          description: >-
            Skor aturan yang terakumulasi. Dimulai dari 0; tindakan aturan
            `add_score` mengubahnya (selisih negatif diizinkan).
        subject_vendor_data:
          type: string
          maxLength: 255
          description: >-
            `subject.vendor_data` dari event: id Anda untuk pengguna atau
            perusahaan.
        subject_entity_type:
          type: string
          description: >-
            `individual` atau `company`: jenis subjek yang disebut oleh
            `subject_vendor_data`.
          example: individual
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID pengguna (individu) atau perusahaan yang menjadi hasil resolusi
            peristiwa, atau null jika rekaman tersebut sudah tidak ada.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: >-
            Pihak lain dalam peristiwa P2P (dipromosikan dari
            `payload.counterparty_vendor_data`).
          maxLength: 255
        session_id:
          type: string
          nullable: true
          description: '`session.session_id` dikirim bersama event.'
          maxLength: 255
        device_fingerprint:
          type: string
          nullable: true
          description: '`device_context.fingerprint` dikirim bersama peristiwa.'
          maxLength: 255
        ip_address:
          type: string
          nullable: true
          description: >-
            Alamat IP peristiwa. Pada jalur server ini adalah
            `device_context.network_context.ip_address` seperti yang Anda
            kirimkan; pada jalur perangkat ini adalah IP permintaan.
          maxLength: 64
        ip_country:
          type: string
          nullable: true
          description: >-
            Kode negara dari `ip_address` hasil pengayaan IP, atau null jika
            alamat tidak diperkaya (hilang, privat, atau telemetri bernilai
            rendah yang alamatnya belum diketahui).
          example: ES
        amount:
          type: string
          nullable: true
          description: >-
            Jumlah sebagai string desimal dengan 18 tempat desimal, dari
            `transaction_context.amount`, `payload.amount` atau
            `payload.stake_amount`, sesuai urutan tersebut.
          example: '250.000000000000000000'
        currency:
          type: string
          nullable: true
          description: >-
            Mata uang dari `transaction_context.currency` atau
            `payload.currency`.
          maxLength: 10
        game_id:
          type: string
          nullable: true
          description: Dipromosikan dari `payload.game_id`.
          maxLength: 128
        round_id:
          type: string
          nullable: true
          description: Dipromosikan dari `payload.round_id`.
          maxLength: 128
        bonus_id:
          type: string
          nullable: true
          description: Dipromosikan dari `payload.bonus_id`.
          maxLength: 128
        affiliate_code:
          type: string
          nullable: true
          description: Dipromosikan dari `payload.affiliate_code`.
          maxLength: 128
        payment_reference_id:
          type: string
          nullable: true
          description: >-
            Referensi pembayaran dari `transaction_context.payment_reference_id`
            atau `payload.payment_reference_id`.
          maxLength: 255
        retention_class:
          type: string
          enum:
            - low_value
            - standard
            - risk_relevant
            - monetary_or_compliance
          description: >-
            Kelas retensi. Event pembayaran dan sengketa adalah
            `monetary_or_compliance`; event keamanan dan perjudian yang
            bertanggung jawab adalah `risk_relevant`; `session.page_view`,
            `session.sdk_heartbeat`, `session.sdk_loaded`,
            `session.device_seen`, `session.bot_signal_observed`,
            `bonus.promotion_viewed` dan `affiliate.referral_clicked` adalah
            `low_value`; selebihnya adalah `standard`. Event yang cocok dengan
            aturan aktif dipromosikan ke `risk_relevant` (tidak pernah
            diturunkan).
        rules_matched_count:
          type: integer
          minimum: 0
          description: >-
            Jumlah aturan yang cocok dengan peristiwa, termasuk aturan dalam
            mode `TEST` (yang mencatat bukti tetapi tidak menerapkan tindakan
            apa pun).
        correlation_pending:
          type: boolean
          description: >-
            `true` selama aturan asinkron (korelasi lintas subjek, atau urutan
            lebih dari 24 jam) masih harus berjalan untuk event ini. Ini akan
            terselesaikan dalam beberapa menit dan `status`, `score`, serta
            `rules_matched_count` akan diperbarui langsung di tempat.
        is_droppable:
          type: boolean
          description: >-
            Menentukan apakah SDK yang mengalami backpressure boleh mengabaikan
            event jenis ini. Bernilai `false` untuk setiap event `security`,
            `payment`, `dispute`, dan `responsible_gambling`, serta untuk
            `gameplay.bet_placed`, `gameplay.bet_settled`, dan
            `gameplay.p2p_settlement`.
    MonitoringEventRuleRun:
      type: object
      properties:
        rule_uuid:
          type: string
          format: uuid
          description: UUID aturan pemantauan transaksi.
        rule_title:
          type: string
          description: Judul aturan.
        library_key:
          type: string
          nullable: true
          description: >-
            Kunci pustaka saat aturan dipasang dari pustaka aturan, jika tidak
            maka null.
        matched:
          type: boolean
          description: 'Selalu `true`: hanya proses yang cocok yang dicatat.'
        mode:
          type: string
          enum:
            - ACTIVE
            - TEST
          description: >-
            Mode aturan saat dijalankan. Eksekusi `TEST` mencatat bukti tetapi
            tidak menerapkan tindakan apa pun.
        is_async:
          type: boolean
          description: >-
            `true` saat eksekusi berasal dari proses korelasi asinkron, bukan
            dari permintaan ingest.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: >-
            Tingkat keparahan aturan. Null untuk eksekusi `TEST` dan untuk
            aturan tanpa tingkat keparahan.
        score_delta:
          type: integer
          description: >-
            Seberapa besar proses ini mengubah skor event (0 untuk proses
            `TEST`).
        action_summary:
          type: string
          nullable: true
          description: >-
            Ringkasan singkat tindakan yang diterapkan, misalnya `score +40;
            add_tag:VPN_LOGIN`. Null jika tidak ada yang diterapkan.
        matched_payload:
          type: array
          description: >-
            Kondisi dan agregasi yang cocok. Entri kondisi memuat `field`,
            `operator`, `expected_value`, `current_value`, `matched`,
            `group_index`, `group_logic`, dan `field_source` (`server`, `sdk`,
            atau `customer`); entri agregasi memuat `metric`, `field`,
            `operator`, `expected_value`, `computed_value`, `window`, `filters`,
            `matched`, dan `sample_references`.
          items:
            type: object
            additionalProperties: true
        created_at:
          type: string
          format: date-time
          description: Waktu eksekusi aturan dicatat.
      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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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