Canjear codigo
Canjear un codigo promocional.
POST
/api/v1/codes/redeemCanjea un codigo promocional y retorna el descuento.
Request body
| Parametro | Tipo | Descripcion |
|---|
Ejemplo
curl -X POST https://southgames.ai/api/v1/codes/redeem \
-H "Authorization: Bearer sg_live_xxx" \
-H "X-Org-Id: mi-empresa" \
-H "Content-Type: application/json" \
-d '{"code": "SG-AB2C-XY9Z", "externalUserId": "user_123"}'
Respuesta
{
"success": true,
"discountType": "percentage",
"discountValue": 30,
"maxDiscountAmount": 25000,
"remainingUses": 0,
"pointsAwarded": 5,
"newPointsBalance": 155
}
maxDiscountAmount es un tope absoluto del descuento, solo relevante cuando discountType === "percentage". null indica que no hay tope. La integración debe aplicar min(price * discountValue/100, maxDiscountAmount) al calcular el descuento final.
Errores
| Codigo | HTTP | Descripcion |
|---|---|---|
CODE_NOT_FOUND | 404 | El codigo no existe |
CODE_INACTIVE | 400 | Codigo desactivado |
CODE_EXPIRED | 400 | Codigo expirado |
CODE_MAX_USES_REACHED | 400 | Sin usos restantes |
OUTSIDE_REDEEM_SCHEDULE | 403 | Fuera de la ventana de canje configurada en la campana (dias y horario en la zona horaria de la organizacion) |
REDEEM_LIMIT_REACHED | 429 | El usuario supero redeemLimits.maxPerUser del periodo |
Webhook
Se dispara el evento code.redeemed.