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étodoQué 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.

Referencia HTTP y reglas de cupones.