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

# Puntuación de riesgo de transacciones: fórmula y umbrales

> Didit puntúa cada transacción: reglas, umbrales y estados (APPROVED, IN_REVIEW, DECLINED). 1,000 al mes incluidas, luego $0.001 cada una.

Cada transacción recibe una **puntuación**, un número entero que resume su riesgo. La puntuación determina el estado de la transacción (`APPROVED`, `IN_REVIEW`, `DECLINED`) y la decisión de crear una alerta, abrir un caso o exigir que el usuario adopte medidas correctivas.

## La fórmula

```
score = Σ(score_delta of every matched rule)
```

* Puntuación base: 0.
* Cada regla que coincide suma su `score_delta` configurado (normalmente entre 25 y 35).
* Una transacción sin reglas coincidentes obtiene una puntuación de 0.

## Umbrales y estados

Los umbrales de puntuación se configuran por aplicación en *Transacciones → Configuración*.

| Configuración | Valor predeterminado | Significado |
| - | - | - |
| `preferred_review_score_threshold` | 75 | Las puntuaciones ≥ a este valor pasan a `IN_REVIEW` |
| `preferred_decline_score_threshold` | 500 | Las puntuaciones ≥ a este valor pasan a `DECLINED`. El valor predeterminado y máximo (`500`) significa "nunca rechazar por puntuación", así que redúcelo para empezar a rechazar según la puntuación. |

Asignación de estado:

```
if decline_threshold < 500 and score >= decline_threshold: status = DECLINED
else if score >= review_threshold: status = IN_REVIEW
else: status = APPROVED
```

Las acciones de cada regla pueden anular esta asignación de estado; por ejemplo, una regla con `action: change_status → DECLINED` rechazará la transacción independientemente de la puntuación.

## Contribuciones de las reglas: ejemplo práctico

Supón que estas reglas se activan en una sola transacción:

| Regla | `score_delta` |
| - | - |
| Salida de alto valor (>\$10,000) | 30 |
| Contraparte en jurisdicción de alto riesgo | 35 |
| Patrón de fraccionamiento detectado | 35 |

Puntuación total = 30 + 35 + 35 = **100**.

Con un umbral de revisión de 60 y un umbral de rechazo de 85, esta transacción queda `DECLINED`.
Con los umbrales predeterminados (75 de revisión, 500 de rechazo), queda `IN_REVIEW`, porque la configuración predeterminada nunca rechaza por puntuación.

## Anulaciones mediante acciones

Las reglas también pueden establecer directamente el estado, sin pasar por los umbrales de puntuación:

| Acción de la regla | Efecto |
| - | - |
| `change_status → DECLINED` | La transacción se rechaza independientemente de la puntuación |
| `change_status → IN_REVIEW` | La transacción pasa a revisión independientemente de la puntuación |
| `change_status → AWAITING_USER` | La transacción espera a que el usuario realice una corrección: se usa el flujo de verificación (workflow) definido en la acción de la regla; las reglas de la biblioteca recurren a la opción elegida en tu configuración, después a tu flujo de Autenticación biométrica (se requiere un rostro almacenado) y, por último, a tu flujo predeterminado |
| `add_score(n)` | Solo suma a la puntuación; no fuerza ningún estado |
| `add_tags([...])` | Añade etiquetas para filtrar en la consola; no afecta a la puntuación |
| `add_to_list(...)` | Añade un identificador a una lista de bloqueo |

Una sola regla puede tener varias acciones; por ejemplo, `add_score(35)` + `add_tags(["structuring"])` + `add_note("Auto-tagged by structuring preset")`.

## Por qué las puntuaciones superan a las reglas estrictas

Un umbral puro (por ejemplo, "rechazar toda transacción de más de \$100k") se activa tanto ante transacciones legítimas de alto valor como ante riesgos reales. Combinar varias reglas con un `score_delta` moderado y un umbral de revisión/rechazo te ofrece:

* **Puntuación por capas**: ninguna regla por sí sola provoca un rechazo; varias señales tienen que coincidir.
* **Sensibilidad ajustable**: sube o baja los umbrales sin tocar la definición de las reglas.
* **Gradación de la gravedad**: una transacción con puntuación 65 pasa a revisión (merece un vistazo); una con puntuación 90 se rechaza (grave).

## Configurar los umbrales

Desde *Transacciones → Configuración*:

* **Umbral de revisión**: súbelo si tu cola de revisión está saturada; bájalo para detectar más casos límite.
* **Umbral de rechazo**: súbelo para reducir los rechazos por falsos positivos; bájalo para optar por un bloqueo más agresivo. Establécelo en el valor máximo (`500`) para enviar las transacciones con puntuaciones altas a revisión en lugar de rechazarlas automáticamente.

Los cambios se aplican solo a las transacciones **nuevas**; las transacciones históricas conservan el estado asignado en el momento de su evaluación.

## Modo de prueba para reglas

Las reglas pueden ejecutarse en modo `TEST`:

* La regla se evalúa con respecto a las transacciones, pero no contribuye a la puntuación ni afecta al estado.
* Los registros `TransactionRuleRun` se crean con `is_test = true`.
* Te permite validar la selectividad de una regla sin arriesgarte a rechazos en producción.

Cambia a `ACTIVE` cuando estés conforme con la selectividad.

## Gravedad y campos heredados

El campo `severity` de Transaction y TransactionAlert admite valores nulos y es un campo heredado. Las nuevas evaluaciones de reglas no lo establecen. Usa `score` como señal principal de riesgo.

## Consultar las puntuaciones

### Mediante la API

Cada respuesta de transacción incluye `score` y un array `rule_runs[]` con una entrada por cada regla coincidente (consulta el [esquema de respuesta](https://docs.didit.me/es/transaction-monitoring/response-schema.md#ejecuciones-de-reglas) para ver todos los campos):

```json theme={null}
{
  "txn_id": "tx-0002",
  "status": "IN_REVIEW",
  "score": 65,
  "rule_runs": [
    {
      "rule_title": "High-value outbound",
      "matched": true,
      "score_delta": 30,
      "severity": null,
      "status_target": null,
      "action_summary": "score +30"
    },
    {
      "rule_title": "High-risk jurisdiction counterparty",
      "matched": true,
      "score_delta": 35,
      "severity": "HIGH",
      "status_target": "IN_REVIEW",
      "action_summary": "score +35; add_tag:high_risk_country"
    }
  ]
}
```

### En la consola

En la página de detalle de la transacción, la pestaña **Score** muestra un desglose de la contribución de cada regla coincidente y la asignación final del estado. Pasa el cursor sobre el indicador de puntuación para ver los valores de umbral usados en el momento de la evaluación.

## Próximos pasos

> [card] [Reglas](https://docs.didit.me/es/transaction-monitoring/rules.md)
>
> Anatomía y evaluación de las reglas.

> [card] [Alertas](https://docs.didit.me/es/transaction-monitoring/alerts.md)
>
> Qué ocurre cuando se activa una regla.

> [card] [Configuración](https://docs.didit.me/es/transaction-monitoring/settings.md)
>
> Configura los umbrales.


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