> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clausum.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Resiliencia e idempotencia de assess

> Claves de idempotencia, modo mantenimiento, timeouts y campos de correlación para assess en producción.

Las integraciones de producción deben tratar assess como **ruta crítica** con comportamiento explícito de reintento y deduplicación.

## Descubrir capacidades

```bash theme={null}
curl -s "$CLAUSUM_API_BASE/api/v1/assess" \
  -H "Authorization: Bearer $CLAUSUM_SECRET_KEY" | jq '.version, .resilience'
```

Versión actual de API: **1.3.0**.

## Idempotencia

Envía **`Idempotency-Key`** (encabezado) o campos del cuerpo `idempotency_key` / `order_id` + `payment_id` estable en reintentos.

* Replays con la misma clave devuelven la **misma decisión** sin doble conteo de velocidad.
* La respuesta puede incluir campos de correlación: `order_id`, `payment_id`, `idempotency_key`.

```bash theme={null}
curl -X POST "$CLAUSUM_API_BASE/api/v1/assess" \
  -H "Authorization: Bearer $CLAUSUM_SECRET_KEY" \
  -H "Idempotency-Key: ord-9912-attempt-1" \
  -H "Content-Type: application/json" \
  -d '{"amount":4500,"currency":"USD","email":"a@b.c","order_id":"ORD-9912"}'
```

## Códigos de estado HTTP

| Código | Significado | Comportamiento sugerido del cliente |
| - | - | - |
| `200` | Evaluación completada | Aplica `decision` |
| `400` | Error de validación | Corrige payload |
| `401` | Clave API inválida o ausente | Rota / corrige auth |
| `429` | Rate limit | Backoff y reintento |
| `503` | Mantenimiento (`ASSESS_MAINTENANCE`) | Fail-open o cola según tu política |
| `504` | Timeout (`ASSESS_TIMEOUT`) | Reintenta con la misma clave de idempotencia |

Consulta [Errores](/es/reference/errors) para valores estructurados `error.code`.

## Fail-open vs fail-closed

| Estrategia | Cuándo |
| - | - |
| **Fail-open** | Red/503/504 — permite checkout, registra incidente (común para comercios) |
| **Fail-closed** | Flujos regulados — bloquea hasta que assess tenga éxito |

Clausum no captura pagos por ti — **tu backend** elige si llamar a tu PSP tras assess.

## Release (opcional)

Si tu integración usa holds de assess, `POST /api/v1/assess/release` limpia el contexto de decisión previa cuando se abandona un checkout. Contacta soporte si lo necesitas en tu flujo.

## Límites de tasa

Partner assess tiene rate limit por clave API. Despliegues multi-nodo en producción requieren **Redis (Upstash)** — de lo contrario puedes recibir `503 RATE_LIMIT_STORE_UNAVAILABLE`. Consulta [Límites de tasa](/es/reference/rate-limits).


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