Saltar al contingut principal
POST
curl
L’ingestió d’esdeveniments és opcional. Activa-la a Transactions > Settings > Event monitoring abans d’enviar esdeveniments; fins aleshores, aquest endpoint respon amb 403 i "code": "event_monitoring_disabled".
Ingestió d’esdeveniments explica l’embolcall, les deu categories, les claus obligatòries del payload i les classes de conservació. Regles sobre esdeveniments explica quines regles s’executen durant la sol·licitud i quines s’executen de manera asíncrona. Per enviar esdeveniments des d’un navegador o una aplicació en lloc del teu backend, fes servir Enviament d’esdeveniments amb el SDK.

Autoritzacions

x-api-key
string
header
requerit

La clau d'API de la teva aplicació, des de Developers -> API keys a la Business Console. La clau primària té accés complet. Una clau amb nom pot tenir l'abast limitat: cap, lectura o escriptura per recurs, limitada a determinats fluxos de treball o a sessions aprovades, a una llista d'adreces IP i a una data de caducitat. 401 significa que la clau és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap clau, que la clau no té accés a aquest recurs o acció, o que la sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una ruta de sessió significa que la sessió està fora dels fluxos de treball o estats de la clau. Una clau sense accés a fitxers multimèdia rep els URL d'imatge, vídeo i PDF com a null, i una clau sense permís d'escriptura de sessions rep els enllaços de sessió i els tokens com a null. Consulta https://docs.didit.me/console/api-keys.

Cos

application/json

El sobre de l'esdeveniment, el mateix per a cada categoria. S'accepten àlies en camelCase: eventId, eventCategory (o category), actionType, occurredAt, timeZone (o zoneId), deviceContext (o device), transactionContext, customValues (o props); dins de subject: vendorData, entityType, fullName; dins de session: sessionId, pageUrl; dins de transaction_context: paymentReferenceId.

event_id
string
requerit

El teu identificador per a l'esdeveniment, únic per aplicació. És la clau d'idempotència: reenviar els mateixos event_category, action_type, occurred_at, subject.vendor_data i payload amb aquest identificador és una repetició; qualsevol diferència és un conflicte.

Maximum string length: 128
Exemple:

"login-2026-10-17-000001"

event_category
enum<string>
requerit

Categoria de l'esdeveniment.

Opcions disponibles:
auth,
session,
gameplay,
bonus,
affiliate,
payment,
dispute,
security,
responsible_gambling,
custom
Exemple:

"auth"

action_type
string
requerit

Què ha passat dins de la categoria. Vocabulari obert; les accions gestionades llistades a Event ingestion (per exemple, login, deposit_completed, chargeback_opened) desbloquegen la validació tipada i els camps de regles gestionades. S'eliminen els espais en blanc inicials i finals.

Required string length: 1 - 128
Exemple:

"login"

occurred_at
string<date-time>
requerit

Quan va ocórrer l'esdeveniment al teu costat, ISO 8601 (un valor sense decalatge es llegeix com a UTC). No ha de ser de més de 7 dies en el passat ni de més de 5 minuts en el futur.

Exemple:

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

subject
object
requerit

L'usuari o empresa a qui pertany l'esdeveniment. Es resol en l'usuari (o empresa) amb aquest vendor_data a la teva aplicació; se'n crea un quan no n'hi ha cap.

time_zone
string | null

Zona horària de l'ocurrència al teu costat, per exemple Europe/Madrid. S'emmagatzema amb l'esdeveniment; no la retornen els endpoints de lectura.

Maximum string length: 64
business
object

L'empresa a la qual pertany l'esdeveniment, quan difereix del subjecte. Només es llegeix vendor_data.

session
object

El context de la teva sessió per a l'esdeveniment.

device_context
object

Context del dispositiu i de la xarxa, emmagatzemat tal com s'ha enviat i retornat per GET /v3/events/{event_uuid}/. En aquesta via de servidor Didit no veu la connexió de l'usuari final, de manera que l'adreça IP enriquida i utilitzada per les regles és network_context.ip_address tal com l'envies.

