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

# Ottieni evento di monitoraggio: API di Didit

> Recupera un evento di monitoraggio con payload, contesto del dispositivo, arricchimento IP, segnali del soggetto, tag ed evidenze delle regole in Didit.

Prompt API per ottenere un evento di monitoraggio
Copia il prompt negli appunti

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

Incolla in

Consulta [Evidenza](https://docs.didit.me/it/transaction-monitoring/event-rules.md#evidenze) per sapere come le esecuzioni delle regole registrano ogni valore corrispondente e la sua origine, e [Arricchimento IP](https://docs.didit.me/it/transaction-monitoring/ip-enrichment.md) per i campi dell'indirizzo IP arricchiti.


## OpenAPI

````yaml it/openapi-25.json GET /v3/events/{event_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/events/{event_uuid}/:
    get:
      tags:
        - Monitoring Events
      summary: Recupera evento di monitoraggio
      description: >-
        Recupera un evento di monitoraggio con tutto ciò che restituisce
        l'elenco, oltre a payload, valori personalizzati, contesto del
        dispositivo, provenienza dei campi (`field_sources`), campi di dominio
        promossi, `expires_at`, ogni esecuzione di regola corrispondente con le
        relative prove, l'arricchimento IP e i tag allegati dalle regole. Quando
        `correlation_pending` è `true`, una regola asincrona deve ancora essere
        eseguita; rileggi l'evento dopo qualche minuto per ottenere i valori
        definitivi di `status`, `score` e `rule_runs`. Le letture funzionano
        indipendentemente dal fatto che l'ingestione degli eventi sia abilitata
        o meno. Una chiave API con scope richiede `transactions: read`. Vedi
        [Evidenze](https://docs.didit.me/it/transaction-monitoring/event-rules#evidenze)
        e [Arricchimento
        IP](https://docs.didit.me/it/transaction-monitoring/ip-enrichment).
      operationId: get_monitoring_event
      parameters:
        - name: event_uuid
          in: path
          required: true
          description: >-
            Identificatore Didit dell'evento (`event_uuid` dalla risposta di
            creazione, batch, elenco o timeline), non il tuo `event_id`.
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      responses:
        '200':
          description: L'evento con le relative prove.
          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 chiave API con ambito è scaduta. Solo una chiave scaduta riceve
            `401`; una chiave mancante o non valida riceve `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Intestazione `x-api-key` mancante (una chiave errata, revocata o
            scaduta restituisce `401`), una chiave con ambito priva di
            `transactions: read`, una chiave limitata ad alcuni workflow o a
            sessioni approvate (tale chiave non accede mai ai dati di
            monitoraggio delle transazioni), oppure una richiesta proveniente
            dall'esterno dell'allowlist IP della chiave.
          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: >-
            Nessun evento con questo `event_uuid` esiste nell'applicazione: non
            è mai stato memorizzato, è stato eliminato o appartiene a un'altra
            applicazione. Un segmento di percorso che non sia un UUID non
            corrisponde alla route e restituisce anch'esso `404`.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: No MonitoringEvent matches the given query.
        '429':
          description: >-
            Limite di frequenza superato: le richieste `GET` condividono un
            budget di 600 richieste al minuto per chiave API. Attendi
            `Retry-After` secondi, quindi riprova.
          headers:
            Retry-After:
              description: Secondi da attendere prima di effettuare un nuovo tentativo.
              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 evento di monitoraggio con la sua busta completa, l'arricchimento e
        le evidenze delle regole. Tutti i campi di `MonitoringEvent` più i campi
        seguenti.
      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: I campi della categoria inviati in `payload`.
            custom_values:
              type: object
              additionalProperties: true
              description: >-
                I valori scalari di `custom_values` che hai inviato. Didit
                aggiunge `vpn_or_proxy_detected: true` o `is_data_center: true`
                quando l'arricchimento IP contrassegna l'indirizzo e non li hai
                impostati.
            device_context:
              type: object
              additionalProperties: true
              description: >-
                Il contesto del dispositivo archiviato: il tuo `device_context`
                (inclusi `fingerprint`, `persistent_device_id` e `bot_score` se
                inviati) con `network_context` completato tramite arricchimento
                IP (`ip_country`, `ip_country_code`, `ip_city`, `asn_number`,
                `asn_organization`, `is_vpn_or_tor`, `is_data_center`,
                `proxy_type`, `connection_type`) per le chiavi lasciate vuote.
            field_sources:
              type: object
              additionalProperties:
                type: string
                enum:
                  - customer
                  - sdk
                  - server
              description: >-
                Percorso del campo della provenienza: `customer` (inviato dal
                tuo backend), `sdk` (inviato tramite il canale del dispositivo)
                o `server` (derivato da Didit, come `received_at` e i campi di
                rete arricchiti). Verificalo prima di intervenire su una
                corrispondenza.
            session_sequence:
              type: integer
              format: int64
              nullable: true
              description: '`session.sequence` inviato con l''evento.'
            table_id:
              type: string
              nullable: true
              description: Promosso da `payload.table_id`.
              maxLength: 128
            hand_id:
              type: string
              nullable: true
              description: Promosso da `payload.hand_id`.
              maxLength: 128
            match_id:
              type: string
              nullable: true
              description: Promosso da `payload.match_id`.
              maxLength: 128
            market_id:
              type: string
              nullable: true
              description: Promosso da `payload.market_id`.
              maxLength: 128
            side:
              type: string
              nullable: true
              description: Promosso da `payload.side`.
              maxLength: 64
            role:
              type: string
              nullable: true
              description: Promosso da `payload.role`.
              maxLength: 64
            net_result_amount:
              type: string
              nullable: true
              description: >-
                Promosso da `payload.net_result_amount`, come stringa decimale
                con 18 cifre decimali.
              example: '-120.000000000000000000'
            payment_fingerprint:
              type: string
              nullable: true
              description: Promosso da `payload.payment_fingerprint`.
              maxLength: 255
            instrument_reference_hash:
              type: string
              nullable: true
              description: Promosso da `payload.instrument_reference_hash`.
              maxLength: 255
            withdrawal_address_hash:
              type: string
              nullable: true
              description: >-
                Promosso da `payload.withdrawal_address_hash` (o
                `payload.destination_reference_hash`).
              maxLength: 255
            dispute_id:
              type: string
              nullable: true
              description: Promosso da `payload.dispute_id`.
              maxLength: 255
            chargeback_id:
              type: string
              nullable: true
              description: Promosso da `payload.chargeback_id`.
              maxLength: 255
            changed_field:
              type: string
              nullable: true
              description: >-
                Promosso da `payload.changed_field` (eventi di modifica della
                sicurezza).
              maxLength: 128
            identity_match_ref:
              type: string
              nullable: true
              description: >-
                Promosso da `payload.identity_match_ref` (corrispondenze nel
                registro del gioco responsabile).
              maxLength: 255
            schema_version:
              type: integer
              description: >-
                Versione dello schema dell'involucro dell'evento. Attualmente
                `1`.
              example: 1
            expires_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Data e ora di scadenza ed eliminazione dell'evento in base alla
                relativa classe di conservazione: `occurred_at` più il periodo
                della classe (14, 30 o 90 giorni per impostazione predefinita,
                modificabile per applicazione). Null per gli eventi
                `monetary_or_compliance`, che seguono la conservazione delle
                transazioni.
            rules_evaluated_count:
              type: integer
              minimum: 0
              description: Numero di regole di evento valutate per questo evento.
            rule_runs:
              type: array
              description: >-
                Ogni regola che ha trovato corrispondenza con l'evento, dalla
                più recente alla più vecchia.
              items:
                $ref: '#/components/schemas/MonitoringEventRuleRun'
            ip_enrichment:
              type: object
              nullable: true
              description: >-
                Arricchimento dell'indirizzo IP dell'evento, oppure null se
                l'indirizzo non è stato arricchito. Consulta [arricchimento
                IP](https://docs.didit.me/it/transaction-monitoring/ip-enrichment).
              properties:
                ip_country_code:
                  type: string
                  nullable: true
                  description: Codice del paese dell'indirizzo.
                ip_city:
                  type: string
                  nullable: true
                  description: Città dell'indirizzo.
                asn_number:
                  type: integer
                  nullable: true
                  description: Numero di sistema autonomo.
                asn_organization:
                  type: string
                  nullable: true
                  description: Organizzazione che gestisce il sistema autonomo.
                is_vpn_or_tor:
                  type: boolean
                  description: Indica se l'indirizzo è un'uscita nota di una VPN o di Tor.
                is_data_center:
                  type: boolean
                  description: >-
                    Indica se l'indirizzo appartiene a una rete di hosting o
                    data center.
                proxy_type:
                  type: string
                  nullable: true
                  description: >-
                    Classificazione proxy dell'indirizzo come stringa opaca,
                    oppure null.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Data e ora dell'ultimo arricchimento dell'indirizzo.
              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: >-
                Segnali di rischio memorizzati nella cache per email e telefono
                del soggetto, oppure null se non esiste alcun profilo per il
                soggetto.
              properties:
                email_risk_score:
                  type: integer
                  nullable: true
                  description: Punteggio di rischio dell'email.
                email_deliverability:
                  type: string
                  nullable: true
                  description: Verdetto sulla recapitabilità dell'email.
                email_is_disposable:
                  type: boolean
                  nullable: true
                  description: Indica se l'indirizzo email è usa e getta.
                email_is_breached:
                  type: boolean
                  nullable: true
                  description: >-
                    Indica se l'indirizzo email compare in violazioni di dati
                    note.
                email_social_count:
                  type: integer
                  nullable: true
                  description: Numero di account online collegati all'indirizzo email.
                email_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nomi dei servizi online in cui è stato trovato un account
                    collegato all'indirizzo email.
                phone_risk_score:
                  type: integer
                  nullable: true
                  description: Punteggio di rischio del telefono.
                phone_line_type:
                  type: string
                  nullable: true
                  description: Tipo di linea telefonica.
                phone_carrier:
                  type: string
                  nullable: true
                  description: Nome dell'operatore telefonico.
                phone_social_count:
                  type: integer
                  nullable: true
                  description: Numero di account online collegati al numero di telefono.
                phone_social_providers:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nomi dei servizi online in cui è stato trovato un account
                    collegato al numero di telefono.
                source_provider:
                  type: string
                  nullable: true
                  description: Identificatore opaco della fonte del profilo.
                last_enriched_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: Quando il profilo è stato aggiornato l'ultima volta.
              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: >-
                Nomi dei tag associati all'evento (azioni `add_tags` della
                regola).
    MonitoringEvent:
      type: object
      description: >-
        Un evento di monitoraggio memorizzato come restituito dagli endpoint
        dell'elenco e della cronologia del soggetto. Le evidenze con accesso
        limitato (payload, contesto del dispositivo, evidenze della regola)
        vengono restituite solo da `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: >-
            Identificatore Didit dell'evento. Utilizzalo come `{event_uuid}`
            nelle chiamate di recupero e cancellazione.
        event_id:
          type: string
          maxLength: 128
          description: Il tuo identificatore, la chiave di idempotenza che hai inviato.
        event_category:
          type: string
          enum:
            - auth
            - session
            - gameplay
            - bonus
            - affiliate
            - payment
            - dispute
            - security
            - responsible_gambling
            - custom
          description: Categoria dell'evento.
        action_type:
          type: string
          maxLength: 128
          description: >-
            Cosa è successo all'interno della categoria, così come l'hai
            inviato.
        occurred_at:
          type: string
          format: date-time
          description: Data e ora in cui l'evento si è verificato nel tuo sistema.
        received_at:
          type: string
          format: date-time
          description: Quando Didit ha accettato l'evento.
        status:
          type: string
          enum:
            - ACCEPTED
            - APPROVED
            - IN_REVIEW
            - DECLINED
          description: >-
            `ACCEPTED`: memorizzato, nessuna regola corrispondente ha modificato
            il suo stato (la risposta normale per la maggior parte degli eventi,
            e sempre la risposta in un'applicazione sandbox, dove non viene
            eseguita alcuna regola). `APPROVED`: una regola ha trovato
            corrispondenza e il punteggio è rimasto al di sotto della soglia di
            revisione. `IN_REVIEW`: una regola ha fatto superare al punteggio la
            soglia di revisione o ha impostato lo stato. `DECLINED`: una regola
            lo ha rifiutato o il punteggio ha superato la soglia di rifiuto.
        score:
          type: integer
          description: >-
            Punteggio cumulativo delle regole. Inizia da 0; le azioni
            `add_score` delle regole lo modificano (sono consentiti delta
            negativi).
        subject_vendor_data:
          type: string
          maxLength: 255
          description: >-
            `subject.vendor_data` dell'evento: il tuo identificativo per
            l'utente o l'azienda.
        subject_entity_type:
          type: string
          description: >-
            `individual` o `company`: indica il tipo di soggetto a cui fa
            riferimento `subject_vendor_data`.
          example: individual
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID dell'utente (persona fisica) o dell'azienda a cui l'evento è
            stato ricondotto, oppure null se tale record non esiste più.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: >-
            L'altro partecipante di un evento P2P (promosso da
            `payload.counterparty_vendor_data`).
          maxLength: 255
        session_id:
          type: string
          nullable: true
          description: '`session.session_id` inviato con l''evento.'
          maxLength: 255
        device_fingerprint:
          type: string
          nullable: true
          description: '`device_context.fingerprint` inviato con l''evento.'
          maxLength: 255
        ip_address:
          type: string
          nullable: true
          description: >-
            Indirizzo IP dell'evento. Sul lato server è
            `device_context.network_context.ip_address` come lo hai inviato; sul
            lato dispositivo è l'IP della richiesta.
          maxLength: 64
        ip_country:
          type: string
          nullable: true
          description: >-
            Codice del paese di `ip_address` ottenuto dall'arricchimento IP,
            oppure null quando l'indirizzo non è stato arricchito (telemetria
            mancante, privata o a basso valore il cui indirizzo non era già
            noto).
          example: ES
        amount:
          type: string
          nullable: true
          description: >-
            Importo come stringa decimale con 18 cifre decimali, da
            `transaction_context.amount`, `payload.amount` o
            `payload.stake_amount`, in quest'ordine.
          example: '250.000000000000000000'
        currency:
          type: string
          nullable: true
          description: Valuta da `transaction_context.currency` o `payload.currency`.
          maxLength: 10
        game_id:
          type: string
          nullable: true
          description: Promosso da `payload.game_id`.
          maxLength: 128
        round_id:
          type: string
          nullable: true
          description: Promosso da `payload.round_id`.
          maxLength: 128
        bonus_id:
          type: string
          nullable: true
          description: Promosso da `payload.bonus_id`.
          maxLength: 128
        affiliate_code:
          type: string
          nullable: true
          description: Promosso da `payload.affiliate_code`.
          maxLength: 128
        payment_reference_id:
          type: string
          nullable: true
          description: >-
            Riferimento di pagamento da
            `transaction_context.payment_reference_id` o
            `payload.payment_reference_id`.
          maxLength: 255
        retention_class:
          type: string
          enum:
            - low_value
            - standard
            - risk_relevant
            - monetary_or_compliance
          description: >-
            Classe di conservazione. Gli eventi di pagamento e contestazione
            sono `monetary_or_compliance`; gli eventi di sicurezza e gioco
            responsabile sono `risk_relevant`; `session.page_view`,
            `session.sdk_heartbeat`, `session.sdk_loaded`,
            `session.device_seen`, `session.bot_signal_observed`,
            `bonus.promotion_viewed` e `affiliate.referral_clicked` sono
            `low_value`; tutto il resto è `standard`. Un evento corrispondente a
            una regola attiva viene promosso a `risk_relevant` (senza mai essere
            retrocesso).
        rules_matched_count:
          type: integer
          minimum: 0
          description: >-
            Numero di regole che hanno corrisposto all'evento, incluse le regole
            in modalità `TEST` (che registrano le prove ma non applicano
            azioni).
        correlation_pending:
          type: boolean
          description: >-
            `true` mentre una regola asincrona (correlazione tra soggetti o una
            sequenza superiore a 24 ore) deve ancora essere eseguita per questo
            evento. Si risolve entro pochi minuti e `status`, `score` e
            `rules_matched_count` vengono aggiornati sul posto.
        is_droppable:
          type: boolean
          description: >-
            Indica se un SDK sotto contropressione (backpressure) può ignorare
            eventi di questo tipo. `false` per ogni evento di `security`,
            `payment`, `dispute` e `responsible_gambling` e per
            `gameplay.bet_placed`, `gameplay.bet_settled` e
            `gameplay.p2p_settlement`.
    MonitoringEventRuleRun:
      type: object
      properties:
        rule_uuid:
          type: string
          format: uuid
          description: UUID della regola di monitoraggio delle transazioni.
        rule_title:
          type: string
          description: Titolo della regola.
        library_key:
          type: string
          nullable: true
          description: >-
            Chiave della libreria se la regola è stata installata dalla libreria
            di regole, altrimenti null.
        matched:
          type: boolean
          description: 'Sempre `true`: vengono registrate solo le esecuzioni corrispondenti.'
        mode:
          type: string
          enum:
            - ACTIVE
            - TEST
          description: >-
            Modalità della regola al momento dell'esecuzione. Un'esecuzione in
            modalità `TEST` registra le prove ma non applica alcuna azione.
        is_async:
          type: boolean
          description: >-
            `true` quando l'esecuzione proviene dal passaggio di correlazione
            asincrono anziché dalla richiesta di acquisizione.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: >-
            Gravità della regola. Null per le esecuzioni `TEST` e per le regole
            prive di gravità.
        score_delta:
          type: integer
          description: >-
            Di quanto questa esecuzione ha modificato il punteggio dell'evento
            (0 per le esecuzioni `TEST`).
        action_summary:
          type: string
          nullable: true
          description: >-
            Breve riepilogo delle azioni applicate, ad esempio `score +40;
            add_tag:VPN_LOGIN`. Null quando non è stato applicato nulla.
        matched_payload:
          type: array
          description: >-
            Le condizioni e le aggregazioni corrispondenti. Le voci di
            condizione contengono `field`, `operator`, `expected_value`,
            `current_value`, `matched`, `group_index`, `group_logic` e
            `field_source` (`server`, `sdk` o `customer`); le voci di
            aggregazione contengono `metric`, `field`, `operator`,
            `expected_value`, `computed_value`, `window`, `filters`, `matched` e
            `sample_references`.
          items:
            type: object
            additionalProperties: true
        created_at:
          type: string
          format: date-time
          description: Quando è stata registrata l'esecuzione della regola.
      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 chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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