Langsung ke konten utama
POST
curl
Ingesti event bersifat opt-in. Aktifkan terlebih dahulu di Transactions > Settings > Event monitoring sebelum Anda mengirim event. Sampai fitur ini diaktifkan, endpoint ini merespons 403 dengan "code": "event_monitoring_disabled".
Ingesti event mencakup envelope, sepuluh kategori, kunci payload yang wajib diisi, dan kelas retensi. Aturan event menjelaskan aturan mana yang dijalankan dalam permintaan dan mana yang dijalankan secara asinkron. Untuk mengirim event dari browser atau aplikasi, alih-alih dari backend Anda, gunakan pengiriman event melalui SDK.

Otorisasi

x-api-key
string
header
wajib

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.

Body

application/json

Envelope untuk event, sama untuk setiap kategori. Alias camelCase diterima: eventId, eventCategory (atau category), actionType, occurredAt, timeZone (atau zoneId), deviceContext (atau device), transactionContext, customValues (atau props); di dalam subject: vendorData, entityType, fullName; di dalam session: sessionId, pageUrl; di dalam transaction_context: paymentReferenceId.

event_id
string
wajib

Pengidentifikasi Anda untuk event tersebut, unik per aplikasi. Nilai ini merupakan kunci idempotensi: mengirim ulang event_category, action_type, occurred_at, subject.vendor_data, dan payload yang sama di bawahnya dianggap sebagai replay, sedangkan perbedaan apa pun akan menimbulkan konflik.

Maximum string length: 128
Contoh:

"login-2026-10-17-000001"

event_category
enum<string>
wajib

Kategori peristiwa.

Opsi yang tersedia:
auth,
session,
gameplay,
bonus,
affiliate,
payment,
dispute,
security,
responsible_gambling,
custom
Contoh:

"auth"

action_type
string
wajib

Hal yang terjadi dalam kategori. Kosakata terbuka; tindakan terkelola yang tercantum di Penyerapan peristiwa (misalnya login, deposit_completed, chargeback_opened) membuka validasi bertipe dan kolom aturan terkelola. Spasi di awal dan akhir akan dipangkas.

Required string length: 1 - 128
Contoh:

"login"

occurred_at
string<date-time>
wajib

Waktu ketika peristiwa terjadi di pihak Anda, ISO 8601 (nilai tanpa offset dibaca sebagai UTC). Tidak boleh lebih dari 7 hari di masa lalu dan tidak lebih dari 5 menit di masa depan.

Contoh:

"2026-10-17T09:15:02.481Z"

subject
object
wajib

Pengguna atau perusahaan yang terkait dengan event tersebut. Nilai ini merujuk ke pengguna (atau perusahaan) dengan vendor_data ini di aplikasi Anda; entitas baru akan dibuat jika belum ada.

time_zone
string | null

Zona waktu kejadian di pihak Anda, misalnya Europe/Madrid. Disimpan bersama peristiwa; tidak dikembalikan oleh endpoint baca.

Maximum string length: 64
business
object

Bisnis yang memiliki event tersebut, jika berbeda dari subjek. Hanya vendor_data yang dibaca.

session
object

Konteks sesi Anda untuk peristiwa tersebut.

device_context
object

Konteks perangkat dan jaringan, disimpan sebagaimana dikirim dan dikembalikan oleh GET /v3/events/{event_uuid}/. Pada jalur server ini Didit tidak melihat koneksi pengguna akhir, sehingga IP yang diperkaya dan digunakan oleh aturan adalah network_context.ip_address sebagaimana Anda mengirimkannya.

transaction_context
object

Konteks uang. Nilai yang tidak kosong di sini juga memenuhi kunci payload yang diperlukan untuk tindakan.

payload
object

Kolom domain kategori, maksimal 16384 byte setelah di-encode ke JSON. Beberapa tindakan memerlukan kunci (dalam payload atau transaction_context): gameplay.p2p_settlement membutuhkan game_id, counterparty_vendor_data, stake_amount, net_result_amount, role, dan salah satu dari hand_id, round_id, match_id; gameplay.bet_placed dan gameplay.bet_settled membutuhkan game_id; payment.deposit_initiated, payment.deposit_completed, payment.withdrawal_requested, dan payment.withdrawal_completed membutuhkan payment_reference_id, amount, currency, payment_method, status; payment.withdrawal_address_changed membutuhkan withdrawal_address_hash; dispute.chargeback_opened, dispute.chargeback_won, dan dispute.chargeback_lost membutuhkan payment_reference_id dan salah satu dari dispute_id, chargeback_id; session.bot_signal_observed membutuhkan telemetry_schema_version dan salah satu dari bot_score, actions_per_minute, timing_variance_ms, pointer_entropy, keystroke_entropy, reaction_time_ms_p50; responsible_gambling.self_exclusion_match membutuhkan registry_source, exclusion_status, identity_match_ref. Setiap tindakan security yang berakhiran _changed membutuhkan changed_field, ditambah previous_reference_hash atau new_reference_hash ketika kolom tersebut berupa password, mfa_method, mfa, email, phone, withdrawal_address, payout_method, atau api_key. Kirimkan hash dan referensi, jangan pernah nomor kartu, alamat penarikan lengkap, hash kata sandi, atau rahasia MFA.

custom_values
object

Hingga 100 kunci milik Anda sendiri, dapat diakses dari aturan sebagai custom_values.<key>. Nilai harus berupa skalar (string, number, boolean, atau null); objek bersarang dan larik akan ditolak.

Respons

Pemutaran ulang idempoten: event dengan event_id ini dan konten yang sama sudah tersimpan. Tidak ada yang disimpan atau dievaluasi ulang; body menjelaskan event yang tersimpan.

Hasil pemrosesan satu event. Struktur yang sama dikembalikan untuk event baru dan untuk pemutaran ulang yang idempoten.

event_uuid
string<uuid>
wajib

Pengidentifikasi Didit untuk event yang disimpan.

event_id
string
wajib

event_id Anda.

status
enum<string>
wajib

Status setelah aturan real-time dijalankan. Lihat MonitoringEvent.status.

Opsi yang tersedia:
ACCEPTED,
APPROVED,
IN_REVIEW,
DECLINED
score
integer
wajib

Skor setelah aturan real-time dijalankan.

rules_evaluated_count
integer
wajib

Jumlah aturan event yang dievaluasi dalam permintaan. 0 dalam aplikasi sandbox, tempat tidak ada aturan yang berjalan.

Rentang yang diperlukan: x >= 0
rules_matched_count
integer
wajib

Jumlah aturan yang cocok, termasuk aturan mode TEST.

Rentang yang diperlukan: x >= 0
correlation_pending
boolean
wajib

true jika aturan asinkron masih harus dijalankan. Baca GET /v3/events/{event_uuid}/ beberapa menit kemudian untuk status dan score akhir.

retention_class
enum<string>
wajib

Kelas retensi, setelah promosi apa pun oleh aturan yang cocok.

Opsi yang tersedia:
low_value,
standard,
risk_relevant,
monetary_or_compliance
expires_at
string<date-time> | null
wajib

Waktu ketika peristiwa kedaluwarsa berdasarkan kelas retensinya dan dihapus. Null untuk peristiwa monetary_or_compliance (pembayaran dan sengketa).

idempotent_replay
boolean
wajib

true jika event dengan event_id ini dan konten yang sama telah disimpan sebelumnya; nilainya adalah nilai dari event yang disimpan dan tidak ada aturan yang dijalankan ulang.

rule_matches
object[]
wajib

Aturan yang cocok dengan event.

Terakhir diubah pada 7 November 2026