# Pasos Clave

### Paso 1: Definición y Detección de Fraude

**Descripción:**

El módulo antifraude tiene como objetivo detectar actividades fraudulentas realizadas por afiliados para conseguir CPA y ganancias de manera ilegítima. Un ejemplo de fraude es cuando el afiliado utiliza los datos de familiares para registrarse, depositar y apostar en una casa de apuestas, realizando apuestas seguras que garantizan una ganancia tanto por la apuesta como por la CPA.

**Identificación de Actividades Fraudulentas:**

* **Registro de familiares o uso de múltiples cuentas por el mismo afiliado.**
* **Apuestas seguras o "sure bets".**
* **Depósitos y apuestas con patrones anómalos.**

### Paso 2: Proceso de Obtención, Transformación y Almacenamiento de Datos

**Descripción:**

El proceso de obtención, transformación y almacenamiento de datos es fundamental para la detección de fraudes. Inlaze utiliza dos microservicios principales:

**Microservicios:**

1. **Data Collector Microservice:**
   * Desarrollado en Python con FastAPI.
   * Extrae datos de los affiliate networks mediante APIs o scrapers.
   * Transforma y normaliza los datos antes de almacenarlos en MongoDB o S3.
2. **Data Processor Microservice:**
   * Desarrollado en NestJS.
   * Procesa los datos almacenados en MongoDB o S3.
   * Realiza cálculos internos y guarda los resultados en la base de datos de reportes.

### Paso 3: Tipos de Reportes Procesables

**Descripción:**

En el sistema Inlaze existen dos tipos de reportes consumibles y procesables:

1. **Account Report:**
   * Reporte de jugadores con variables como "playerId", "revenueShare", "netRevenue", "deposit", "stake", "isCpa", etc.
   * Utilizado para detectar movimientos fraudulentos basados en el comportamiento de los jugadores.
2. **Member Report:**
   * Reporte consolidado de jugadores agrupados por promCode y fecha.
   * Incluye información sobre la cantidad de CPA, número de registros, depósitos acumulados, etc.

### Paso 4: Solución Propuesta para Detectar Fraude

**Descripción:**

La solución propuesta para la detección de fraude en la plataforma Inlaze incluye varios pasos:

1. **Recopilación y Preprocesamiento de Datos:**
   * Datos necesarios: Información de registros de usuarios, historial de apuestas, datos de depósitos, direcciones IP y dispositivos utilizados, códigos promocionales y su recurrencia, tiempos de cumplimiento de CPA.
   * Preprocesamiento: Limpieza de datos, normalización de datos, manejo de valores faltantes, transformación de características relevantes.
2. **Identificación de Patrones de Fraude:**
   * Patrones comunes de fraude: Apuestas seguras, uso de múltiples cuentas desde la misma IP o dispositivo, comportamiento anómalo en depósitos y retiros, recurrencia de ingresos por códigos promocionales.
3. **Implementación de Algoritmos de Detección:**
   * Algoritmos y técnicas recomendadas: Reglas de negocio, análisis de red, modelos de aprendizaje automático, métodos estadísticos.
4. **Automatización del Proceso:**
   * Frameworks y bibliotecas en Python: Pandas, Scikit-learn, NetworkX, TensorFlow/PyTorch, FraudDetection, OpenSearch, Power BI.

### Paso 5: Implementación de Algoritmos y Técnicas de Detección

**Descripción:**

Se recomienda implementar diversos algoritmos y técnicas para la detección de fraude, tales como:

* **Reglas de Negocio:** Definir reglas específicas para detectar comportamientos sospechosos.
* **Análisis de Red:** Utilizar grafos para identificar redes de cuentas relacionadas.
* **Modelos de Aprendizaje Automático:** Entrenar modelos supervisados o no supervisados para detectar patrones de fraude.
* **Métodos Estadísticos:** Uso de distribuciones binomiales para detectar IPs dobles.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-affiliates.inlaze.com/reportes/antifraude/pasos-clave.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
