Saltar al contenido principal

Planes

Crea planes reutilizables con precio, frecuencia, prueba gratis y precios introductorios. Para un plan de un solo uso, defínelo al crear la suscripción.

¿Primera vez con este módulo? Sigue la guía Cobrar suscripciones.

Métodos

Plan

Así se ve el objeto que devuelven los métodos de este módulo.

CampoTipoDescripción
idstringIdentificador, empieza por plan_
urlstringCheckout público del plan
namestringNombre visible
slugstringIdentificador legible, único en el proyecto
descriptionstring | nullDescripción opcional
currency"COP" | "USD"Moneda de los cobros
intervalPlanIntervalweekly, quincenal, monthly, quarterly, semiannual o annual
termCycleCountnumber | nullCobros antes de terminar; null es sin fin
phasesPlanPhase[]Fases de precio: type, amount, discountPercent y duration
metadataRecord<string, string>Tus datos propios
source"manual" | "api"Origen
livemodebooleantrue si se creó con una llave live
createdAtstringFecha de creación
updatedAtstringFecha de la última edición

Crear un plan

landapay.plans.create(params, options?)

Para un precio simple usa amount y, si quieres, trialDays. Para precios por etapas usa phases: cada fase lleva su duration salvo la última, que se repite hasta el final.

Parámetros

CampoTipoDescripción
nameobligatoriostringNombre visible
intervalobligatorioPlanIntervalFrecuencia de cobro
amountnumberPrecio por ciclo en centavos
trialDaysnumberDías de prueba gratis; requiere amount
phasesPlanPhaseParams[]Alternativa a amount: fases trial o priced con amount o discountPercent
currency"COP" | "USD"COP por defecto
termCycleCountnumber | nullCobros antes de terminar; sin enviarlo es sin fin
descriptionstring | nullDescripción opcional
slugstring | nullSe genera del nombre si no lo envías
metadataRecord<string, string | number | boolean | null>Hasta 50 pares llave/valor. Al actualizar se combina con la actual; null en una llave la borra
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Plan>

EjemploTypeScript
// Precio simple con 14 días gratisconst pro = await landapay.plans.create({  name: "Plan Pro",  interval: "monthly",  amount: 4_990_000,  trialDays: 14,}); // Dos meses al 50 % y luego precio completoconst promo = await landapay.plans.create({  name: "Plan Pro promo",  interval: "monthly",  phases: [    { type: "priced", discountPercent: 50, duration: { unit: "month", count: 2 } },    { type: "priced", amount: 4_990_000 },  ],});

Obtener un plan

landapay.plans.retrieve(id, options?)

Parámetros

CampoTipoDescripción
idobligatoriostringId del plan (plan_...)
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Plan>

EjemploTypeScript
const plan = await landapay.plans.retrieve("plan_PLANCODE23456789");

Actualizar un plan

landapay.plans.update(id, params, options?)

Acepta los campos de create, todos opcionales. Enviar amount o phases reemplaza todas las fases. Las suscripciones existentes conservan el precio con el que se suscribieron.

Parámetros

CampoTipoDescripción
idobligatoriostringId del plan (plan_...)
paramsobligatorioPlanUpdateParamsCampos a cambiar
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Plan>

EjemploTypeScript
await landapay.plans.update("plan_PLANCODE23456789", {  amount: 5_990_000,});

Eliminar un plan

landapay.plans.delete(id, options?)

Solo se puede eliminar un plan sin suscripciones vigentes.

Parámetros

CampoTipoDescripción
idobligatoriostringId del plan (plan_...)
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<{ id: string; object: "plan"; deleted: true }>

EjemploTypeScript
await landapay.plans.delete("plan_PLANCODE23456789");