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

# Respaldo

> Qué hacer cuando el motor no responde: tu regla, registrada como decisión de respaldo.

La campaña nunca se bloquea por el motor. Si una decisión no llega en el tiempo
pactado, el motor responde `503 inquilino_pausado` o falla varias veces seguidas,
tu sistema aplica **su regla de siempre** y lo registra:

```bash theme={null}
curl -X POST https://api.coupons.piixan.ai/v1/decisiones/respaldo \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"cliente_ref": "c_9f1e…", "accion": 1, "canal": "push", "campana_id": "camp-2026-11"}'
```

Queda como decisión con propensión 1 y `politica_version: respaldo`: no entra en
el aprendizaje como si la hubiera tomado el motor, pero mantiene el registro
completo y la ventana del cliente cerrada.

Con el SDK basta con pasar tu regla:

```python theme={null}
motor = Motor(url, client_id, client_secret, respaldo=lambda ref, ctx: mi_regla(ref))
d = motor.decidir(ref, canal="push")      # d.en_respaldo dice si se usó la regla
motor.sincronizar_respaldos()             # reenvía los que no se pudieron registrar
```

Un `422` (cuerpo inválido) o un `403` (sin ámbito) **no** disparan el respaldo:
son errores de integración y se propagan.
