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

# Lotes de decisiones

> POST /v1/lotes-decision: una campaña entera, con resultado descargable y aviso por webhook.

Para una campaña, pide un lote en vez de miles de decisiones en línea:

```bash theme={null}
curl -X POST https://api.coupons.piixan.ai/v1/lotes-decision \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"campana_id": "camp-2026-11", "segmento": {"todos": true}}'
```

```json theme={null}
{ "job_id": "job_01J8Z4A1B2C3D4E5F6G7H8J9K0", "estado": "en_cola", "creado_en": "2026-03-06T14:00:00Z" }
```

* `clientes`: lista de `cliente_ref` (hasta 500.000), **o** `segmento: {"todos": true}`
  para todos los clientes con historial.
* Un lote en curso por inquilino; otro mientras tanto responde `429`.
* La campaña define canal y presupuesto (`PUT /v1/campanas/{id}`): si los envíos
  de la política superan `max_envios`, se conservan los de mayor margen esperado y el
  resto recibe «nada». El presupuesto se aplica antes de cualquier aleatorización.

## Estado y resultado

`GET /v1/lotes-decision/{job_id}` devuelve el estado; al completarse, `resultado_url`
es una **URL firmada** de 60 minutos que descarga directamente del almacén de objetos
un fichero JSONL con una decisión por línea, con el mismo cuerpo que la decisión en
línea más `cliente_ref`. No lleva tu token: trátala como un secreto y no la
compartas; si caduca, vuelve a consultar el estado y recibirás otra. También puedes
descargar el mismo fichero con tu token en `GET /v1/lotes-decision/{job_id}/resultado`
(es lo que hacen los SDK). Confirma la ejecución de cada decisión como siempre.

Si registraste un webhook, recibes `lote.completado` al terminar. Ver [webhooks](/guias/webhooks).
