Pipeline de API: emitir tus propios cupones
Objetivo: emitir tus propios cupones de descuento (plantillas) y gestionarlos.
Los cupones que emites no descuentan Pro ni los planes de Cabi.Chat: estos solo aceptan cupones emitidos por Cabi.Chat. Pipeline de API: canjear un cupón
Pasos
1. Crea una plantilla.
POST /v0/my/coupons
Idempotency-Key: 41d0…
{"title": "Spring −20%", "area": "PROMOTIONAL", "code": "SPRING20",
"discount_type": "PERCENTAGE", "discount_value": 20,
"mint_capacity": 100, "max_uses_per_user": 1, "clipped_validity_days": 30,
"valid_until": "2026-12-31T23:59:59Z", "project": "<project>"}
→ the coupon card (Private)
2. Listar. GET /v0/my/coupons → {"coupons": [...], "total"}.
3. Leer. GET /v0/my/coupons/<coupon> → condiciones y contadores (clips_minted, redeems_used).
4. Cambiar. PATCH /v0/my/coupons/<coupon> con, por ejemplo, {"is_active": false}, valid_until, mint_capacity, title, content, visibility, permissions.
5. Quitar. DELETE /v0/my/coupons/<coupon>, o POST /v0/my/archive {"nonce": "<coupon>", "archived": true}.
Reglas
area:ENGAGING,REFERRAL,PROMOTIONAL,SUBSCRIPTIONoSIGNIN;discount_type:PERCENTAGEoFIXED; si no, 400.titlees obligatorio.codese guarda en mayúsculas.- Los cupones nuevos son Private. Solo pueden guardar una plantilla quienes tienen permiso de ejecución sobre ella (derechos de las tarjetas: Grafo de Cabi.Chat — Políticas de tarjetas).
- Un cupón que ya alguien guardó no se puede eliminar (400): archívalo.
mint_capacitylimita cuántas veces se guarda;max_uses_per_userlimita los usos por cupón guardado (por defecto 1);clipped_validity_dayslimita cuánto tiempo sigue siendo válido un cupón guardado.
Superficie de la API
| Endpoint | Para qué | FE | IA / oráculo |
|---|---|---|---|
POST /v0/my/coupons |
Crear | no | sí |
GET /v0/my/coupons, GET /v0/my/coupons/{nonce} |
Listar, leer | no | sí |
PATCH /v0/my/coupons/{nonce} |
Cambiar | no | sí |
DELETE /v0/my/coupons/{nonce}, POST /v0/my/archive |
Eliminar o archivar | no | sí |
Índice: Pipelines de API — índice