transaction_context
object

Context monetari. Els valors no buits d'aquí també satisfan les claus de payload requerides de l'acció.

payload
object

Els camps de domini de la categoria, com a màxim 16384 bytes un cop codificats en JSON. Algunes accions requereixen claus (a payload o transaction_context): gameplay.p2p_settlement necessita game_id, counterparty_vendor_data, stake_amount, net_result_amount, role i un de hand_id, round_id, match_id; gameplay.bet_placed i gameplay.bet_settled necessiten game_id; payment.deposit_initiated, payment.deposit_completed, payment.withdrawal_requested i payment.withdrawal_completed necessiten payment_reference_id, amount, currency, payment_method, status; payment.withdrawal_address_changed necessita withdrawal_address_hash; dispute.chargeback_opened, dispute.chargeback_won i dispute.chargeback_lost necessiten payment_reference_id i un de dispute_id, chargeback_id; session.bot_signal_observed necessita telemetry_schema_version i un de bot_score, actions_per_minute, timing_variance_ms, pointer_entropy, keystroke_entropy, reaction_time_ms_p50; responsible_gambling.self_exclusion_match necessita registry_source, exclusion_status, identity_match_ref. Tota acció de security que acabi en _changed necessita changed_field, a més de previous_reference_hash o new_reference_hash quan el camp és password, mfa_method, mfa, email, phone, withdrawal_address, payout_method o api_key. Envia valors hash i referències, mai un número de targeta, una adreça de retirada completa, un hash de contrasenya o un secret MFA.

custom_values
object

Fins a 100 claus pròpies, accessibles des de les regles com a custom_values.<key>. Els valors han de ser escalars (string, number, boolean o null); es rebutgen els objectes niats i les matrius.

Resposta

Repetició idempotent: ja hi ha emmagatzemat un esdeveniment amb aquest event_id i el mateix contingut. No s'ha emmagatzemat ni avaluat res de nou; el cos descriu l'esdeveniment emmagatzemat.

Resultat de la ingesta d'un esdeveniment. Es retorna la mateixa estructura tant per a un esdeveniment nou com per a una repetició idempotent.

event_uuid
string<uuid>
requerit

Identificador de Didit de l'esdeveniment emmagatzemat.

event_id
string
requerit

El teu event_id.

status
enum<string>
requerit

Estat després d'executar les regles en temps real. Consulta MonitoringEvent.status.

Opcions disponibles:
ACCEPTED,
APPROVED,
IN_REVIEW,
DECLINED
score
integer
requerit

Puntuació després de l'execució de les regles en temps real.

rules_evaluated_count
integer
requerit

Nombre de regles d'esdeveniment avaluades a la sol·licitud. 0 en una aplicació de sandbox, on no s'executa cap regla.

Rang requerit: x >= 0
rules_matched_count
integer
requerit

Nombre de regles que han coincidit, incloses les regles en mode TEST.

Rang requerit: x >= 0
correlation_pending
boolean
requerit

true quan encara s'ha d'executar una regla asíncrona. Consulta GET /v3/events/{event_uuid}/ uns minuts més tard per obtenir els valors definitius de status i score.

retention_class
enum<string>
requerit

Classe de conservació de dades, després de qualsevol promoció per una regla que hagi coincidit.

Opcions disponibles:
low_value,
standard,
risk_relevant,
monetary_or_compliance
expires_at
string<date-time> | null
requerit

Quan l'esdeveniment caduca segons la seva classe de conservació i s'elimina. Null per a esdeveniments monetary_or_compliance (pagaments i disputes).

idempotent_replay
boolean
requerit

true quan ja s'havia emmagatzemat un esdeveniment amb aquest event_id i el mateix contingut; els valors són els de l'esdeveniment emmagatzemat i no s'ha tornat a executar cap regla.

rule_matches
object[]
requerit

Regles que han coincidit amb l'esdeveniment.

Darrera modificació el 7 de novembre del 2026