Distribuye una Offer existente mediante un código que el customer ingresa en checkout.
Un Promo Code es un canal de distribución. La Offer referenciada contiene las condiciones económicas; el código controla quién puede canjearlas y cuándo.
Un Promo Code puede referenciar una Offer con exactamente una fase percentage o amount_off.
const launchOffer = await commet.offers.create({
name: 'Launch 50',
phases: [
{ type: 'percentage', durationCycles: 2, percentage: 5000 },
],
})Las Offers con trial, varias fases o fixed_price pueden aplicarse directamente mediante offerId, pero no distribuirse con un Promo Code.
const promoCode = await commet.promoCodes.create({
code: 'LAUNCH50',
offerId: launchOffer.id,
billingInterval: 'monthly',
maxRedemptions: 100,
expiresAt: '2026-12-31T23:59:59.000Z',
planIds: ['pln_pro'],
})El Promo Code contiene:
Actualizar la Offer cambia los canjes futuros. Las Offer Applications existentes conservan sus condiciones aceptadas.
El customer ingresa el código durante checkout. Commet valida el código, resuelve la Offer referenciada en la moneda del checkout y registra una Offer Application con fuente promo_code.
Si aplica una Introductory Offer automática elegible, el código se rechaza con intro_offer_active. Tampoco puede combinarse un Promo Code con un offerId explícito.
await commet.subscriptions.create({
customerId: 'user_123',
planCode: 'pro',
promoCode: 'LAUNCH50',
})¿Cómo está esta guía?