Canjear codigo

Canjear un codigo promocional.

POST/api/v1/codes/redeem

Canjea un codigo promocional y retorna el descuento.

Request body

ParametroTipoDescripcion

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

CodigoHTTPDescripcion
CODE_NOT_FOUND404El codigo no existe
CODE_INACTIVE400Codigo desactivado
CODE_EXPIRED400Codigo expirado
CODE_MAX_USES_REACHED400Sin usos restantes
OUTSIDE_REDEEM_SCHEDULE403Fuera de la ventana de canje configurada en la campana (dias y horario en la zona horaria de la organizacion)
REDEEM_LIMIT_REACHED429El usuario supero redeemLimits.maxPerUser del periodo

Webhook

Se dispara el evento code.redeemed.