Saltar al contenido principal
Las transacciones son el dinero. Los eventos son todo lo demás que sabe tu plataforma: el inicio de sesión que precedió al retiro, la mano que movió fichas entre dos cuentas, el bono que se reclamó dos veces, el contracargo que llegó una semana después. Los eventos usan una misma estructura para todas las categorías, son idempotentes por diseño y los evalúa el mismo motor de reglas que puntúa tus transacciones.
La ingesta de eventos es opcional. Actívala en Transactions → Settings → Event monitoring. Hasta que lo hagas, nada cambia: tus reglas de transacciones existentes siguen disparándose solo sobre transacciones, y no es posible crear una regla de eventos por accidente, porque una regla se aplica a las transacciones salvo que incluyas eventos de forma explícita.Mientras no esté activada, todos los canales de escritura (POST /v3/events/, POST /v3/events/batch/, POST /v3/events/sdk-token/ y el canal de dispositivo /v1/events/) responden 403 con {"code": "event_monitoring_disabled"}, y no se almacena, enriquece ni evalúa nada. Las lecturas no se ven afectadas.

Endpoints

La ruta /v3/ es la ruta del servidor y usa la misma autenticación x-api-key que el resto de la API de transacciones. La ruta /v1/events/ es la ruta del dispositivo: consulta Envío de eventos desde el SDK.

El sobre

Categorías

Diez categorías de primer nivel, cada una con validación tipada y campos de regla gestionados. auth es la categoría amplia de producto; security es el subconjunto orientado al riesgo, con el ciclo de vida ordenado que utilizan las reglas de toma de control de cuentas.

Claves obligatorias del payload

Algunas acciones no se pueden correlacionar sin claves concretas, así que la validación las rechaza en lugar de almacenar evidencias que nadie puede vincular.
Envía referencias y hashes, nunca secretos en claro. Los instrumentos de pago, los destinos de retirada y los cambios en el control de la cuenta se almacenan como la referencia con hash que envías. Nunca envíes un número de tarjeta, una dirección de retirada completa, un hash de contraseña ni un secreto de MFA.

Ejemplo: una liquidación P2P

Ejemplo: un contracargo

Los ciclos de vida de las disputas solo permiten añadir eventos: una corrección es un nuevo evento dispute, nunca una edición del primero.

Idempotencia

event_id es único por aplicación y constituye todo el contrato de idempotencia.
  • Mismo event_id, mismo contenido devuelve 200 con "idempotent_replay": true y el evento almacenado originalmente. Reintenta tantas veces como quieras.
  • Mismo event_id, contenido distinto devuelve 409. Has reutilizado un ID por error.

Lotes

POST /v3/events/batch/ acepta hasta 500 eventos. Un lote puede tener éxito parcial por diseño: una vista de página mal formada nunca debe afectar al contracargo adyacente.
La respuesta es 207 Multi-Status cuando se rechazó algo y 201 Created cuando todo se procesó correctamente.

Estados

correlation_pending: true significa que todavía tiene que ejecutarse una regla que abarca varios sujetos; se resuelve en cuestión de minutos y el estado y la puntuación del evento se actualizan directamente en el evento. Consulta las reglas asíncronas.

Retención

Los eventos tienen un volumen muy superior al de las transacciones, así que cada uno se asigna a una clase de retención al llegar. De la tabla se derivan dos reglas:
  • Un evento que coincide con una regla es una evidencia, por lo que se promueve automáticamente a risk_relevant.
  • Los eventos de pago y de disputa conservan la retención de transacciones. Nunca expiran según el calendario de eventos, y las anulaciones por clase no pueden acortarla.
Configura períodos de retención distintos para las tres clases que expiran en cada aplicación en Transactions → Settings → Event monitoring (de 1 a 730 días cada una).

Enriquecimiento de IP

Los eventos llevan el mismo enriquecimiento de IP que las transacciones (país, ASN e indicadores de VPN/proxy y de centro de datos), y se consulta el enriquecimiento por dirección IP única, nunca por evento. Una sesión que genera 200 vistas de página desde una misma dirección consulta el enriquecimiento de esa dirección una sola vez. La telemetría de bajo valor va más allá: solo lee el enriquecimiento si otro evento ya consultó el enriquecimiento de esa dirección. Nunca dispara una consulta por su cuenta. GET /v3/events/enrichment-metrics/ informa del resultado, y la consola muestra las mismas cifras encima de la lista de eventos:

Lectura de eventos

Filtros: event_category, action_type, status, retention_class, subject_vendor_data, business_vendor_data, session_id, device_fingerprint, ip_address, game_id, round_id, affiliate_code, payment_reference_id, counterparty_vendor_data, matched_only, occurred_from, occurred_to, search. Los filtros con varios valores repiten el parámetro (?status=A&status=B).

Cronología de un sujeto

Un vendor_data solo es único dentro de un tipo de entidad: el mismo ID puede designar a un usuario y a una empresa, y Didit los trata como dos sujetos distintos. entity_type indica cuál de los dos solicitas: individual (el valor predeterminado) o company. Si lo omites con el ID de una empresa, obtienes la cronología de la persona física, no ambas cronologías. Se aplican los mismos filtros de la lista. GET /v3/events/{event_uuid}/ añade el payload, el contexto del dispositivo, el enriquecimiento de IP, las señales de riesgo del sujeto almacenadas en caché y cada coincidencia de regla con su evidencia, incluido si cada campo coincidente fue derivado por el servidor o el SDK, o proporcionado por el cliente. DELETE /v3/events/{event_uuid}/delete/ elimina un evento. Ninguna lectura vuelve a devolverlo, y la eliminación es irreversible.

Siguientes pasos

Reglas sobre eventos

Reglas de velocidad, proporción, secuencia y correlación sobre los datos de eventos.

Envío de eventos desde el SDK

Captura eventos directamente desde el dispositivo con una credencial de alcance limitado.
Última modificación el 1 de noviembre de 2026