Subscription) es un cobro recurrente que genera automáticamente una serie de deudas, una por ciclo. Tú defines qué cobrar (monto, frecuencia, deudor y duración) y TapiPay genera las cuotas y resuelve toda la complejidad interna por ti.
Cuándo usarla: cobros que se repiten en el tiempo (mensualidades, cuotas de crédito, planes periódicos). Para un cargo único usa una deuda; para cobrar sin deudor conocido, una liga de pago.
Generación de cuotas por adelantado
Al crear la suscripción, TapiPay calcula las fechas de todos los ciclos y genera las deudas por adelantado (no hay un proceso que cree una cuota por mes). La generación de esas deudas ocurre de forma asíncrona: la suscripción se devuelve en estadoACTIVE apenas el cálculo y el encolado terminan correctamente.
Si la generación de las deudas falla, la suscripción se revierte automáticamente para que puedas reintentar con el mismo
externalSubscriptionId sin duplicar cobros.Crear una suscripción
Campos principales
string
requerido
Llave natural de la suscripción. Única por organización. Si la repites, la API responde
409 RESOURCE_CONFLICT.string | object
requerido
El deudor. Envía uno de los dos (no ambos), igual que en una deuda. En v1 cada suscripción tiene exactamente un deudor.
number
requerido
Monto por ciclo en pesos, con hasta 2 decimales (mínimo
0.01).string
requerido
Unidad del intervalo:
day, week, month o year.integer
requerido
Cantidad de unidades por ciclo. Por ejemplo,
intervalUnit: "month" + intervalCount: 3 es trimestral.string
requerido
Fecha de inicio en formato
YYYY-MM-DD.integer
Cantidad de ciclos a generar (máximo 520). Excluyente con
endDate.string
Fecha de fin (
YYYY-MM-DD), posterior a startDate. Excluyente con totalCycles.object
Override del día de cobro:
{ day, month? }. Solo aplica a intervalos month o year. Ver más abajo.boolean
predeterminado:"false"
Si es
true, el deudor debe pagar las cuotas en orden cronológico.description, productName, allowOverduePayment, allowPartialPayments, autopay y paymentMethods con el mismo comportamiento que una deuda. Ver Medios de pago.
Frecuencias con intervalUnit + intervalCount
Día de cobro (billingDay)
Por defecto, el día de cobro se infiere del startDate (modelo aniversario): si la suscripción inicia el día 15, todos los cobros caen el 15. El override billingDay desacopla el día de cobro del startDate.
Fin de mes: si el día configurado supera el último día del mes (por ejemplo, 31 en febrero), el cobro se realiza el último día del mes; el mes siguiente vuelve al día original.
Duración indefinida
Si no envíastotalCycles ni endDate, la suscripción queda ACTIVE y se genera solo la deuda del primer ciclo (para no generar cobros sin límite). Define totalCycles o endDate cuando quieras generar todas las cuotas por adelantado.
La respuesta
Los datos de programación viajan anidados en el objetoscheduling.
Ciclo de vida
Cada deuda generada por la suscripción tiene su propio ciclo de vida (
PENDING, PAID, etc.). Cancelar la suscripción no cancela automáticamente las deudas ya generadas. Ver Deudas.Pago en orden (enforcePaymentOrder)
Con enforcePaymentOrder: true, el deudor no puede pagar una cuota si hay cuotas anteriores impagas. Intentarlo devuelve 422 BUSINESS_RULE_VIOLATION. Debe saldarlas en orden cronológico.
Endpoints
Pruébalo en el API Reference
Explora cada endpoint con su playground interactivo.

