> ## 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 Récupérer un événement de surveillance

> Récupérez un événement de surveillance Didit : charge utile, contexte de l'appareil, enrichissement IP, signaux du sujet, tags et preuves de règle.

Prompt de l'API Get Monitoring Event
Copier le prompt dans le presse-papiers

<pre>
  \`Retrieve one monitoring event from Didit with its full envelope, enrichment and rule evidence.

  Endpoint:
  GET [https://verification.didit.me/v3/events/\{event\_uuid}/](https://verification.didit.me/v3/events/\{event_uuid}/)

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

  Goal:

  * Show the event detail in my back office or an investigation tool: what was sent, what Didit derived, and why a rule matched.

  Behavior:

  * event\_uuid is the Didit id returned by the create, batch, list and timeline calls (not my own event\_id).
  * Returns every summary field of the list call plus payload, custom\_values, device\_context, field\_sources, the promoted domain fields (hand\_id, dispute\_id, chargeback\_id, withdrawal\_address\_hash, changed\_field, ...), expires\_at, rules\_evaluated\_count, rule\_runs, ip\_enrichment, subject\_profile and tags.
  * field\_sources maps each field path to customer (sent by my backend), sdk (sent by the device lane) or server (derived by Didit, such as received\_at and IP enrichment).
  * While correlation\_pending is true an asynchronous rule still has to run; read the event again later for the final status, score and rule\_runs.
  * ip\_enrichment and subject\_profile are null when nothing is known.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/11111111-2222-3333-4444-555555555555/](https://verification.didit.me/v3/events/11111111-2222-3333-4444-555555555555/)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * status, score, rules\_matched\_count.
  * rule\_runs\[] - one per matching rule: rule\_uuid, rule\_title, library\_key, mode (ACTIVE or TEST), severity, matched (always true), score\_delta, action\_summary, is\_async, matched\_payload (the conditions and aggregations that matched, with expected and observed values) and created\_at.
  * ip\_enrichment - ip\_country\_code, ip\_city, asn\_number, asn\_organization, is\_vpn\_or\_tor, is\_data\_center, proxy\_type, last\_enriched\_at.
  * field\_sources - trust signal for each value before acting on a match.
  * tags - names of the tags rules attached.

  Failure modes:

  * 401 - the API key has expired.
  * 403 - missing API key (a wrong, revoked or expired key gets 401), or a scoped key without transactions: read.
  * 404 - no event with this event\_uuid in the application (never stored, deleted, or another application's).

  Side effects: none. This is a pure read.

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

Coller dans

Consultez [Preuves](https://docs.didit.me/fr/transaction-monitoring/event-rules.md#preuves) pour savoir comment les exécutions de règles enregistrent chaque valeur correspondante et sa source, et [Enrichissement IP](https://docs.didit.me/fr/transaction-monitoring/ip-enrichment.md) pour les champs d'adresse enrichis.


## OpenAPI

````yaml fr/openapi-25.json GET /v3/events/{event_uuid}/
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/events/{event_uuid}/:
    get:
      tags:
        - Monitoring Events
      summary: Obtenir l'événement de surveillance
      description: >-
        Récupérer un événement de surveillance avec tout ce que la liste
        renvoie, plus le payload, les valeurs personnalisées, le contexte de
        l'appareil, la provenance des champs (`field_sources`), les champs de
        domaine promus, `expires_at`, chaque exécution de règle correspondante
        avec ses preuves, l'enrichissement IP et les tags associés aux règles.
        Tant que `correlation_pending` est à `true`, une règle asynchrone doit
        encore s'exécuter ; relisez l'événement quelques minutes plus tard pour
        obtenir les valeurs finales de `status`, `score` et `rule_runs`. Les
        lectures fonctionnent que l'ingestion d'événements soit activée ou non.
        Une clé API avec restriction de portée nécessite `transactions: read`.
        Voir
        [Preuves](https://docs.didit.me/fr/transaction-monitoring/event-rules#preuves)
        et [Enrichissement
        IP](https://docs.didit.me/fr/transaction-monitoring/ip-enrichment).
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            Identifiant Didit de l'événement (`event_uuid` issu de la réponse de
            création, de lot, de liste ou de chronologie), et non votre propre
            `event_id`.
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: L'événement avec ses éléments de preuve.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitoringEventDetail'
              examples:
                Login from a VPN, in review:
                  value:
                    event_uuid: 33333333-4444-5555-6666-777777777777
                    event_id: login-2026-10-17-000001
                    event_category: auth
                    action_type: login
                    occurred_at: '2026-10-17T09:15:02.481000Z'
                    received_at: '2026-10-17T09:15:02.903114Z'
                    status: IN_REVIEW
                    score: 40
                    subject_vendor_data: user-42
                    subject_entity_type: individual
                    subject_uuid: 66666666-7777-8888-9999-000000000000
                    counterparty_vendor_data: null
                    session_id: web-session-abc
                    device_fingerprint: fp-a8c1
                    ip_address: 203.0.113.42
                    ip_country: ES
                    amount: null
                    currency: null
                    game_id: null
                    round_id: null
                    bonus_id: null
                    affiliate_code: null
                    payment_reference_id: null
                    retention_class: risk_relevant
                    rules_matched_count: 1
                    correlation_pending: false
                    is_droppable: true
                    payload:
                      method: password
                    custom_values:
                      vip_tier: gold
                      vpn_or_proxy_detected: true
                    device_context:
                      fingerprint: fp-a8c1
                      network_context:
                        ip_address: 203.0.113.42
                        ip_country: Spain
                        ip_country_code: ES
                        ip_city: Madrid
                        asn_number: 64500
                        asn_organization: Example Networks
                        is_vpn_or_tor: true
                        is_data_center: false
                    field_sources:
                      subject.vendor_data: customer
                      event_category: customer
                      action_type: customer
                      occurred_at: customer
                      received_at: server
                      payload.method: customer
                      session.session_id: customer
                      session.sequence: customer
                      device_context.fingerprint: customer
                      device_context.network_context.ip_address: customer
                      device_context.network_context.ip_country: server
                      device_context.network_context.ip_country_code: server
                      device_context.network_context.ip_city: server
                      device_context.network_context.asn_number: server
                      device_context.network_context.asn_organization: server
                      device_context.network_context.is_vpn_or_tor: server
                      device_context.network_context.is_data_center: server
                    session_sequence: 142
                    table_id: null
                    hand_id: null
                    match_id: null
                    market_id: null
                    side: null
                    role: null
                    net_result_amount: null
                    payment_fingerprint: null
                    instrument_reference_hash: null
                    withdrawal_address_hash: null
                    dispute_id: null
                    chargeback_id: null
                    changed_field: null
                    identity_match_ref: null
                    schema_version: 1
                    expires_at: '2027-01-15T09:15:02.481000Z'
                    rules_evaluated_count: 6
                    rule_runs:
                      - rule_uuid: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        rule_title: Login from VPN or Tor
                        library_key: null
                        matched: true
                        mode: ACTIVE
                        is_async: false
                        severity: MEDIUM
                        score_delta: 40
                        action_summary: score +40; add_tag:VPN_LOGIN
                        matched_payload:
                          - field: event.ip.is_vpn_or_tor
                            operator: eq
                            expected_value: true
                            current_value: true
                            matched: true
                            group_index: null
                            group_logic: AND
                            field_source: server
                        created_at: '2026-10-17T09:15:02.951207Z'
                    ip_enrichment:
                      ip_country_code: ES
                      ip_city: Madrid
                      asn_number: 64500
                      asn_organization: Example Networks
                      is_vpn_or_tor: true
                      is_data_center: false
                      proxy_type: null
                      last_enriched_at: '2026-10-17T09:15:02.910442Z'
                    subject_profile: null
                    tags:
                      - VPN_LOGIN
        '401':
          description: >-
            La clé API restreinte a expiré. Seule une clé expirée renvoie `401`
            ; une clé manquante ou invalide renvoie `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Un en-tête `x-api-key` manquant (une clé erronée, révoquée ou
            expirée renvoie `401`), une clé restreinte sans `transactions:
            read`, une clé limitée à certains workflows ou à des sessions
            approuvées (une telle clé n'accède jamais aux données de
            surveillance des transactions), ou une requête provenant de
            l'extérieur de la liste d'autorisation IP de la clé.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without access:
                  value:
                    detail: This API key has no read access to transactions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                IP not allowed:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            Aucun événement avec cet `event_uuid` n'existe dans l'application :
            il n'a jamais été enregistré, il a été supprimé ou il appartient à
            une autre application. Un segment de chemin qui n'est pas un UUID ne
            correspond pas à la route et renvoie également `404`.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: No MonitoringEvent matches the given query.
        '429':
          description: >-
            Limite de débit dépassée : les requêtes `GET` partagent un quota de
            600 requêtes par minute par clé API. Attendez `Retry-After`
            secondes, puis réessayez.
          headers:
            Retry-After:
              description: Secondes à attendre avant de réessayer.
              schema:
                type: integer
                minimum: 1
                example: 30
          content:
            application/json:
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/events/11111111-2222-3333-4444-555555555555/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.monitoring_events.retrieve(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.monitoringEvents.retrieve("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.MonitoringEvents.Retrieve(ctx, \"11111111-2222-3333-4444-555555555555\")\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 client = new Didit();


            var result =
            client.monitoringEvents().retrieve("11111111-2222-3333-4444-555555555555");

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


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->monitoringEvents->retrieve('11111111-2222-3333-4444-555555555555');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.monitoring_events.retrieve("11111111-2222-3333-4444-555555555555")

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

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.MonitoringEvents.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    MonitoringEventDetail:
      description: >-
        Un événement de surveillance avec son enveloppe complète, son
        enrichissement et les éléments de preuve des règles. Chaque champ de
        `MonitoringEvent` ainsi que les champs ci-dessous.
      allOf:
        - $ref: '#/components/schemas/MonitoringEvent'
        - type: object
          required:
            - payload
            - custom_values
            - device_context
            - field_sources
            - session_sequence
            - table_id
            - hand_id
            - match_id
            - market_id
            - side
            - role
            - net_result_amount
            - payment_fingerprint
            - instrument_reference_hash
            - withdrawal_address_hash
            - dispute_id
            - chargeback_id
            - changed_field
            - identity_match_ref
            - schema_version
            - expires_at
            - rules_evaluated_count
            - rule_runs
            - ip_enrichment
            - subject_profile
            - tags
          properties:
            payload:
              type: object
              additionalProperties: true
              description: Les champs de catégorie que vous avez envoyés dans `payload`.
            custom_values:
              type: object
              additionalProperties: true
              description: >-
                Les `custom_values` scalaires que vous avez envoyées. Didit
                ajoute `vpn_or_proxy_detected: true` ou `is_data_center: true`
                lorsque l'enrichissement IP signale l'adresse et que vous ne les
                avez pas définies.
            device_context:
              type: object
              additionalProperties: true
              description: >-
                Le contexte de l'appareil tel qu'il est stocké : votre
                `device_context` (incluant `fingerprint`, `persistent_device_id`
                et `bot_score` lorsqu'ils sont envoyés) avec `network_context`
                complété par l'enrichissement IP (`ip_country`,
                `ip_country_code`, `ip_city`, `asn_number`, `asn_organization`,
                `is_vpn_or_tor`, `is_data_center`, `proxy_type`,
                `connection_type`) pour les clés laissées vides.
            field_sources:
              type: object
              additionalProperties:
                type: string
                enum:
                  - customer
                  - sdk
                  - server
              description: >-
                Chemin du champ vers sa provenance : `customer` (envoyé par
                votre backend), `sdk` (envoyé via le canal de l'appareil) ou
                `server` (dérivé par Didit, comme `received_at` et les champs
                réseau enrichis). Vérifiez-le avant d'agir sur une
                correspondance.
            session_sequence:
              type: integer
              format: int64
              nullable: true
              description: '`session.sequence` envoyé avec l''événement.'
            table_id:
              type: string
              nullable: true
              description: Promu depuis `payload.table_id`.
              maxLength: 128
            hand_id:
              type: string
              nullable: true
              description: Promu depuis `payload.hand_id`.
              maxLength: 128
            match_id:
              type: string
              nullable: true
              description: Promu depuis `payload.match_id`.
              maxLength: 128
            market_id:
              type: string
              nullable: true
              description: Promu depuis `payload.market_id`.
              maxLength: 128
            side:
              type: string
              nullable: true
              description: Promu depuis `payload.side`.
              maxLength: 64
            role:
              type: string
              nullable: true
              description: Promu depuis `payload.role`.
              maxLength: 64
            net_result_amount:
              type: string
              nullable: true
              description: >-
                Promu depuis `payload.net_result_amount`, sous forme de chaîne
                décimale avec 18 décimales.
              example: '-120.000000000000000000'
            payment_fingerprint:
              type: string
              nullable: true
              description: Promu depuis `payload.payment_fingerprint`.
              maxLength: 255
            instrument_reference_hash:
              type: string
              nullable: true
              description: Promu depuis `payload.instrument_reference_hash`.
              maxLength: 255
            withdrawal_address_hash:
              type: string
              nullable: true
              description: >-
                Promu depuis `payload.withdrawal_address_hash` (ou
                `payload.destination_reference_hash`).
              maxLength: 255
            dispute_id:
              type: string
              nullable: true
              description: Promu depuis `payload.dispute_id`.
              maxLength: 255
            chargeback_id:
              type: string
              nullable: true
              description: Promu depuis `payload.chargeback_id`.
              maxLength: 255
            changed_field:
              type: string
              nullable: true
              description: >-
                Promu depuis `payload.changed_field` (événements de changement
                de sécurité).
              maxLength: 128
            identity_match_ref:
              type: string
              nullable: true
              description: >-
                Promu depuis `payload.identity_match_ref` (correspondances au
                registre du jeu responsable).
              maxLength: 255
            schema_version:
              type: integer
              description: Version du schéma de l'enveloppe d'événement. Actuellement `1`.
              example: 1
            expires_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Date et heure auxquelles l'événement expire selon sa classe de
                conservation et est supprimé : `occurred_at` plus la période de
                la classe (14, 30 ou 90 jours par défaut, ajustable par
                application). Null pour les événements `monetary_or_compliance`,
                qui suivent la conservation des transactions.
            rules_evaluated_count:
              type: integer
              minimum: 0
              description: Nombre de règles d'événement évaluées pour cet événement.
            rule_runs:
              type: array
              description: >-
                Chaque règle qui correspondait à l'événement, de la plus récente
                à la plus ancienne.
              items:
                $ref: '#/components/schemas/MonitoringEventRuleRun'
            ip_enrichment:
              type: object
              nullable: true
              description: >-
                Enrichissement de l'adresse IP de l'événement, ou null lorsque
                l'adresse n'a pas été enrichie. Voir [Enrichissement
                IP](https://docs.didit.me/fr/transaction-monitoring/ip-enrichment).
              properties:
                ip_country_code:
                  type: string
                  nullable: true
                  description: Code pays de l'adresse.
                ip_city:
                  type: string
                  nullable: true
                  description: Ville de l'adresse.
                asn_number:
                  type: integer
                  nullable: true
                  description: Numéro de système autonome.
                asn_organization:
                  type: string
                  nullable: true
                  description: Organisation qui exploite le système autonome.
                is_vpn_or_tor:
                  type: boolean
                  description: >-
                    Indique si l'adresse est un nœud de sortie connu d'un VPN ou
                    de Tor.
                is_data_center:
                  type: boolean
                  description: >-
                    Indique si l'adresse appartient à un réseau d'hébergement ou
                    de centre de données.
                proxy_type:
                  type: string
                  nullable: true
                  description: >-
                    Classification du proxy de l'adresse sous forme de chaîne
                    opaque, ou null.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Date et heure du dernier enrichissement de l'adresse.
              required:
                - ip_country_code
                - ip_city
                - asn_number
                - asn_organization
                - is_vpn_or_tor
                - is_data_center
                - proxy_type
                - last_enriched_at
            subject_profile:
              type: object
              nullable: true
              description: >-
                Signaux de risque d'e-mail et de téléphone en cache pour le
                sujet, ou null lorsqu'aucun profil n'existe pour le sujet.
              properties:
                email_risk_score:
                  type: integer
                  nullable: true
                  description: Score de risque de l'e-mail.
                email_deliverability:
                  type: string
                  nullable: true
                  description: Verdict de délivrabilité de l'e-mail.
                email_is_disposable:
                  type: boolean
                  nullable: true
                  description: Indique si l'adresse e-mail est jetable.
                email_is_breached:
                  type: boolean
                  nullable: true
                  description: >-
                    Indique si l'adresse e-mail apparaît dans des fuites de
                    données connues.
                email_social_count:
                  type: integer
                  nullable: true
                  description: Nombre de comptes en ligne liés à l'adresse e-mail.
                email_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Noms des services en ligne où un compte associé à l'adresse
                    e-mail a été trouvé.
                phone_risk_score:
                  type: integer
                  nullable: true
                  description: Score de risque téléphonique.
                phone_line_type:
                  type: string
                  nullable: true
                  description: Type de ligne téléphonique.
                phone_carrier:
                  type: string
                  nullable: true
                  description: Nom de l'opérateur téléphonique.
                phone_social_count:
                  type: integer
                  nullable: true
                  description: Nombre de comptes en ligne liés au numéro de téléphone.
                phone_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Noms des services en ligne où un compte associé au numéro de
                    téléphone a été trouvé.
                source_provider:
                  type: string
                  nullable: true
                  description: Identifiant opaque de la source du profil.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Moment où le profil a été actualisé pour la dernière fois.
              required:
                - email_risk_score
                - email_deliverability
                - email_is_disposable
                - email_is_breached
                - email_social_count
                - email_social_providers
                - phone_risk_score
                - phone_line_type
                - phone_carrier
                - phone_social_count
                - phone_social_providers
                - source_provider
                - last_enriched_at
            tags:
              type: array
              items:
                type: string
              description: >-
                Noms des tags associés à l'événement (actions de règle
                `add_tags`).
    MonitoringEvent:
      type: object
      description: >-
        Un événement de surveillance enregistré tel que renvoyé par les
        endpoints de liste et de chronologie du sujet. Les éléments de preuve
        restreints (payload, contexte de l'appareil, preuves de règle) ne sont
        renvoyés que par `GET /v3/events/{event_uuid}/`.
      required:
        - event_uuid
        - event_id
        - event_category
        - action_type
        - occurred_at
        - received_at
        - status
        - score
        - subject_vendor_data
        - subject_entity_type
        - subject_uuid
        - counterparty_vendor_data
        - session_id
        - device_fingerprint
        - ip_address
        - ip_country
        - amount
        - currency
        - game_id
        - round_id
        - bonus_id
        - affiliate_code
        - payment_reference_id
        - retention_class
        - rules_matched_count
        - correlation_pending
        - is_droppable
      properties:
        event_uuid:
          type: string
          format: uuid
          description: >-
            Identifiant Didit de l'événement. Utilisez-le comme `{event_uuid}`
            dans les appels de récupération et de suppression.
        event_id:
          type: string
          maxLength: 128
          description: >-
            Votre propre identifiant, la clé d'idempotence que vous avez
            envoyée.
        event_category:
          type: string
          enum:
            - auth
            - session
            - gameplay
            - bonus
            - affiliate
            - payment
            - dispute
            - security
            - responsible_gambling
            - custom
          description: Catégorie d'événement.
        action_type:
          type: string
          maxLength: 128
          description: >-
            Ce qui s'est passé au sein de la catégorie, tel que vous l'avez
            envoyé.
        occurred_at:
          type: string
          format: date-time
          description: Date et heure de l'événement de votre côté.
        received_at:
          type: string
          format: date-time
          description: Date et heure auxquelles Didit a accepté l'événement.
        status:
          type: string
          enum:
            - ACCEPTED
            - APPROVED
            - IN_REVIEW
            - DECLINED
          description: >-
            `ACCEPTED` : enregistré, aucune règle correspondante n'a modifié son
            statut (la réponse normale pour la plupart des événements, et
            systématiquement la réponse dans une application sandbox, où aucune
            règle n'est exécutée). `APPROVED` : une règle s'est appliquée et le
            score est resté sous votre seuil d'examen. `IN_REVIEW` : une règle a
            fait dépasser le seuil d'examen au score ou a défini le statut.
            `DECLINED` : une règle l'a refusé ou le score a dépassé votre seuil
            de refus.
        score:
          type: integer
          description: >-
            Score de règle cumulé. Commence à 0 ; les actions de règle
            `add_score` le modifient (les deltas négatifs sont autorisés).
        subject_vendor_data:
          type: string
          maxLength: 255
          description: >-
            `subject.vendor_data` de l'événement : votre identifiant pour
            l'utilisateur ou l'entreprise.
        subject_entity_type:
          type: string
          description: >-
            `individual` ou `company` : le type de sujet désigné par
            `subject_vendor_data`.
          example: individual
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID de l'utilisateur (particulier) ou de l'entreprise auquel
            l'événement a été rattaché, ou null lorsque cet enregistrement
            n'existe plus.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: >-
            L'autre acteur d'un événement P2P (promu depuis
            `payload.counterparty_vendor_data`).
          maxLength: 255
        session_id:
          type: string
          nullable: true
          description: '`session.session_id` envoyé avec l''événement.'
          maxLength: 255
        device_fingerprint:
          type: string
          nullable: true
          description: '`device_context.fingerprint` envoyé avec l''événement.'
          maxLength: 255
        ip_address:
          type: string
          nullable: true
          description: "Adresse de l'événement. Sur le canal serveur, il s'agit de `device_context.network_context.ip_address` tel que vous l'avez envoyé\_; sur le canal appareil, il s'agit de l'IP de la requête."
          maxLength: 64
        ip_country:
          type: string
          nullable: true
          description: >-
            Code pays de `ip_address` issu de l'enrichissement IP, ou null
            lorsque l'adresse n'a pas été enrichie (manquante, privée ou
            télémétrie de faible valeur dont l'adresse n'était pas déjà connue).
          example: ES
        amount:
          type: string
          nullable: true
          description: >-
            Montant sous forme de chaîne décimale avec 18 décimales, provenant
            de `transaction_context.amount`, `payload.amount` ou
            `payload.stake_amount`, dans cet ordre.
          example: '250.000000000000000000'
        currency:
          type: string
          nullable: true
          description: >-
            Devise issue de `transaction_context.currency` ou
            `payload.currency`.
          maxLength: 10
        game_id:
          type: string
          nullable: true
          description: Promu depuis `payload.game_id`.
          maxLength: 128
        round_id:
          type: string
          nullable: true
          description: Promu depuis `payload.round_id`.
          maxLength: 128
        bonus_id:
          type: string
          nullable: true
          description: Promu depuis `payload.bonus_id`.
          maxLength: 128
        affiliate_code:
          type: string
          nullable: true
          description: Promu depuis `payload.affiliate_code`.
          maxLength: 128
        payment_reference_id:
          type: string
          nullable: true
          description: >-
            Référence de paiement issue de
            `transaction_context.payment_reference_id` ou de
            `payload.payment_reference_id`.
          maxLength: 255
        retention_class:
          type: string
          enum:
            - low_value
            - standard
            - risk_relevant
            - monetary_or_compliance
          description: >-
            Classe de conservation. Les événements de paiement et de litige sont
            `monetary_or_compliance` ; les événements de sécurité et de jeu
            responsable sont `risk_relevant` ; `session.page_view`,
            `session.sdk_heartbeat`, `session.sdk_loaded`,
            `session.device_seen`, `session.bot_signal_observed`,
            `bonus.promotion_viewed` et `affiliate.referral_clicked` sont
            `low_value` ; tout le reste est `standard`. Un événement auquel
            correspond une règle active est promu en `risk_relevant` (jamais
            rétrogradé).
        rules_matched_count:
          type: integer
          minimum: 0
          description: >-
            Nombre de règles correspondant à l'événement, y compris les règles
            en mode `TEST` (qui enregistrent des éléments probants sans
            appliquer d'actions).
        correlation_pending:
          type: boolean
          description: >-
            `true` tant qu'une règle asynchrone (corrélation entre sujets ou
            séquence de plus de 24 heures) doit encore s'exécuter pour cet
            événement. Elle se résout en quelques minutes et `status`, `score`
            ainsi que `rules_matched_count` se mettent à jour sur place.
        is_droppable:
          type: boolean
          description: >-
            Indique si un SDK soumis à une contre-pression peut abandonner les
            événements de ce type. `false` pour chaque événement `security`,
            `payment`, `dispute` et `responsible_gambling`, ainsi que pour
            `gameplay.bet_placed`, `gameplay.bet_settled` et
            `gameplay.p2p_settlement`.
    MonitoringEventRuleRun:
      type: object
      properties:
        rule_uuid:
          type: string
          format: uuid
          description: UUID de la règle de surveillance des transactions.
        rule_title:
          type: string
          description: Titre de la règle.
        library_key:
          type: string
          nullable: true
          description: >-
            Clé de bibliothèque lorsque la règle a été installée depuis la
            bibliothèque de règles, sinon null.
        matched:
          type: boolean
          description: >-
            Toujours `true` : seules les exécutions avec correspondance sont
            enregistrées.
        mode:
          type: string
          enum:
            - ACTIVE
            - TEST
          description: >-
            Mode de la règle lors de son exécution. Une exécution `TEST`
            enregistre les éléments de preuve mais n'applique aucune action.
        is_async:
          type: boolean
          description: >-
            `true` lorsque l'exécution provient de la passe de corrélation
            asynchrone plutôt que de la requête d'ingestion.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: >-
            Gravité de la règle. Null pour les exécutions de `TEST` et pour les
            règles sans gravité.
        score_delta:
          type: integer
          description: >-
            Mesure dans laquelle cette exécution a modifié le score de
            l'événement (0 pour les exécutions `TEST`).
        action_summary:
          type: string
          nullable: true
          description: >-
            Bref récapitulatif des actions appliquées, par exemple `score +40;
            add_tag:VPN_LOGIN`. Null lorsque rien n'a été appliqué.
        matched_payload:
          type: array
          description: >-
            Les conditions et agrégations qui ont correspondu. Les entrées de
            condition comportent `field`, `operator`, `expected_value`,
            `current_value`, `matched`, `group_index`, `group_logic` et
            `field_source` (`server`, `sdk` ou `customer`) ; les entrées
            d'agrégation comportent `metric`, `field`, `operator`,
            `expected_value`, `computed_value`, `window`, `filters`, `matched`
            et `sample_references`.
          items:
            type: object
            additionalProperties: true
        created_at:
          type: string
          format: date-time
          description: Moment où l'exécution de la règle a été enregistrée.
      required:
        - rule_uuid
        - rule_title
        - library_key
        - matched
        - mode
        - is_async
        - severity
        - score_delta
        - action_summary
        - matched_payload
        - created_at
  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.