Vai al contenuto principale
POST
curl
L’acquisizione degli eventi è un’opzione da attivare. Abilitala in Transazioni > Impostazioni > Monitoraggio eventi prima di inviare eventi; fino ad allora questo endpoint risponde con 403 e "code": "event_monitoring_disabled".
Acquisizione degli eventi descrive l’envelope, le dieci categorie, le chiavi obbligatorie del payload e le classi di conservazione. Regole sugli eventi spiegano quali regole vengono eseguite nella richiesta e quali in modo asincrono. Per inviare eventi da un browser o da un’app invece che dal tuo backend, usa invio di eventi tramite SDK.

Autorizzazioni

x-api-key
string
header
obbligatorio

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.

Corpo

application/json

L'envelope dell'evento, lo stesso per ogni categoria. Sono accettati gli alias in camelCase: eventId, eventCategory (o category), actionType, occurredAt, timeZone (o zoneId), deviceContext (o device), transactionContext, customValues (o props); all'interno di subject: vendorData, entityType, fullName; all'interno di session: sessionId, pageUrl; all'interno di transaction_context: paymentReferenceId.

event_id
string
obbligatorio

Il tuo identificatore per l'evento, univoco per applicazione. È la chiave di idempotenza: il reinvio, con questo identificatore, degli stessi valori di event_category, action_type, occurred_at, subject.vendor_data e payload costituisce un replay, qualsiasi elemento differente genera un conflitto.

Maximum string length: 128
Esempio:

"login-2026-10-17-000001"

event_category
enum<string>
obbligatorio

Categoria dell'evento.

Opzioni disponibili:
auth,
session,
gameplay,
bonus,
affiliate,
payment,
dispute,
security,
responsible_gambling,
custom
Esempio:

"auth"

action_type
string
obbligatorio

Cosa è successo all'interno della categoria. Vocabolario aperto; le azioni gestite elencate in Event ingestion (ad esempio login, deposit_completed, chargeback_opened) sbloccano la convalida tipizzata e i campi delle regole gestite. Gli spazi vuoti iniziali e finali vengono rimossi.

Required string length: 1 - 128
Esempio:

"login"

occurred_at
string<date-time>
obbligatorio

Data e ora in cui l'evento si è verificato nel tuo sistema, ISO 8601 (un valore senza offset viene interpretato come UTC). Non deve essere antecedente a più di 7 giorni nel passato né può essere più di 5 minuti nel futuro.

Esempio:

"2026-10-17T09:15:02.481Z"

subject
object
obbligatorio

L'utente o l'azienda a cui appartiene l'evento. Si risolve nell'utente (o azienda) con questo vendor_data nella tua applicazione; ne viene creato uno se non ne esiste alcuno.

time_zone
string | null

Fuso orario dell'evento dal tuo lato, ad esempio Europe/Madrid. Memorizzato con l'evento; non restituito dagli endpoint di lettura.

Maximum string length: 64
business
object

L'azienda a cui appartiene l'evento, quando differisce dal soggetto. Viene letto solo vendor_data.

session
object

Il contesto della tua sessione per l'evento.

device_context
object

Contesto del dispositivo e di rete, memorizzato così come inviato e restituito da GET /v3/events/{event_uuid}/. In questo canale server Didit non vede la connessione dell'utente finale, quindi l'IP arricchito e utilizzato dalle regole è network_context.ip_address esattamente come inviato.

transaction_context
object

Contesto monetario. I valori non vuoti qui presenti soddisfano anche le chiavi obbligatorie del payload dell'azione.

payload
object

I campi di dominio della categoria, massimo 16384 byte una volta codificati in JSON. Alcune azioni richiedono chiavi (in payload o in transaction_context): gameplay.p2p_settlement richiede game_id, counterparty_vendor_data, stake_amount, net_result_amount, role e uno tra hand_id, round_id, match_id; gameplay.bet_placed e gameplay.bet_settled richiedono game_id; payment.deposit_initiated, payment.deposit_completed, payment.withdrawal_requested e payment.withdrawal_completed richiedono payment_reference_id, amount, currency, payment_method, status; payment.withdrawal_address_changed richiede withdrawal_address_hash; dispute.chargeback_opened, dispute.chargeback_won e dispute.chargeback_lost richiedono payment_reference_id e uno tra dispute_id, chargeback_id; session.bot_signal_observed richiede telemetry_schema_version e uno tra bot_score, actions_per_minute, timing_variance_ms, pointer_entropy, keystroke_entropy, reaction_time_ms_p50; responsible_gambling.self_exclusion_match richiede registry_source, exclusion_status, identity_match_ref. Ogni azione security che termina con _changed richiede changed_field, oltre a previous_reference_hash o new_reference_hash quando il campo è password, mfa_method, mfa, email, phone, withdrawal_address, payout_method o api_key. Invia hash e riferimenti, mai un numero di carta, un indirizzo di prelievo completo, un hash della password o un segreto MFA.

custom_values
object

Fino a 100 chiavi personalizzate, indirizzabili dalle regole come custom_values.<key>. I valori devono essere scalari (stringa, numero, booleano o null); oggetti e array annidati vengono rifiutati.

Risposta

Riproduzione idempotente: un evento con questo event_id e lo stesso contenuto è già memorizzato. Non è stato memorizzato o valutato nuovamente nulla; il corpo descrive l'evento memorizzato.

Esito dell'acquisizione di un evento. Viene restituita la stessa struttura sia per un nuovo evento sia per una ripetizione idempotente.

event_uuid
string<uuid>
obbligatorio

Identificatore Didit dell'evento memorizzato.

event_id
string
obbligatorio

Il tuo event_id.

status
enum<string>
obbligatorio

Stato dopo l'esecuzione delle regole in tempo reale. Vedi MonitoringEvent.status.

Opzioni disponibili:
ACCEPTED,
APPROVED,
IN_REVIEW,
DECLINED
score
integer
obbligatorio

Punteggio ottenuto dopo l'esecuzione delle regole in tempo reale.

rules_evaluated_count
integer
obbligatorio

Numero di regole di evento valutate nella richiesta. 0 in un'applicazione sandbox, in cui non viene eseguita alcuna regola.

Intervallo richiesto: x >= 0
rules_matched_count
integer
obbligatorio

Numero di regole che hanno trovato corrispondenza, incluse le regole in modalità TEST.

Intervallo richiesto: x >= 0
correlation_pending
boolean
obbligatorio

true quando una regola asincrona deve ancora essere eseguita. Leggi GET /v3/events/{event_uuid}/ qualche minuto dopo per ottenere status e score definitivi.

retention_class
enum<string>
obbligatorio

Classe di conservazione, dopo l'eventuale promozione applicata da una regola corrispondente.

Opzioni disponibili:
low_value,
standard,
risk_relevant,
monetary_or_compliance
expires_at
string<date-time> | null
obbligatorio

Data e ora di scadenza ed eliminazione dell'evento in base alla relativa classe di conservazione. Null per gli eventi monetary_or_compliance (pagamento e contestazione).

idempotent_replay
boolean
obbligatorio

true quando un evento con questo event_id e lo stesso contenuto era già memorizzato; i valori sono quelli dell'evento memorizzato e nessuna regola è stata rieseguita.

rule_matches
object[]
obbligatorio

Regole che hanno prodotto una corrispondenza con l'evento.

Ultima modifica il 7 novembre 2026