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

# Confirmar la ejecución

> POST /v1/decisiones/{id}/ejecucion: obligatorio para que el motor aprenda de sus decisiones.

El motor solo sabe lo que decidió, no lo que tu sistema hizo. Si no aplicaste la
decisión (una regla interna, un error de envío) y no lo dices, la propensión
registrada es falsa y el aprendizaje se sesga. Por eso esta llamada es
**obligatoria** para cada decisión, y la consola vigila que llegue en más del 95 %
de los casos.

```bash theme={null}
curl -X POST https://api.coupons.piixan.ai/v1/decisiones/dec_3d5b…/ejecucion \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"ejecutada": true}'
```

| cuerpo                                        | resultado                                                          |
| --------------------------------------------- | ------------------------------------------------------------------ |
| `{"ejecutada": true}`                         | `ejecutada`: aplicaste la acción decidida                          |
| `{"ejecutada": true, "accion_real": 3}`       | `modificada`: aplicaste otra acción (queda fuera de la evaluación) |
| `{"ejecutada": false, "motivo_rechazo": "…"}` | `rechazada`: no aplicaste nada                                     |

Reglas:

* Una **sola** confirmación por decisión; la segunda responde `409 ejecucion_ya_confirmada`.
* Dentro de los 7 días de `caduca_en`; después, `409 decision_caducada`.
* El `decision_id` va firmado y ligado a tu inquilino: uno alterado, ajeno o
  inventado responde `404 no_encontrado`, igual que uno inexistente.
* Confirma también las decisiones con `accion: 0`: «no mandé nada» es información.

Y cuando emitas el cupón decidido, el evento `CUPON_RECIBIDO` debe llevar el
`decision_id`; sin él, la redención no se atribuye a la decisión.
