> ## 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 Timeline Jaringan Penipuan

> Ambil riwayat event jaringan penipuan Didit; dengan contract=2, dapatkan timeline berhalaman: percobaan, transaksi, login, aturan, dan kasus terkait.



Prompt API Timeline Jaringan
        Salin prompt ke papan klip



      
      

\<pre>

\`Retrieve a fraud network's event timeline through the Management API.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/

Authentication:
Use the x-api-key header with my Didit API key.
Networks endpoints need a full-access API key: a key with restricted access gets 403.

Path parameter:
\- network_uuid - the network's UUID.

Two shapes, chosen by the contract query parameter:

1\. Default (no contract parameter): unchanged.
Response 200: {"results": [NetworkTimelineEvent, ...]}, oldest first, not paginated.
Each event has event_type (network_detected, signal_observed, network_active, network_in_review, network_resolved, network_dismissed), occurred_at, label, and metadata (event-specific, e.g. {network_id} for detection, {signal_type, subject_count, is_hub} for a signal observation, {reason} for a status change).
limit, cursor and event_type are ignored in this mode.

2\. Typed timeline (contract=2, opt-in):
Query params:
\- contract=2: required for this mode. Any other value is a 400.
\- limit: 1 to 500, default 100.
\- cursor: the previous page's next_cursor. An invalid or empty cursor is a 400 ("This cursor is not valid. Reload the feed.").
\- event_type: repeat it or pass a comma-separated list, at most 20 values. Defaults to every type: network_detected, signal_observed, network_active, network_in_review, network_resolved, network_dismissed, verification_attempt, transaction, login, rule_hit, case_linked, note_added.
Response 200: {"results": [NetworkTypedTimelineEvent, ...], "next_cursor": string|null}, newest first. Keep calling with cursor=next_cursor until next_cursor is null.
Each typed event has:
\- event_type, occurred_at, label, metadata: as in the default shape (metadata is {} for events that are not the network's own).
\- id: "<source>:<uuid>", unique within the timeline. ingested_at: when Didit stored it.
\- account: the member account {node_id ("vendor_user:<uuid>", "vendor_business:<uuid>" or "transaction_party:<uuid>"), node_type (account|business_account|transaction_party), uuid, vendor_data, display_name, ownership (owned|organization), route {kind, id, application_id}}. Null for the network's own events, case_linked and note_added.
\- source_ref: the record it was read from {kind (session|business_session|transaction|monitoring_event|case), id, ownership, route}. route is absent for monitoring_event and case. Null for the network's own events and note_added.
\- ownership: owned when the record belongs to the application I called, organization when it belongs to another application of my organization.
\- One detail block per event type, the others null:
\- verification_attempt {session_id, session_number, attempt, attempt_count, status, status_changed_at, decline_reasons [{risk, feature, short_description}] (declined sessions only)}
\- transaction {transaction_id, transaction_number, transaction_type, action_type, amount {value, currency, direction} or null, status, decision_reason_code, decision_reason_label, party_role}
\- login {action (auth.login, security.login_succeeded, auth.login_failed or security.login_failed), succeeded, status, ip {address, country_code, city, connection_type (free text), is_vpn_or_tor, is_data_center} or null, device {fingerprint, label} or null, is_first_login, is_new_device}
\- rule_hit {rule_id, rule_title, rule_category, rule_source, severity, score_delta, status_target, action_summary}
\- case_linked {case_id, case_number, status, author_email, author_name}
\- note_added {note_id, author_email}: never returned to an API key, only to console members.

Example call:
curl -X GET "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/?contract=2&limit=50&event_type=verification_attempt,login" \
-H "x-api-key: YOUR_API_KEY"

Failure modes:
\- 400 (contract mode only): {"contract": [...]}, {"limit": [...]}, {"cursor": ["This cursor is not valid. Reload the feed."]} or {"event_type": {...}}.
\- 404: {"detail": "Network not found."}. The network does not exist, or has no member visible to this application.
\- 401: missing or invalid x-api-key.
\- 403: the API key belongs to another application, or it has restricted access (Networks needs a full-access key). A console member token needs read:networks.
\- 403 with {"code": "networks_not_entitled"}: Networks is not enabled for the organization.

Side effects: none, pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Tempel ke

Ambil riwayat event untuk sebuah jaringan.
Tanpa `contract`, respons berisi riwayat jaringan itu sendiri, dari yang paling lama, dan tidak dipaginasi: kapan pertama kali terdeteksi, kapan setiap sinyal terakhir diamati, serta perubahan status terakhirnya beserta alasannya.
Bentuk ini tidak berubah, dan `limit`, `cursor` serta `event_type` diabaikan.## Linimasa bertipeBerikan `contract=2` untuk membaca linimasa bertipe.
Linimasa ini menambahkan apa yang dilakukan akun anggota dan apa yang dilakukan tim Anda terhadap jaringan, dari yang paling baru, satu halaman setiap kali.
`contract` hanya menerima `2`; nilai lain mengembalikan `400`.| Parameter | Arti |
| - | - |
| `limit` | Event per halaman, 1 sampai 500. Defaultnya 100. |
| `cursor` | `next_cursor` dari halaman sebelumnya. Cursor yang tidak valid atau kosong mengembalikan `400`. |
| `event_type` | Tipe event yang ingin ditampilkan, diulang atau dipisahkan koma, paling banyak 20 nilai. Defaultnya semua tipe. |Respons berbentuk `{"results": [...], "next_cursor": "..."}`.
Baca halaman berikutnya dengan `cursor` diisi `next_cursor`, sampai `next_cursor` bernilai `null`.## Tipe event| `event_type` | Yang dicatat | Blok detail |
| - | - | - |
| `network_detected` | Jaringan terdeteksi | Tidak ada |
| `signal_observed` | Pengamatan terbaru dari sebuah sinyal | Tidak ada |
| `network_active`, `network_in_review`, `network_resolved`, `network_dismissed` | Perubahan status terbaru jaringan, dengan alasannya di `metadata` | Tidak ada |
| `verification_attempt` | Sesi verifikasi sebuah anggota (orang atau bisnis), diberi nomor (`attempt` dari `attempt_count`), beserta alasan penolakannya jika ditolak | `verification_attempt` |
| `transaction` | Transaksi yang melibatkan seorang anggota, bertanggal sesuai tanggal transaksinya | `transaction` |
| `login` | Masuk atau percobaan masuk yang gagal yang Anda kirim untuk sebuah anggota melalui [API event](https://docs.didit.me/id/transaction-monitoring/events.md) | `login` |
| `rule_hit` | Aturan aktif yang cocok dengan transaksi atau event sebuah anggota | `rule_hit` |
| `case_linked` | Kasus yang dibuka untuk jaringan di organisasi Anda | `case_linked` |
| `note_added` | Catatan yang ditambahkan ke jaringan, tanpa teksnya | `note_added` |Event `note_added` hanya dikembalikan kepada anggota konsol, tidak pernah kepada kunci API.
Transaksi antara dua anggota muncul satu kali untuk masing-masing, dengan `account` sendiri-sendiri.
Kecocokan aturan pada transaksi itu muncul satu kali.
Event login hanya ada untuk masuk yang Anda kirim sebagai event: `auth.login`, `security.login_succeeded` dan bentuk gagalnya.## Akun dan catatanSetiap event anggota membawa `account`, yaitu anggota pemiliknya, dan `source_ref`, yaitu sesi, sesi bisnis, transaksi, event pemantauan, atau kasus yang menjadi sumber pembacaan event tersebut.
`ownership` bernilai `owned` jika catatan itu milik aplikasi yang Anda panggil, dan `organization` jika milik aplikasi lain di organisasi Anda.
`route` memuat jenis catatan, UUID, dan aplikasinya; `source_ref` tidak memiliki `route` untuk event pemantauan atau kasus.
Event milik jaringan itu sendiri tidak memiliki `account` maupun `source_ref`.## Terkait- [Ambil jaringan](https://docs.didit.me/id/management-api/networks/get.md)
- [Sinyal jaringan](https://docs.didit.me/id/management-api/networks/signals.md)
- [Peta jaringan](https://docs.didit.me/id/management-api/networks/map.md)
- [Ingesti event](https://docs.didit.me/id/transaction-monitoring/events.md)


## OpenAPI

````yaml id/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/
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/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/:
    get:
      tags:
        - Networks
      summary: Dapatkan lini masa jaringan
      description: >-
        Tanpa `contract`: event milik jaringan itu sendiri (deteksi, observasi
        terbaru setiap sinyal beserta peninjauannya), terlama lebih dulu dan
        tanpa paginasi. `limit`, `cursor`, dan `event_type` diabaikan. Dengan
        `contract=2`: lini masa bertipe, terbaru lebih dulu dan dipaginasi
        berdasarkan kursor. Opsi ini menambahkan aktivitas akun anggota (upaya
        verifikasi, transaksi, proses masuk yang Anda kirimkan melalui API event
        dan aturan live yang dikenai) serta kasus yang dibuka untuk jaringan
        tersebut. Event `note_added` hanya dikembalikan kepada anggota konsol,
        tidak pernah ke kunci API. Memerlukan kunci API akses penuh, atau
        `read:networks` untuk anggota konsol.
      operationId: get_network_timeline
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID organisasi.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID aplikasi.
        - name: network_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: n3a5e000-0000-4000-8000-000000000001
          description: UUID jaringan.
        - name: contract
          in: query
          required: false
          schema:
            type: string
            enum:
              - '2'
          description: >-
            `2` mengembalikan linimasa bertipe. Jangan sertakan nilai ini untuk
            linimasa default. Nilai lainnya mengembalikan 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 500
          description: >-
            Khusus linimasa bertipe. Event per halaman, 1 hingga 500. Default ke
            100.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Khusus linimasa bertipe. Nilai `next_cursor` dari halaman
            sebelumnya. Kursor yang tidak valid atau kosong mengembalikan 400.
        - name: event_type
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: array
            maxItems: 20
            items:
              type: string
              enum:
                - network_detected
                - signal_observed
                - network_active
                - network_in_review
                - network_resolved
                - network_dismissed
                - verification_attempt
                - transaction
                - login
                - rule_hit
                - case_linked
                - note_added
          description: >-
            Khusus linimasa bertipe. Jenis event yang akan disimpan, diulang
            atau dipisahkan koma, maksimal 20 nilai. Default ke semua jenis.
      responses:
        '200':
          description: >-
            Tanpa `contract`: `{results}`, yang terlama lebih dulu, tidak
            dipaginasi. Dengan `contract=2`: `{results, next_cursor}`, yang
            terbaru lebih dulu.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NetworkTimeline'
                  - $ref: '#/components/schemas/NetworkTimelinePage'
              examples:
                Default timeline:
                  summary: Tanpa contract
                  value:
                    results:
                      - event_type: network_detected
                        occurred_at: '2026-10-01T09:12:44Z'
                        label: Network detected
                        metadata:
                          network_id: N-0042
                      - event_type: signal_observed
                        occurred_at: '2026-10-12T16:03:10Z'
                        label: device observed
                        metadata:
                          signal_type: device
                          subject_count: 3
                          is_hub: false
                      - event_type: network_in_review
                        occurred_at: '2026-10-12T16:30:00Z'
                        label: Network in_review
                        metadata:
                          reason: Shared device across three new accounts.
                Typed timeline:
                  summary: Dengan contract=2
                  value:
                    results:
                      - id: monitoring_event:9b2f1c3e-4d5a-4b6c-8d7e-0f1a2b3c4d5e
                        event_type: login
                        occurred_at: '2026-10-12T18:41:02Z'
                        ingested_at: '2026-10-12T18:41:03Z'
                        label: Login
                        metadata: {}
                        account:
                          node_id: vendor_user:5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                          node_type: account
                          uuid: 5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                          vendor_data: user-1042
                          display_name: Alex Example
                          ownership: owned
                          route:
                            kind: user
                            id: 5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                            application_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        source_ref:
                          kind: monitoring_event
                          id: 9b2f1c3e-4d5a-4b6c-8d7e-0f1a2b3c4d5e
                          ownership: owned
                        verification_attempt: null
                        transaction: null
                        login:
                          action: auth.login
                          succeeded: true
                          status: APPROVED
                          ip:
                            address: 203.0.113.24
                            country_code: ES
                            city: Madrid
                            connection_type: null
                            is_vpn_or_tor: false
                            is_data_center: false
                          device:
                            fingerprint: fp_0a1b2c3d
                            label: Chrome · Android
                          is_first_login: false
                          is_new_device: true
                        rule_hit: null
                        case_linked: null
                        note_added: null
                      - id: session:1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f
                        event_type: verification_attempt
                        occurred_at: '2026-10-12T16:03:10Z'
                        ingested_at: '2026-10-12T16:03:10Z'
                        label: Verification attempt 2 of 2
                        metadata: {}
                        account:
                          node_id: vendor_user:5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                          node_type: account
                          uuid: 5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                          vendor_data: user-1042
                          display_name: Alex Example
                          ownership: owned
                          route:
                            kind: user
                            id: 5f6e7d8c-9b0a-4c1d-8e2f-3a4b5c6d7e8f
                            application_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        source_ref:
                          kind: session
                          id: 1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f
                          ownership: owned
                          route:
                            kind: session
                            id: 1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f
                            application_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        verification_attempt:
                          session_id: 1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f
                          session_number: 1287
                          attempt: 2
                          attempt_count: 2
                          status: Approved
                          status_changed_at: '2026-10-12T16:05:41Z'
                          decline_reasons: []
                        transaction: null
                        login: null
                        rule_hit: null
                        case_linked: null
                        note_added: null
                      - id: signal_observed:8d7c6b5a-4e3f-4a2b-9c1d-0e9f8a7b6c5d
                        event_type: signal_observed
                        occurred_at: '2026-10-12T16:03:10Z'
                        ingested_at: '2026-10-01T09:12:44Z'
                        label: device observed
                        metadata:
                          signal_type: device
                          subject_count: 3
                          is_hub: false
                        account: null
                        source_ref: null
                        verification_attempt: null
                        transaction: null
                        login: null
                        rule_hit: null
                        case_linked: null
                        note_added: null
                    next_cursor: >-
                      eyJ0IjoiMjAyNi0xMC0xMlQxNjowMzoxMCswMDowMCIsImMiOiIyMDI2LTEwLTAxVDA5OjEyOjQ0KzAwOjAwIiwiciI6MSwidSI6IjhkN2M2YjVhLTRlM2YtNGEyYi05YzFkLTBlOWY4YTdiNmM1ZCJ9
        '400':
          description: >-
            Jika `contract` ada: nilai `contract`, `limit`, `cursor`, atau
            `event_type` tidak valid.
          content:
            application/json:
              examples:
                Unsupported contract:
                  summary: Kontrak tidak didukung
                  value:
                    contract:
                      - '"3" is not a valid choice.'
                Invalid cursor:
                  summary: Kursor tidak valid
                  value:
                    cursor:
                      - This cursor is not valid. Reload the feed.
                Limit too large:
                  summary: Batas terlalu besar
                  value:
                    limit:
                      - Ensure this value is less than or equal to 500.
                Unknown event type:
                  summary: Tipe event tidak dikenal
                  value:
                    event_type:
                      '0':
                        - '"logout" is not a valid choice.'
        '401':
          description: Kredensial tidak ada atau tidak valid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    description: >-
                      Hadir pada error berkode, misalnya
                      `networks_not_entitled`.
              examples:
                Missing or invalid credentials:
                  summary: Kredensial tidak ada atau tidak valid
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
        '403':
          description: >-
            Kunci API milik aplikasi lain, atau merupakan kunci dengan akses
            terbatas: Endpoint Networks memerlukan kunci akses penuh. Token
            anggota konsol memerlukan `read:networks`. Juga dikembalikan dengan
            `code: networks_not_entitled` saat Networks tidak diaktifkan untuk
            organisasi.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    description: >-
                      Hadir pada error berkode, misalnya
                      `networks_not_entitled`.
              examples:
                Networks not enabled:
                  summary: Jaringan tidak diaktifkan
                  value:
                    detail: >-
                      Networks is disabled for this organization. Contact Didit
                      support if you believe this is an error.
                    code: networks_not_entitled
                Restricted API key:
                  summary: Kunci API terbatas
                  value:
                    detail: This API key has no access to this endpoint.
                No permission:
                  summary: Tidak ada izin
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: Jaringan tidak ditemukan (atau tidak terlihat oleh aplikasi ini).
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/n3a5e000-0000-4000-8000-000000000001/timeline/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: curl
          label: curl (typed timeline)
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/3fa85f64-5717-4562-b3fc-2c963f66afa6/timeline/?contract=2&limit=50&event_type=verification_attempt,login'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.networks.retrieve_timeline(
                "n3a5e000-0000-4000-8000-000000000001",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const result = await
            didit.networks.retrieveTimeline("n3a5e000-0000-4000-8000-000000000001");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Networks.RetrieveTimeline(ctx, \"n3a5e000-0000-4000-8000-000000000001\", didit.NetworksRetrieveTimelineParams{})\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_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.networks().retrieveTimeline("n3a5e000-0000-4000-8000-000000000001");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->networks->retrieveTimeline('n3a5e000-0000-4000-8000-000000000001');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            # and DIDIT_APPLICATION_ID.

            didit = Didit::Client.new


            result =
            didit.networks.retrieve_timeline("n3a5e000-0000-4000-8000-000000000001")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await
            client.Networks.RetrieveTimelineAsync("n3a5e000-0000-4000-8000-000000000001");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    NetworkTimeline:
      title: Default timeline (no contract)
      type: object
      description: >-
        Tanpa `contract`: event milik jaringan itu sendiri, terlama lebih dulu,
        tanpa paginasi.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTimelineEvent'
    NetworkTimelinePage:
      title: Typed timeline page (contract=2)
      type: object
      description: >-
        Dengan `contract=2`: satu halaman event yang memiliki tipe, yang terbaru
        lebih dulu.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTypedTimelineEvent'
        next_cursor:
          type: string
          nullable: true
          description: >-
            Teruskan sebagai `cursor` untuk membaca halaman berikutnya. Bernilai
            null pada halaman terakhir.
    NetworkTimelineEvent:
      type: object
      properties:
        event_type:
          type: string
          description: >-
            misalnya network_detected, signal_observed, network_in_review,
            network_resolved, network_dismissed.
        occurred_at:
          type: string
          format: date-time
          nullable: true
        label:
          type: string
        metadata:
          type: object
    NetworkTypedTimelineEvent:
      type: object
      description: >-
        Satu event timeline bertipe: empat kolom bawaan, ditambah id-nya, kapan
        Didit menyimpannya, akun anggota dan catatan tempat ia berada, serta
        blok detail dari tipe event-nya. Blok detail lainnya bernilai null.
      properties:
        id:
          type: string
          description: '`<source>:<uuid>`, unik di dalam timeline.'
          example: session:3fa85f64-5717-4562-b3fc-2c963f66afa6
        event_type:
          type: string
          enum:
            - network_detected
            - signal_observed
            - network_active
            - network_in_review
            - network_resolved
            - network_dismissed
            - verification_attempt
            - transaction
            - login
            - rule_hit
            - case_linked
            - note_added
        occurred_at:
          type: string
          format: date-time
          description: Waktu terjadinya.
        ingested_at:
          type: string
          format: date-time
          description: Waktu ketika Didit menyimpannya.
        label:
          type: string
          description: >-
            Label singkat berbahasa Inggris, misalnya `Verification attempt 2 of
            3`.
        metadata:
          type: object
          description: >-
            Untuk event milik jaringan itu sendiri, metadata yang sama dengan
            linimasa default. Kosong jika tidak demikian.
        account:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineAccount'
          nullable: true
          description: >-
            Akun anggota. Null untuk event milik jaringan itu sendiri,
            `case_linked` dan `note_added`.
        source_ref:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineSourceRef'
          nullable: true
          description: >-
            Rekaman sumber. Null untuk event milik jaringan sendiri dan
            `note_added`.
        verification_attempt:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineAttempt'
          nullable: true
          description: Ditetapkan pada event `verification_attempt`.
        transaction:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineTransaction'
          nullable: true
          description: Ditetapkan pada event `transaction`.
        login:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineLogin'
          nullable: true
          description: Ditetapkan pada event `login`.
        rule_hit:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineRuleHit'
          nullable: true
          description: Ditetapkan pada event `rule_hit`.
        case_linked:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineCaseLinked'
          nullable: true
          description: Ditetapkan pada event `case_linked`.
        note_added:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineNoteAdded'
          nullable: true
          description: >-
            Ditetapkan pada event `note_added`. Tidak pernah dikembalikan ke
            kunci API.
    NetworkTimelineAccount:
      type: object
      description: Akun anggota pemilik event ini.
      properties:
        node_id:
          type: string
          description: >-
            `<kind>:<uuid>`, di mana jenisnya adalah `vendor_user`,
            `vendor_business`, atau `transaction_party`.
          example: vendor_user:3fa85f64-5717-4562-b3fc-2c963f66afa6
        node_type:
          type: string
          enum:
            - account
            - business_account
            - transaction_party
        uuid:
          type: string
          format: uuid
        vendor_data:
          type: string
          nullable: true
        display_name:
          type: string
          nullable: true
        ownership:
          type: string
          enum:
            - owned
            - organization
          description: >-
            `owned` saat data milik aplikasi yang Anda panggil (untuk anggota
            konsol, milik aplikasi yang diberikan izin kepadanya).
            `organization` saat milik aplikasi lain dari organisasi Anda.
        route:
          $ref: '#/components/schemas/NetworkTimelineRoute'
    NetworkTimelineSourceRef:
      type: object
      description: Rekaman tempat peristiwa dibaca.
      properties:
        kind:
          type: string
          enum:
            - session
            - business_session
            - transaction
            - monitoring_event
            - case
        id:
          type: string
          format: uuid
        ownership:
          type: string
          enum:
            - owned
            - organization
          description: >-
            `owned` saat data milik aplikasi yang Anda panggil (untuk anggota
            konsol, milik aplikasi yang diberikan izin kepadanya).
            `organization` saat milik aplikasi lain dari organisasi Anda.
        route:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineRoute'
          description: Tidak ada untuk `monitoring_event` dan `case`.
    NetworkTimelineAttempt:
      type: object
      description: Satu sesi verifikasi dari akun tersebut.
      properties:
        session_id:
          type: string
          format: uuid
          description: UUID sesi, atau UUID sesi bisnis untuk perusahaan.
        session_number:
          type: integer
          nullable: true
        attempt:
          type: integer
          description: Posisi sesi ini di antara sesi akun, berdasarkan urutan pembuatan.
        attempt_count:
          type: integer
          description: Berapa banyak sesi yang dimiliki akun tersebut.
        status:
          type: string
          description: Status sesi, misalnya `Approved` atau `Declined`.
        status_changed_at:
          type: string
          format: date-time
          nullable: true
        decline_reasons:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTimelineDeclineReason'
          description: >-
            Hanya untuk sesi yang ditolak: peringatannya, yang terlama terlebih
            dahulu, satu kali per peringatan. Kosong jika tidak demikian.
    NetworkTimelineTransaction:
      type: object
      description: >-
        Transaksi yang diikuti oleh akun anggota, diberi tanggal berdasarkan
        tanggal transaksinya.
      properties:
        transaction_id:
          type: string
          format: uuid
        transaction_number:
          type: integer
          nullable: true
        transaction_type:
          type: string
        action_type:
          type: string
        amount:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineAmount'
          nullable: true
          description: Null ketika transaksi tidak memiliki jumlah.
        status:
          type: string
        decision_reason_code:
          type: string
          nullable: true
        decision_reason_label:
          type: string
          nullable: true
        party_role:
          type: string
          description: >-
            Peran akun dalam transaksi: `APPLICANT`, `REMITTER`, `BENEFICIARY`,
            atau `COUNTERPARTY`.
    NetworkTimelineLogin:
      type: object
      description: Event masuk yang Anda kirimkan untuk seseorang melalui API event.
      properties:
        action:
          type: string
          description: >-
            `<event_category>.<action_type>`: `auth.login` atau
            `security.login_succeeded` untuk proses masuk, `auth.login_failed`
            atau `security.login_failed` jika gagal.
        succeeded:
          type: boolean
        status:
          type: string
          description: Status event.
        ip:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineIP'
          nullable: true
          description: Null ketika event tidak memiliki alamat IP.
        device:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineDevice'
          nullable: true
          description: Null ketika event tidak memiliki sidik jari perangkat atau konteks.
        is_first_login:
          type: boolean
          description: Waktu masuk pertama yang berhasil dari akun tersebut yang tercatat.
        is_new_device:
          type: boolean
          description: >-
            Proses masuk yang berhasil dari perangkat yang belum pernah
            digunakan untuk proses masuk yang berhasil sebelumnya pada akun
            tersebut. Tidak pernah bernilai true pada proses masuk pertama.
    NetworkTimelineRuleHit:
      type: object
      description: >-
        Aturan live yang cocok dengan transaksi atau event anggota. Pencocokan
        mode uji tidak disertakan.
      properties:
        rule_id:
          type: string
          format: uuid
        rule_title:
          type: string
        rule_category:
          type: string
        rule_source:
          type: string
        severity:
          type: string
          nullable: true
        score_delta:
          type: integer
        status_target:
          type: string
          nullable: true
        action_summary:
          type: string
          nullable: true
    NetworkTimelineCaseLinked:
      type: object
      description: >-
        Kasus yang dibuka untuk jaringan di organisasi Anda.
        `source_ref.ownership` menyatakan apakah kasus tersebut milik aplikasi
        yang Anda panggil.
      properties:
        case_id:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
        status:
          type: string
        author_email:
          type: string
          nullable: true
        author_name:
          type: string
          nullable: true
    NetworkTimelineNoteAdded:
      type: object
      description: Catatan yang ditinggalkan di jaringan. Teks catatan tidak disertakan.
      properties:
        note_id:
          type: string
          format: uuid
        author_email:
          type: string
    NetworkTimelineRoute:
      type: object
      description: 'Tempat rekaman dibuka: jenisnya, UUID-nya, dan aplikasi pemiliknya.'
      properties:
        kind:
          type: string
          description: >-
            `user`, `business`, atau `transaction_party` untuk sebuah akun;
            `session`, `business_session`, atau `transaction` untuk catatan
            sumber.
        id:
          type: string
          format: uuid
        application_id:
          type: string
          format: uuid
    NetworkTimelineDeclineReason:
      type: object
      properties:
        risk:
          type: string
          description: Kode peringatan.
        feature:
          type: string
          description: Fitur yang memicu peringatan tersebut.
        short_description:
          type: string
    NetworkTimelineAmount:
      type: object
      properties:
        value:
          type: string
          description: Jumlah desimal sebagai string.
        currency:
          type: string
        direction:
          type: string
          nullable: true
    NetworkTimelineIP:
      type: object
      properties:
        address:
          type: string
        country_code:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        connection_type:
          type: string
          nullable: true
          description: Label jenis koneksi untuk alamat tersebut, sebagai teks bebas.
        is_vpn_or_tor:
          type: boolean
        is_data_center:
          type: boolean
    NetworkTimelineDevice:
      type: object
      properties:
        fingerprint:
          type: string
          nullable: true
        label:
          type: string
          nullable: true
          description: >-
            Label perangkat yang dapat dibaca yang dibuat dari konteks perangkat
            event.
  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.