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

# Introducción

> Qué hace el motor de decisión de cupones y cómo se integra un CRM con él.

El motor decide, para cada cliente y en cada campaña, **qué cupón mandarle o si no
mandarle ninguno**, y aprende del resultado de cada decisión. No lee la base de
datos de ningún CRM: se comunica solo por esta API.

<Steps>
  <Step title="Publica los eventos">
    Tu CRM envía a `POST /v1/eventos` lo que pasa: compras por categoría, cupones
    recibidos, redimidos y caducados, altas y bajas. Ver [contrato de eventos](/guias/contrato-eventos).
  </Step>

  <Step title="Pide decisiones">
    Por lotes para una campaña (`POST /v1/lotes-decision`) o en línea
    (`POST /v1/decisiones`). Cada decisión trae su `decision_id`, la acción y la
    propensión con la que se eligió.
  </Step>

  <Step title="Confirma la ejecución">
    `POST /v1/decisiones/{decision_id}/ejecucion` dice si aplicaste la decisión.
    Y cuando emitas el cupón, el evento `CUPON_RECIBIDO` lleva el `decision_id`.
    Sin estos dos pasos el motor decide pero **no aprende**.
  </Step>
</Steps>

<Note>
  **Para tu asistente de IA.** Esta documentación expone un servidor MCP de búsqueda en
  `https://docs.coupons.piixan.ai/mcp` y un índice en `https://docs.coupons.piixan.ai/llms.txt`:
  conéctalos a Claude, Cursor o el asistente que uses y responderá con el contrato real, no
  con suposiciones.
</Note>

## Reglas que conviene saber desde el principio

* **Dinero en MXN sin IVA**, con dos decimales, como número JSON.
* **Fechas en ISO-8601 con zona horaria.** El motor las guarda y devuelve en UTC (`Z`).
* **`cliente_ref` es un identificador seudonimizado.** El motor rechaza correos y
  teléfonos: la sal del hash la guardas tú.
* **Campos desconocidos se rechazan.** El error dice qué campo falla.
* **Cada `event_id` se procesa una sola vez.** Reenviar un lote no duplica nada.

<Note>
  Esta documentación cubre solo la API de datos `/v1/`. La administración de
  credenciales, cuotas y políticas la hace el operador de la plataforma.
</Note>
