> ## 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 de chronologie du réseau de fraude

> Avec Didit, obtenez l'historique d'un réseau de fraude ou, avec contract=2, sa chronologie paginée des tentatives, transactions et dossiers.



Prompt de l'API de chronologie du réseau
        Copier le prompt dans le presse-papiers



      
      

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



      
      

Coller dans

Récupérez l'historique des événements d'un réseau.
Sans `contract`, la réponse est l'historique propre au réseau, du plus ancien au plus récent, sans pagination : la date de première détection, la dernière observation de chaque signal et son dernier changement de statut, avec son motif.
Cette structure est inchangée, et `limit`, `cursor` et `event_type` sont ignorés.## Chronologie typéePassez `contract=2` pour lire à la place la chronologie typée.
Elle ajoute ce que les comptes membres ont fait et ce que votre équipe a fait à propos du réseau, du plus récent au plus ancien, une page à la fois.
`contract` n'accepte que `2` ; toute autre valeur renvoie `400`.| Paramètre | Signification |
| - | - |
| `limit` | Événements par page, de 1 à 500. Valeur par défaut : 100. |
| `cursor` | Le `next_cursor` de la page précédente. Un curseur invalide ou vide renvoie `400`. |
| `event_type` | Les types d'événements à conserver, répétés ou séparés par des virgules, 20 valeurs au maximum. Par défaut, tous les types. |La réponse est `{"results": [...], "next_cursor": "..."}`.
Lisez la page suivante avec `cursor` défini sur `next_cursor`, jusqu'à ce que `next_cursor` soit `null`.## Types d'événements| `event_type` | Ce qu'il enregistre | Bloc de détail |
| - | - | - |
| `network_detected` | Le réseau a été détecté | Aucun |
| `signal_observed` | La dernière observation d'un signal | Aucun |
| `network_active`, `network_in_review`, `network_resolved`, `network_dismissed` | Le dernier changement de statut du réseau, avec son motif dans `metadata` | Aucun |
| `verification_attempt` | Une session de vérification d'un membre (une personne ou une entreprise), numérotée (`attempt` parmi `attempt_count`), avec ses motifs de refus lorsqu'elle a été refusée | `verification_attempt` |
| `transaction` | Une transaction à laquelle un membre a participé, datée de sa date de transaction | `transaction` |
| `login` | Une connexion, ou un échec de connexion, que vous avez transmis pour un membre via l'[API d'événements](https://docs.didit.me/fr/transaction-monitoring/events.md) | `login` |
| `rule_hit` | Une règle active qui a correspondu à une transaction ou à un événement d'un membre | `rule_hit` |
| `case_linked` | Un dossier ouvert pour le réseau dans votre organisation | `case_linked` |
| `note_added` | Une note ajoutée au réseau, sans son texte | `note_added` |Les événements `note_added` ne sont renvoyés qu'aux membres de la console, jamais à une clé API.
Une transaction entre deux membres apparaît une fois pour chacun d'eux, chaque occurrence ayant son propre `account`.
Une règle qui correspond à cette transaction n'apparaît qu'une fois.
Les événements de connexion n'existent que pour les connexions que vous transmettez sous forme d'événements : `auth.login`, `security.login_succeeded` et leurs formes en échec.## Comptes et enregistrementsChaque événement membre contient `account`, le membre auquel il appartient, et `source_ref`, la session, la session d'entreprise, la transaction, l'événement de surveillance ou le dossier dont il a été extrait.
`ownership` vaut `owned` lorsque l'enregistrement appartient à l'application que vous avez appelée, et `organization` lorsqu'il appartient à une autre application de votre organisation.
`route` indique le type de l'enregistrement, son UUID et son application ; `source_ref` ne contient pas de `route` pour un événement de surveillance ou un dossier.
Les événements propres au réseau ne contiennent ni `account` ni `source_ref`.## Voir aussi- [Obtenir un réseau](https://docs.didit.me/fr/management-api/networks/get.md)
- [Signaux du réseau](https://docs.didit.me/fr/management-api/networks/signals.md)
- [Carte du réseau](https://docs.didit.me/fr/management-api/networks/map.md)
- [Ingestion d'événements](https://docs.didit.me/fr/transaction-monitoring/events.md)


## OpenAPI

````yaml fr/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 de vérification d'identité. Authentifiez-vous avec l'en-tête 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: Obtenir la chronologie du réseau
      description: >-
        Sans `contract` : les événements propres au réseau (détection, dernière
        observation de chaque signal et son examen), du plus ancien au plus
        récent et non paginés. `limit`, `cursor` et `event_type` sont ignorés.
        Avec `contract=2` : la chronologie typée, de la plus récente à la plus
        ancienne et paginée par curseur. Elle ajoute les actions effectuées par
        les comptes membres (tentatives de vérification, transactions,
        connexions que vous envoyez via l'API d'événements et les règles en
        direct qu'ils ont déclenchées) ainsi que les dossiers ouverts pour le
        réseau. Les événements `note_added` ne sont renvoyés qu'aux membres de
        la console, jamais à une clé API. Nécessite une clé API à accès complet,
        ou `read:networks` pour un membre de la console.
      operationId: get_network_timeline
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'organisation.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'application.
        - name: network_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: n3a5e000-0000-4000-8000-000000000001
          description: UUID du réseau.
        - name: contract
          in: query
          required: false
          schema:
            type: string
            enum:
              - '2'
          description: >-
            `2` renvoie la chronologie typée. Omettez-le pour la chronologie par
            défaut. Toute autre valeur renvoie 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 500
          description: >-
            Uniquement pour une chronologie typée. Événements par page, de 1 à
            500. Valeur par défaut : 100.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Uniquement pour une chronologie typée. Le `next_cursor` de la page
            précédente. Un curseur invalide ou vide renvoie 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: >-
            Uniquement pour une chronologie typée. Types d'événements à
            conserver, répétés ou séparés par des virgules, au maximum 20
            valeurs. Par défaut, tous les types.
      responses:
        '200':
          description: >-
            Sans `contract` : `{results}`, les plus anciens d'abord, non paginé.
            Avec `contract=2` : `{results, next_cursor}`, les plus récents
            d'abord.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NetworkTimeline'
                  - $ref: '#/components/schemas/NetworkTimelinePage'
              examples:
                Default timeline:
                  summary: Sans contrat
                  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: Avec 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: >-
            Avec `contract` présent : une valeur `contract`, `limit`, `cursor`
            ou `event_type` non valide.
          content:
            application/json:
              examples:
                Unsupported contract:
                  summary: Contrat non pris en charge
                  value:
                    contract:
                      - '"3" is not a valid choice.'
                Invalid cursor:
                  summary: Curseur non valide
                  value:
                    cursor:
                      - This cursor is not valid. Reload the feed.
                Limit too large:
                  summary: Limite trop grande
                  value:
                    limit:
                      - Ensure this value is less than or equal to 500.
                Unknown event type:
                  summary: Type d'événement inconnu
                  value:
                    event_type:
                      '0':
                        - '"logout" is not a valid choice.'
        '401':
          description: Identifiants manquants ou invalides.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    description: >-
                      Présent sur les erreurs codées, par exemple
                      `networks_not_entitled`.
              examples:
                Missing or invalid credentials:
                  summary: Identifiants manquants ou invalides
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
        '403':
          description: >-
            La clé API appartient à une autre application, ou il s'agit d'une
            clé avec un accès restreint : les endpoints Networks nécessitent une
            clé avec accès complet. Un token de membre de la console nécessite
            `read:networks`. Renvoyé également avec `code:
            networks_not_entitled` lorsque Networks n'est pas activé pour
            l'organisation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    description: >-
                      Présent sur les erreurs codées, par exemple
                      `networks_not_entitled`.
              examples:
                Networks not enabled:
                  summary: Réseaux non activés
                  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: Clé API restreinte
                  value:
                    detail: This API key has no access to this endpoint.
                No permission:
                  summary: Aucune autorisation
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: Réseau non trouvé (ou non visible pour cette application).
          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: >-
        Sans `contract` : les événements propres au réseau, du plus ancien au
        plus récent, non paginés.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTimelineEvent'
    NetworkTimelinePage:
      title: Typed timeline page (contract=2)
      type: object
      description: >-
        Avec `contract=2` : une page d'événements typés, les plus récents
        d'abord.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTypedTimelineEvent'
        next_cursor:
          type: string
          nullable: true
          description: >-
            Transmettez comme `cursor` pour lire la page suivante. Null sur la
            dernière page.
    NetworkTimelineEvent:
      type: object
      properties:
        event_type:
          type: string
          description: >-
            par exemple 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: >-
        Un événement de chronologie typé : les quatre champs par défaut, plus
        son id, la date et l'heure auxquelles Didit l'a stocké, le compte membre
        et le dossier auxquels il appartient, ainsi que le bloc de détails
        correspondant à son type d'événement. Les autres blocs de détails sont
        null.
      properties:
        id:
          type: string
          description: '`<source>:<uuid>`, unique au sein de la chronologie.'
          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: Date et heure de l'événement.
        ingested_at:
          type: string
          format: date-time
          description: Date et heure auxquelles Didit l'a stocké.
        label:
          type: string
          description: >-
            Un court libellé en anglais, par exemple `Verification attempt 2 of
            3`.
        metadata:
          type: object
          description: >-
            Pour les propres événements du réseau, les mêmes métadonnées que la
            chronologie par défaut. Vide dans le cas contraire.
        account:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineAccount'
          nullable: true
          description: >-
            Le compte de membre. Null pour les événements propres au réseau,
            `case_linked` et `note_added`.
        source_ref:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineSourceRef'
          nullable: true
          description: >-
            L'enregistrement source. Vaut null pour les événements propres au
            réseau et pour `note_added`.
        verification_attempt:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineAttempt'
          nullable: true
          description: Défini sur les événements `verification_attempt`.
        transaction:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineTransaction'
          nullable: true
          description: Défini sur les événements `transaction`.
        login:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineLogin'
          nullable: true
          description: Défini sur les événements `login`.
        rule_hit:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineRuleHit'
          nullable: true
          description: Défini sur les événements `rule_hit`.
        case_linked:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineCaseLinked'
          nullable: true
          description: Défini sur les événements `case_linked`.
        note_added:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineNoteAdded'
          nullable: true
          description: >-
            Défini sur les événements `note_added`. Jamais renvoyé à une clé
            API.
    NetworkTimelineAccount:
      type: object
      description: Le compte de membre auquel appartient l'événement.
      properties:
        node_id:
          type: string
          description: >-
            `<kind>:<uuid>`, où kind est `vendor_user`, `vendor_business` ou
            `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` lorsque l'enregistrement appartient à l'application que vous
            avez appelée (pour un membre de la console, à une application qui
            lui a été accordée). `organization` lorsqu'il appartient à une autre
            application de votre organisation.
        route:
          $ref: '#/components/schemas/NetworkTimelineRoute'
    NetworkTimelineSourceRef:
      type: object
      description: L'enregistrement à partir duquel l'événement a été lu.
      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` lorsque l'enregistrement appartient à l'application que vous
            avez appelée (pour un membre de la console, à une application qui
            lui a été accordée). `organization` lorsqu'il appartient à une autre
            application de votre organisation.
        route:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineRoute'
          description: Absent dans `monitoring_event` et `case`.
    NetworkTimelineAttempt:
      type: object
      description: Une session de vérification du compte.
      properties:
        session_id:
          type: string
          format: uuid
          description: >-
            L'UUID de la session, ou l'UUID de la session d'entreprise pour une
            société.
        session_number:
          type: integer
          nullable: true
        attempt:
          type: integer
          description: >-
            La position de cette session parmi les sessions du compte, par ordre
            de création.
        attempt_count:
          type: integer
          description: Nombre de sessions associées au compte.
        status:
          type: string
          description: Le statut de la session, par exemple `Approved` ou `Declined`.
        status_changed_at:
          type: string
          format: date-time
          nullable: true
        decline_reasons:
          type: array
          items:
            $ref: '#/components/schemas/NetworkTimelineDeclineReason'
          description: >-
            Pour une session refusée uniquement : ses avertissements, du plus
            ancien au plus récent, une seule fois par avertissement. Vide dans
            le cas contraire.
    NetworkTimelineTransaction:
      type: object
      description: >-
        Une transaction à laquelle un compte membre a participé, datée par sa
        date de transaction.
      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 lorsque la transaction n'a pas de montant.
        status:
          type: string
        decision_reason_code:
          type: string
          nullable: true
        decision_reason_label:
          type: string
          nullable: true
        party_role:
          type: string
          description: >-
            Le rôle du compte dans la transaction : `APPLICANT`, `REMITTER`,
            `BENEFICIARY` ou `COUNTERPARTY`.
    NetworkTimelineLogin:
      type: object
      description: >-
        Un événement de connexion que vous avez transmis pour une personne via
        l'API d'événements.
      properties:
        action:
          type: string
          description: >-
            `<event_category>.<action_type>` : `auth.login` ou
            `security.login_succeeded` pour une connexion, `auth.login_failed`
            ou `security.login_failed` pour un échec.
        succeeded:
          type: boolean
        status:
          type: string
          description: Le statut de l'événement.
        ip:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineIP'
          nullable: true
          description: Null lorsque l'événement n'a pas d'adresse IP.
        device:
          allOf:
            - $ref: '#/components/schemas/NetworkTimelineDevice'
          nullable: true
          description: >-
            Null lorsque l'événement n'a pas d'empreinte d'appareil ni de
            contexte.
        is_first_login:
          type: boolean
          description: La première connexion réussie enregistrée pour le compte.
        is_new_device:
          type: boolean
          description: >-
            Une connexion réussie depuis un appareil dont ne provenait aucune
            des connexions réussies précédentes du compte. Jamais vrai lors de
            la première connexion.
    NetworkTimelineRuleHit:
      type: object
      description: >-
        Une règle en production qui correspondait à une transaction ou à un
        événement d'un membre. Les correspondances en mode test ne sont pas
        incluses.
      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: >-
        Un dossier ouvert pour le réseau dans votre organisation.
        `source_ref.ownership` indique s'il appartient à l'application que vous
        avez appelée.
      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: Une note laissée sur le réseau. Le texte de la note n'est pas inclus.
      properties:
        note_id:
          type: string
          format: uuid
        author_email:
          type: string
    NetworkTimelineRoute:
      type: object
      description: >-
        Informations d'ouverture de l'enregistrement : son type, son UUID et
        l'application à laquelle il appartient.
      properties:
        kind:
          type: string
          description: >-
            `user`, `business` ou `transaction_party` pour un compte ;
            `session`, `business_session` ou `transaction` pour un
            enregistrement source.
        id:
          type: string
          format: uuid
        application_id:
          type: string
          format: uuid
    NetworkTimelineDeclineReason:
      type: object
      properties:
        risk:
          type: string
          description: Le code d'avertissement.
        feature:
          type: string
          description: La fonctionnalité qui a émis l'avertissement.
        short_description:
          type: string
    NetworkTimelineAmount:
      type: object
      properties:
        value:
          type: string
          description: Montant décimal sous forme de chaîne.
        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: >-
            Le libellé du type de connexion pour l'adresse, sous forme de texte
            libre.
        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: >-
            Un libellé d'appareil lisible construit à partir du contexte
            d'appareil de l'événement.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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