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

# Daftar Event Pemantauan API

> Ambil event pemantauan Didit dengan filter kategori, status, subjek, perangkat, IP, referensi pembayaran, dan rentang waktu, dari yang terbaru.

Prompt API untuk Mencantumkan Event Pemantauan
Salin prompt ke papan klip

<pre>
  \`List and filter the monitoring events (logins, sessions, gameplay, bonuses, payments, disputes, security changes) stored for my Didit application.

  Endpoint:
  GET [https://verification.didit.me/v3/events/](https://verification.didit.me/v3/events/)

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

  Goal:

  * Search events for a back-office screen, an export job or an investigation: for example every payment and dispute event a rule matched last week, or every event from one device fingerprint or IP address.

  Behavior:

  * Newest occurred\_at first. Paginated with limit (default 50) and offset; follow next until it is null.
  * count is exact up to 100 and capped at 100 above that, so never use it to compute the number of pages.
  * Every filter is optional and filters combine with AND. Multi-value filters repeat the parameter (?event\_category=payment\&event\_category=dispute) and match any of the values.
  * Filters: event\_category, action\_type, status, retention\_class (multi-value); subject\_vendor\_data, subject\_entity\_type (company for a company, any other value for an individual), business\_vendor\_data, session\_id, device\_fingerprint, ip\_address, game\_id, round\_id, affiliate\_code, payment\_reference\_id, counterparty\_vendor\_data (exact match); matched\_only=true; occurred\_from and occurred\_to (inclusive; ISO 8601 with Z or an offset whose + is sent as %2B, for example 2026-10-17T09:00:00Z, or a date alone, which means 00:00 UTC of that day); search (case-insensitive substring of event\_id, action\_type, subject\_vendor\_data or counterparty\_vendor\_data).
  * Each result is a summary. Call GET /v3/events/{event_uuid}/ for the payload, device context, IP enrichment and rule evidence.
  * For one subject, prefer GET /v3/events/subjects/{vendor_data}/, which keeps an individual and a company with the same vendor\_data apart.
  * Reads work whether or not event ingestion is switched on.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/?event\_category=payment\&event\_category=dispute\&matched\_only=true\&limit=50](https://verification.didit.me/v3/events/?event_category=payment\&event_category=dispute\&matched_only=true\&limit=50)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * results\[].event\_uuid - Didit id of the event; use it as {event_uuid} in the detail and delete calls.
  * results\[].event\_id - your own id (the idempotency key you sent).
  * results\[].event\_category, action\_type, occurred\_at, received\_at.
  * results\[].status (ACCEPTED, APPROVED, IN\_REVIEW, DECLINED) and score.
  * results\[].rules\_matched\_count and correlation\_pending (true while an asynchronous rule still has to run).
  * results\[].ip\_country, device\_fingerprint, session\_id, amount, currency, payment\_reference\_id.
  * results\[].is\_droppable - whether an SDK under backpressure may drop events of this kind.
  * next - URL of the next page, or null.

  Failure modes:

  * 400 - limit or offset larger than 1000000.
  * 401 - the API key has expired.
  * 403 - missing API key (a wrong, revoked or expired key gets 401), a scoped key without transactions: read, or a request from outside the key's IP list.
  * 429 - more than 600 reads per minute for this API key; honor Retry-After.

  Side effects: none. This is a pure read.

  For the full integration shape, see /integration/integration-prompt.\`
</pre>

Tempel ke

Event disimpan dalam [kelas retensi](https://docs.didit.me/id/transaction-monitoring/events.md#retensi), sehingga event yang masa retensinya telah berakhir tidak lagi muncul di sini. Lihat [Ingesti event](https://docs.didit.me/id/transaction-monitoring/events.md#membaca-kembali-event) untuk referensi filter dan [Aturan tentang event](https://docs.didit.me/id/transaction-monitoring/event-rules.md) untuk mengetahui apa yang membuat `rules_matched_count` berubah.


## OpenAPI

````yaml id/openapi-25.json GET /v3/events/
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/:
    get:
      tags:
        - Monitoring Events
      summary: Mencantumkan event pemantauan
      description: >-
        Mencantumkan daftar event pemantauan yang disimpan untuk aplikasi Anda,
        `occurred_at` terbaru lebih dahulu, dengan filter opsional yang
        digabungkan dengan AND. Filter multi-nilai (`event_category`,
        `action_type`, `status`, `retention_class`) mengulang parameter dan
        mencocokkan salah satu nilainya; filter lainnya merupakan pencocokan
        persis, dan nilai yang tidak dikenal tidak mengembalikan event apa pun.
        Setiap hasil adalah ringkasan: panggil `GET /v3/events/{event_uuid}/`
        untuk payload, konteks perangkat, pengayaan IP, dan bukti aturan, serta
        utamakan `GET /v3/events/subjects/{vendor_data}/` untuk riwayat satu
        subjek. Pembacaan berfungsi terlepas dari apakah penyerapan event
        diaktifkan atau tidak. Kunci API dengan pembatasan cakupan memerlukan
        `transactions: read`. Lihat [Penyerapan
        event](https://docs.didit.me/id/transaction-monitoring/events).
      operationId: list_monitoring_events
      parameters:
        - name: limit
          in: query
          required: false
          description: >-
            Jumlah event maksimum per halaman. Defaultnya 50. Nilai di atas
            1000000 mengembalikan `400`; nilai non-numerik, nol, atau negatif
            akan dialihkan ke 50.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 50
        - name: offset
          in: query
          required: false
          description: >-
            Jumlah event yang dilewati. Default-nya 0. Lebih disarankan
            mengikuti URL `next` dari respons.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 0
        - name: event_category
          in: query
          required: false
          description: >-
            Hanya event dalam kategori ini. Ulangi parameter untuk beberapa
            nilai (`?event_category=payment&event_category=dispute`); event yang
            cocok dengan salah satunya akan dikembalikan.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - auth
                - session
                - gameplay
                - bonus
                - affiliate
                - payment
                - dispute
                - security
                - responsible_gambling
                - custom
          example:
            - payment
            - dispute
        - name: action_type
          in: query
          required: false
          description: >-
            Hanya event dengan jenis tindakan ini (persis, peka huruf
            besar-kecil). Ulangi untuk beberapa nilai.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - deposit_completed
            - chargeback_opened
        - name: status
          in: query
          required: false
          description: Hanya event dengan status ini. Ulangi untuk beberapa nilai.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACCEPTED
                - APPROVED
                - IN_REVIEW
                - DECLINED
          example:
            - IN_REVIEW
            - DECLINED
        - name: retention_class
          in: query
          required: false
          description: Hanya event dalam kelas retensi ini. Ulangi untuk beberapa nilai.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - low_value
                - standard
                - risk_relevant
                - monetary_or_compliance
          example:
            - risk_relevant
        - name: subject_vendor_data
          in: query
          required: false
          description: >-
            Kecocokan persis pada `vendor_data` subjek. ID yang sama dapat
            menamai individu dan perusahaan; tambahkan `subject_entity_type`
            untuk memilih salah satu, atau gunakan `GET
            /v3/events/subjects/{vendor_data}/`.
          schema:
            type: string
          example: user-42
        - name: subject_entity_type
          in: query
          required: false
          description: >-
            `company` hanya mengembalikan event dari subjek perusahaan; nilai
            non-kosong lainnya (misalnya `individual`) hanya mengembalikan event
            dari perorangan. Jangan sertakan untuk mengembalikan keduanya.
          schema:
            type: string
            enum:
              - individual
              - company
          example: individual
        - name: business_vendor_data
          in: query
          required: false
          description: >-
            Kecocokan persis pada `business.vendor_data` yang dikirim bersama
            event.
          schema:
            type: string
          example: merchant-7
        - name: session_id
          in: query
          required: false
          description: Kecocokan persis pada `session.session_id`.
          schema:
            type: string
          example: web-session-abc
        - name: device_fingerprint
          in: query
          required: false
          description: Kecocokan persis pada `device_context.fingerprint`.
          schema:
            type: string
          example: fp-a8c1
        - name: ip_address
          in: query
          required: false
          description: Kecocokan persis pada alamat IP peristiwa.
          schema:
            type: string
          example: 203.0.113.42
        - name: game_id
          in: query
          required: false
          description: Kecocokan persis pada `game_id` yang dipromosikan.
          schema:
            type: string
          example: poker-holdem-01
        - name: round_id
          in: query
          required: false
          description: Kecocokan persis pada `round_id` yang dipromosikan.
          schema:
            type: string
          example: round-88231
        - name: affiliate_code
          in: query
          required: false
          description: Kecocokan persis pada `affiliate_code` yang dipromosikan.
          schema:
            type: string
          example: aff-summer
        - name: payment_reference_id
          in: query
          required: false
          description: >-
            Kecocokan persis pada referensi pembayaran (dari
            `transaction_context.payment_reference_id` atau
            `payload.payment_reference_id`).
          schema:
            type: string
          example: dep_735
        - name: counterparty_vendor_data
          in: query
          required: false
          description: Kecocokan persis pada `counterparty_vendor_data` yang dipromosikan.
          schema:
            type: string
          example: user-77
        - name: matched_only
          in: query
          required: false
          description: >-
            `true` (juga `1` atau `yes`, tidak peka huruf besar/kecil) hanya
            mengembalikan event yang cocok dengan setidaknya satu aturan
            (`rules_matched_count` di atas 0). Nilai lainnya akan diabaikan.
          schema:
            type: boolean
            default: false
          example: true
        - name: occurred_from
          in: query
          required: false
          description: >-
            Hanya event dengan `occurred_at` pada atau setelah waktu ini
            (inklusif). Kirimkan nilai ISO 8601: `2026-10-01T00:00:00Z`, offset
            eksplisit dengan tanda `+` yang di-percent-encode
            (`2026-10-01T02:00:00%2B02:00`; tanda `+` tanpa encoding akan
            didekodekan sebagai spasi dan nilainya tidak dapat lagi di-parse),
            atau tanggal saja (`2026-10-01`), yang berarti pukul 00:00:00 UTC
            pada hari tersebut. Nilai tanpa offset dibaca sebagai UTC. Nilai
            dalam format lainnya tidak diterima.
          schema:
            type: string
            format: date-time
          example: '2026-10-01T00:00:00Z'
        - name: occurred_to
          in: query
          required: false
          description: >-
            Hanya event dengan `occurred_at` pada atau sebelum waktu ini
            (inklusif). Tanggal saja berarti awal hari tersebut, sehingga
            `occurred_to=2026-10-15` tidak menyertakan sisa hari 15 Oktober;
            kirimkan `2026-10-15T23:59:59Z` untuk menyertakannya. Kirimkan nilai
            ISO 8601: `2026-10-01T00:00:00Z`, offset eksplisit dengan tanda `+`
            yang di-percent-encode (`2026-10-01T02:00:00%2B02:00`; tanda `+`
            tanpa encoding akan didekodekan sebagai spasi dan nilainya tidak
            dapat lagi di-parse), atau tanggal saja (`2026-10-01`), yang berarti
            pukul 00:00:00 UTC pada hari tersebut. Nilai tanpa offset dibaca
            sebagai UTC. Nilai dalam format lainnya tidak diterima.
          schema:
            type: string
            format: date-time
          example: '2026-10-17T23:59:59Z'
        - name: search
          in: query
          required: false
          description: >-
            Pencocokan substring yang tidak peka huruf besar/kecil pada
            `event_id`, `action_type`, `subject_vendor_data`, atau
            `counterparty_vendor_data`.
          schema:
            type: string
          example: chargeback
      responses:
        '200':
          description: Satu halaman ringkasan event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitoringEventPage'
              examples:
                Payment and dispute events:
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - event_uuid: 11111111-2222-3333-4444-555555555555
                        event_id: chargeback-2026-10-16-000318
                        event_category: dispute
                        action_type: chargeback_opened
                        occurred_at: '2026-10-16T14:02:11Z'
                        received_at: '2026-10-16T14:02:12.418230Z'
                        status: IN_REVIEW
                        score: 60
                        subject_vendor_data: user-42
                        subject_entity_type: individual
                        subject_uuid: 66666666-7777-8888-9999-000000000000
                        counterparty_vendor_data: null
                        session_id: null
                        device_fingerprint: null
                        ip_address: null
                        ip_country: null
                        amount: '250.000000000000000000'
                        currency: EUR
                        game_id: null
                        round_id: null
                        bonus_id: null
                        affiliate_code: null
                        payment_reference_id: dep_735
                        retention_class: monetary_or_compliance
                        rules_matched_count: 1
                        correlation_pending: false
                        is_droppable: false
                      - event_uuid: 22222222-3333-4444-5555-666666666666
                        event_id: login-2026-10-15-000912
                        event_category: auth
                        action_type: login
                        occurred_at: '2026-10-15T08:30:00.120000Z'
                        received_at: '2026-10-15T08:30:00.734512Z'
                        status: ACCEPTED
                        score: 0
                        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: standard
                        rules_matched_count: 0
                        correlation_pending: false
                        is_droppable: true
        '400':
          description: >-
            `limit` atau `offset` lebih besar dari 1000000. Bagian body adalah
            array JSON dengan satu pesan. Nilai `limit` yang non-numerik atau
            non-positif dialihkan kembali ke default 50 daripada gagal.
          content:
            application/json:
              examples:
                limit too large:
                  summary: limit di atas 1000000
                  value:
                    - limit must not exceed 1000000.
                offset too large:
                  summary: offset di atas 1000000
                  value:
                    - offset must not exceed 1000000.
        '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.
        '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/?event_category=payment&event_category=dispute&matched_only=true&occurred_from=2026-10-01T00:00:00Z&limit=50'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.monitoring_events.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.monitoringEvents.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.MonitoringEvents.ListAutoPaging(ctx, didit.MonitoringEventsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            for (var item : client.monitoringEvents().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->monitoringEvents->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.monitoring_events.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            await foreach (var item in await
            client.MonitoringEvents.ListAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    MonitoringEventPage:
      type: object
      description: Satu halaman event pemantauan, `occurred_at` terbaru lebih dahulu.
      required:
        - count
        - next
        - previous
        - results
      properties:
        count:
          type: integer
          description: >-
            Jumlah event yang cocok, tepat hingga 100 dan dibatasi pada 100 di
            atasnya. Jangan menghitung jumlah halaman dari nilai ini; ikuti
            `next` hingga bernilai null.
        next:
          type: string
          format: uri
          nullable: true
          description: URL halaman berikutnya, atau null pada halaman terakhir.
        previous:
          type: string
          format: uri
          nullable: true
          description: URL halaman sebelumnya, atau null pada halaman pertama.
        results:
          type: array
          items:
            $ref: '#/components/schemas/MonitoringEvent'
    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`.
  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.