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

# Event Autentikasi dan Webhook

> Cara aktivitas login sampai ke konsol Didit: ringkasan dan linimasa login pengguna, tampilan penipuan, aturan event, dan webhook auth.*.

> [!WARNING]
>
> Autentikasi masih baru. Didit mengaktifkan pengiriman peristiwa untuk aplikasi Anda. Tindakan aturan yang mengeluarkan orang dari sesi atau memblokir mereka belum aktif: aturan yang menggunakannya akan mencatat tindakan tersebut tanpa menerapkannya.

Didit Authentication mengirim aktivitasnya sendiri ke Didit secara otomatis. Anda tidak perlu mengirim peristiwa masuk sendiri. Setiap peristiwa dikaitkan dengan orang yang memiliki `vendor_data` yang sama, bersama verifikasi dan transaksinya.

Jangan juga mengirim peristiwa `auth.login` Anda sendiri ke [`/v3/events/`](https://docs.didit.me/id/transaction-monitoring/events) untuk masuk yang sama. Peristiwa tersebut akan tersimpan dua kali, dan tidak memperbarui ringkasan masuk orang tersebut maupun mengirim webhook `auth.*`.

## Apa yang dikirim

| Aktivitas masuk | Disimpan sebagai | Webhook |
| - | - | - |
| Pendaftaran | `auth.signup` | `auth.signup` |
| Masuk | `auth.login` | `auth.login` |
| Gagal masuk | `auth.login_failed` | `auth.login_failed` |
| Keluar, atau sesi dicabut | `auth.logout` | Tidak ada |
| Lupa kata sandi | `auth.password_forgot` | `auth.password_reset_requested` |
| Atur ulang kata sandi | `auth.password_reset` | `auth.password_reset_completed` |
| Kata sandi diubah | `security.password_changed` | Tidak ada |
| Autentikator ditambahkan atau diubah | `security.mfa_changed` | `auth.mfa_changed` |
| Masuk dari perangkat baru | `security.device_changed` | `auth.new_device` |
| Akun dikunci atau diblokir | `security.account_locked` | `auth.account_locked` |
| Akses agen disetujui atau dicabut | `security.agent_access_approved`, `security.agent_access_revoked` | Tidak ada |

Keputusan [Perlindungan bot](https://docs.didit.me/id/authentication/bot-protection.md) (`attempt_challenged`, `attempt_blocked` dan lainnya) juga disimpan sebagai peristiwa `auth.*`, sehingga muncul di linimasa.

Perangkat baru adalah perangkat yang tidak cocok dengan ID perangkat maupun sidik jari yang pernah dipakai orang tersebut untuk masuk sebelumnya.

Setiap peristiwa memuat:

* metode masuk (`method`, misalnya `password` atau `passkey`) dan `reason` untuk kegagalan dan penguncian,
* alamat, dan konteks perangkat: ID perangkat persisten, sidik jari, user agent, dan skor bot jika klien mengirimkannya,
* ID sesi.

Percobaan gagal masuk dengan pengenal yang tidak dikenal atau belum terbukti tidak memiliki `vendor_data`. Didit tidak pernah menerima pengenal itu sendiri, hanya hash berkunci darinya. Percobaan ini tidak pernah ditautkan ke orang mana pun, tetapi tampilan fraud di bawah tetap menghitungnya per akun.

## Di mana Anda melihatnya

### Profil orang

Setiap orang mendapatkan ringkasan masuk, yang ditampilkan di daftar dan profil **Orang** serta dikembalikan di [`/v3/users/`](https://docs.didit.me/id/management-api/users/list) sebagai `authentication`:

```json theme={null}
{
  "authentication": {
    "status": "ACTIVE",
    "methods": ["password", "passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* `status` bernilai `ACTIVE`, `LOCKED` (dikunci oleh kebijakan keamanan) atau `BLOCKED` (diblokir oleh tim Anda).
* `authentication` bernilai `null` untuk orang yang tidak memiliki identitas masuk.
* Anda dapat memfilter **Orang** berdasarkan status masuk, metode masuk (termasuk "none") dan MFA.

### Peristiwa dan linimasa

Peristiwa masuk muncul di halaman konsol **Peristiwa** dan di tab **Peristiwa** pada setiap profil orang. Membacanya memerlukan izin `list:transactions` atau `read:authentication`. Saat Anda membuka peristiwa masuk, Anda akan melihat perangkat dan jaringannya, alasan perlindungan jika ada (misalnya `bots`, `stuffing`, `brute`, `vpn`, `travel` atau `attack_mode`), serta aturan yang cocok dengannya.

### Tampilan fraud

Halaman **Peristiwa** memiliki tampilan siap pakai yang menggabungkan masuk dengan aktivitas lain orang tersebut:

| Tampilan | Yang ditemukan |
| - | - |
| Satu perangkat, beberapa orang | 3 orang atau lebih pada satu sidik jari perangkat dalam 7 hari. |
| Lonjakan gagal masuk | Satu IP publik dengan 10 kali gagal masuk atau lebih terhadap 3 akun atau lebih (24 jam secara default), beserta 30 menit tersibuknya. |
| Perangkat baru, lalu pencairan | Masuk dari perangkat yang belum terlihat dalam 90 hari, lalu penarikan atau transaksi keluar dalam 15 menit. |
| Kata sandi diubah, lalu transaksi | Transaksi keluar dalam 30 menit setelah perubahan kata sandi. |
| Banyak sesi dari satu IP | 3 sesi verifikasi atau lebih untuk 3 orang atau lebih dalam 48 jam. |

Tampilan menelusuri data hingga 31 hari ke belakang.

## Aturan peristiwa

Peristiwa masuk diproses melalui [aturan peristiwa](https://docs.didit.me/id/transaction-monitoring/event-rules.md) yang sama seperti peristiwa Anda yang lain. Bundel **Authentication fraud** memiliki empat preset:

| Preset | Cocok dengan | Tindakan |
| - | - | - |
| Pengambilalihan akun | Perubahan kata sandi atau MFA setelah 3 kegagalan masuk atau lebih dan perangkat baru dalam 1 jam. | Tolak (skor 90), tag, keluarkan dari sesi, blokir |
| Credential stuffing | Masuk berhasil dari IP dengan 10 kegagalan atau lebih pada 3 akun atau lebih dalam 1 jam. | Tinjau (skor 60), tag, keluarkan dari sesi |
| Perangkat baru, lalu pembayaran | Penarikan dalam 15 menit setelah perangkat baru. | Tinjau (skor 60), tag, keluarkan dari sesi |
| Perjalanan mustahil | Jarak lebih dari 500 km antara proses masuk dengan kecepatan lebih dari 1.000 km/jam. | Tinjau (skor 50), tag, keluarkan dari sesi |

Kolom yang berguna untuk aturan Anda sendiri meliputi `event.category`, `event.action_type`, `event.payload.method`, `event.payload.reason`, `event.security.changed_field`, `event.device.fingerprint`, `event.device.persistent_device_id`, `event.device.bot_score`, `event.ip.is_vpn_or_tor`, `event.ip.is_data_center`, `event.ip.country`, `event.ip.travel_distance_km` dan `event.ip.travel_speed_kmh`.

Aturan peristiwa hanya memiliki dua tindakan untuk peristiwa masuk: **Keluarkan orang dari setiap sesi** dan **Blokir orang agar tidak dapat masuk**. Keduanya belum aktif. Sampai diaktifkan, aturan mencatatnya dengan status `DISABLED` dan tidak menerapkannya. Tindakan lain (skor, status, tag, catatan, daftar, dan kasus) berfungsi seperti biasa.

## Webhook

Berlangganan tipe `auth.*` yang Anda butuhkan pada [tujuan webhook](https://docs.didit.me/id/integration/webhooks.md). Hanya tujuan yang berlangganan yang menerimanya. Gunakan **Try Webhook** di konsol untuk mengirim contoh setiap tipe.

```json auth.new_device theme={null}
{
  "webhook_type": "auth.new_device",
  "event_id": "0b6f2a71-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
  "application_id": "11111111-2222-3333-4444-555555555555",
  "environment": "live",
  "timestamp": 1760433164,
  "created_at": 1760433164,
  "vendor_user_id": "8f0c3a52-4b7e-4a51-9a56-1f2d3c4b5a69",
  "vendor_data": "user-1234",
  "auth_event": {
    "event_id": "auth:3d0f1c2e-7a8b-4c5d-9e0f-1a2b3c4d5e6f",
    "event_uuid": "5b6c7d8e-9f01-4a2b-8c3d-4e5f60718293",
    "type": "security.device_changed",
    "method": "passkey",
    "reason": null,
    "occurred_at": "2026-10-14T09:12:44+00:00",
    "ip_address": "203.0.113.10",
    "device": {
      "fingerprint": "fp_7f3a",
      "label": "Chrome on Android",
      "persistent_device_id": "dev_4c21"
    }
  },
  "authentication": {
    "status": "ACTIVE",
    "methods": ["passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* Deduplikasi berdasarkan `auth_event.event_id`, yaitu ID peristiwa masuk itu sendiri: ID ini tetap sama untuk setiap pengiriman peristiwa tersebut. `auth_event.event_uuid` digunakan untuk membaca kembali peristiwa tersimpan di `GET /v3/events/{event_uuid}/`.
* `vendor_data`, `vendor_user_id` dan `authentication` bernilai `null` untuk percobaan yang tidak menyebut orang yang dikenal.
* Verifikasi tanda tangan seperti untuk setiap webhook Didit (lihat [webhook](https://docs.didit.me/id/integration/webhooks.md)).

## Penagihan

Event autentikasi tidak ditagih per event. Autentikasi ditagih berdasarkan pengguna aktif bulanan.

## Event yang dimiliki aplikasi Anda

Untuk tindakan yang terjadi di produk Anda sendiri, seperti perubahan profil atau permintaan pencairan dana, kirimkan event sendiri dari server Anda (`POST /v3/events/` dengan `x-api-key`) atau dari perangkat menggunakan token pemantauan dengan cakupan tertentu. Lihat [event](https://docs.didit.me/id/transaction-monitoring/events.md) dan [pengiriman event SDK](https://docs.didit.me/id/transaction-monitoring/sdk-event-submission.md). Gunakan `vendor_data` dari token akses pengguna akhir tersebut.


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