Cupones
Crea descuentos para productos o para planes.
Usa billete.coupons desde tu servidor. Configura el cliente con el entorno y la clave de tu negocio.
Ejemplo
// La mitad de los tres primeros pagos del plan Plus, hasta fin de año.
const coupon = await billete.coupons.create({
code: "PLUS50",
percentOff: 50,
appliesTo: "plans",
plans: [plus.id],
payments: 3,
expiresAt: "2026-12-31T23:59:59-04:00",
}, { idempotencyKey: "coupon-plus50-example-001" });
await billete.coupons.update(coupon.id, { active: false });Métodos
| Método | Qué hace |
|---|---|
create(input, options?) | Crear un cupón. |
retrieve(id, options?) | Consultar un cupón por su ID o su código. |
update(id, input, options?) | Cambiar nombre, disponibilidad o límites. |
delete(id, options?) | Eliminar un cupón; su código queda libre. |
list(query?, options?) | Listar; admite active, search y sort. |
iterate(query?) | Recorrer cupones. |
Qué debes tener en cuenta
Un cupón es para productos o para planes (appliesTo); con products o plans se limita a esos. Elige percentOff o amountOff, nunca ambos; el descuento fijo y minimumAmount requieren currency. En planes, payments dice cuántos pagos descuenta (null: todos). maxRedemptions, expiresAt, oncePerCustomer y firstPurchaseOnly limitan su uso.
update(id, { active: false }) lo pausa y se puede revertir; delete es definitivo y funciona aunque se haya usado. En los dos casos, las suscripciones y los pagos abiertos que ya lo tienen conservan su descuento.