Cobros recurrentes

Irreversible

Qué cubre#

Cuatro herramientas de lectura sobre los planes de cobro recurrente y sus suscriptores, y una sensible que pausa, reactiva o elimina un suscriptor. Esa última afecta cobros futuros: pedí confirmación humana antes de ejecutarla.

Herramientas#

Listar planes de cobro recurrente

Sólo lectura

tilopay_recurring_list_plans

Lista los planes de cobro recurrente configurados en Tilopay.

Operación del API: POST /api/v1/getPlansRepeat

Parámetros

Sin parámetros.

Devuelve

{ result }

Respuesta cruda del API de Tilopay bajo la llave `result`.

Detalle de un plan recurrente

Sólo lectura

tilopay_recurring_get_plan

Obtiene el detalle de un plan de cobro recurrente por su ID.

Operación del API: POST /api/v1/getPlanRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del plan
include_qrboolean—Incluir el QR en base64 del plan (por defecto false; úsalo solo si el comercio pide el QR)

Devuelve

{ result }

Respuesta cruda del API de Tilopay bajo la llave `result`.

Detalle de un suscriptor

Sólo lectura

tilopay_recurring_get_subscriber

Obtiene el detalle de un suscriptor de un plan recurrente por su ID.

Operación del API: POST /api/v1/getSuscriptorRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del suscriptor

Devuelve

{ result }

Respuesta cruda del API de Tilopay bajo la llave `result`.

Buscar suscriptor por nombre o correo

Sólo lectura

tilopay_recurring_find_subscriber

Busca un suscriptor por nombre o correo en todos los planes recurrentes de una sola vez. Úsala antes de pausar, reactivar o editar a alguien cuando no tienes su ID.

Parámetros

ParámetroTipoObligatorioDescripción
querystringsíNombre o correo del suscriptor

Devuelve

Pagos de un suscriptor

Sólo lectura

tilopay_recurring_subscriber_payments

Lista los pagos realizados por un suscriptor recurrente.

Operación del API: POST /api/v1/getSuscriptorPayments

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del suscriptor

Devuelve

{ result }

Respuesta cruda del API de Tilopay bajo la llave `result`.

Cobros recurrentes fallidos

Sólo lectura

tilopay_recurring_failed_payments

Lista los últimos cobros recurrentes que fallaron (plan, suscriptor, monto, fecha y motivo en lenguaje simple). Una sola llamada basta.

Operación del API: POST /api/v1/getSuscriptorPayments

Parámetros

ParámetroTipoObligatorioDescripción
limitinteger—Máximo de cobros (por defecto 10)
startDatestring—Desde, "YYYY-MM-DD HH:mm:ss"
endDatestring—Hasta, "YYYY-MM-DD HH:mm:ss"

Devuelve

{ total, source, failures[] }

failures = cobros recurrentes rechazados, con plan, suscriptor, monto, moneda y motivo del rechazo; total = cuántos se encontraron; source = la ruta del API de la que se obtuvieron. Combina la consulta de planes, suscriptores y sus pagos.

Pausar, reactivar o eliminar un suscriptor

Sensible

tilopay_recurring_manage_subscriber

Pausa, reactiva o elimina un suscriptor de un plan recurrente en Tilopay. Operación sensible: afecta cobros futuros y requiere segundo factor. Llámela primero sin `confirmation_code`: se envía un código de 6 dígitos al correo del comercio y la respuesta trae `requires_confirmation`. Repita la misma llamada agregando `confirmation_code`.

Operación del API: POST /api/v1/pauseSuscriptorRepeat, /reactiveSuscriptorRepeat o /deleteSuscriptorRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idSubscriberstringsíID del suscriptor
actionstring (pause | reactivate | delete)síAcción a realizar
confirmation_codestring—Código de 6 dígitos recibido por correo para autorizar la operación

Devuelve

{ result }

Respuesta cruda del endpoint correspondiente a la acción: pause, reactivate o delete.

Crear plan de suscripción

Escritura

tilopay_recurring_create_plan

Crea un plan de cobro recurrente (suscripción) en Tilopay con su título, moneda, frecuencia y modalidades (nombre y monto). Devuelve el ID del plan creado; luego usa tilopay_recurring_subscription_url para obtener el enlace con el que los clientes se suscriben.

Operación del API: POST /api/v1/createPlanRepeat

Parámetros

ParámetroTipoObligatorioDescripción
titlestringsíTítulo del plan
modalityarray<object>síModalidades del plan (al menos una): nombre y monto por ciclo
frequencystring (diario | semanal | mensual | anual | quincenal | bimestral | trimestral | cuatrimestral | semestral)síFrecuencia de cobro
descriptionstring—Descripción del plan
currencystring—Moneda ISO 4217, ej. USD o CRC. Si se omite se usa la del país del comercio.
first_amountnumber—Monto del pago inicial (0 si no hay)
trial_daysinteger—Días de prueba gratis (0 si no hay prueba)
attemptsinteger—Reintentos ante un cobro fallido (1 por defecto)
end_atstring—Fecha de fin del plan en formato DD-MM-YYYY (opcional)
thanks_urlstring—URL de agradecimiento tras suscribirse (opcional)
webhook_subscribestring—Webhook al suscribirse un cliente (opcional)
webhook_paymentstring—Webhook al cobrarse un pago (opcional)
webhook_rejectedstring—Webhook al rechazarse un cobro (opcional)
webhook_unsubscribestring—Webhook al cancelarse una suscripción (opcional)
webhook_reactivestring—Webhook al reactivarse una suscripción (opcional)

Devuelve

{ result, currency, frequency }

result = respuesta del API con el plan creado; currency y frequency = la moneda y la frecuencia con la que quedó el plan.

Editar plan de suscripción

Escritura

tilopay_recurring_edit_plan

Modifica un plan de cobro recurrente existente: título, descripción, frecuencia, moneda, monto por ciclo (modality), pago inicial, prueba gratis, reintentos, estado o fecha de fin. Consulte primero tilopay_recurring_get_plan para conocer los valores actuales.

Operación del API: POST /api/v1/editPlanRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del plan
titlestringsíTítulo del plan
frequencystring (diario | semanal | mensual | anual | quincenal | bimestral | trimestral | cuatrimestral | semestral)síFrecuencia de cobro
modalityarray<object>—Modalidades con su monto por ciclo; envíelas cuando cambie el precio del plan
currencystring—Moneda ISO 4217
descriptionstring—Descripción del plan
first_amountnumber—Monto del pago inicial
trial_daysinteger—Días de prueba gratis
attemptsinteger—Reintentos ante cobro fallido
statusstring (inactive | active | closed_to_new)—Estado: inactive (inactivo), active (activo) o closed_to_new (activo sin registros nuevos)
end_atstring—Fecha de fin del plan en formato DD-MM-YYYY (opcional)
thanks_urlstring—URL de agradecimiento
webhook_subscribestring—Webhook al suscribirse
webhook_paymentstring—Webhook al cobrarse un pago
webhook_rejectedstring—Webhook al rechazarse un cobro
webhook_unsubscribestring—Webhook al cancelarse
webhook_reactivestring—Webhook al reactivarse

Devuelve

{ result }

result = respuesta del API al editar el plan. Los campos que no se envían se conservan.

Eliminar plan de suscripción

Sensible

tilopay_recurring_delete_plan

Elimina un plan de cobro recurrente en Tilopay. Afecta los cobros futuros del plan: confirma con el comercio antes de ejecutarla.

Operación del API: POST /api/v1/deletePlanRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del plan

Devuelve

{ result }

result = respuesta del API al eliminar el plan. Los suscriptores del plan dejan de cobrarse.

Enlace de suscripción a un plan

Sólo lectura

tilopay_recurring_subscription_url

Devuelve el enlace con el que un cliente se registra en un plan recurrente (o lo renueva si el correo ya está suscrito). Entregue la URL completa, sin recortarla.

Operación del API: POST /api/v1/recurrentUrl

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del plan
emailstring—Correo del cliente; si ya está suscrito devuelve el enlace de renovación

Devuelve

{ url, result }

url = enlace de suscripción al plan, para compartir con el cliente; result = respuesta del API tal cual.

Editar suscriptor de un plan

Sensible

tilopay_recurring_edit_subscriber

Cambia el estado de un suscriptor (activo, pausado o eliminado) y/o su fecha de expiración. Afecta cobros futuros: confirma con el comercio antes de ejecutarla.

Operación del API: POST /api/v1/editSuscriptorRepeat

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del suscriptor
statusstring (active | paused | deleted)—Nuevo estado del suscriptor
expirestring—Fecha de expiración del plan para ese suscriptor en formato YYYY-MM-DD

Devuelve

{ result }

result = respuesta del API al editar los datos del suscriptor (correo, teléfono, monto o fecha de vencimiento, según el plan).

Crear cupón de descuento

Escritura

tilopay_recurring_create_coupon

Crea un cupón de descuento para un plan de suscripción: porcentaje o monto fijo, fecha de vencimiento, correos permitidos y límites de uso.

Operación del API: POST /api/v1/createCoupon

Parámetros

ParámetroTipoObligatorioDescripción
planIdstringsíID del plan recurrente
discount_typestring (percentage | fixed)síTipo de descuento: percentage (porcentaje) o fixed (monto fijo)
discountnumbersíValor del descuento
expirestringsíFecha de vencimiento del cupón en formato YYYY-MM-DD
allow_existing_usersboolean—true si también lo pueden usar clientes ya registrados (false = solo nuevos)
emailsarray<string>—Correos autorizados; si se omite, cualquier correo puede usarlo
usageinteger—Cantidad total de usos
renewsinteger—Renovaciones válidas con el cupón
renews_by_userinteger—Usos por un mismo cliente

Devuelve

{ result }

result = respuesta del API con el cupón de descuento creado para el plan.

Cupones de un plan

Sólo lectura

tilopay_recurring_list_coupons

Lista los cupones de descuento asociados a un plan de suscripción.

Operación del API: POST /api/v1/getRepeatCoupons

Parámetros

ParámetroTipoObligatorioDescripción
planIdstringsíID del plan recurrente

Devuelve

{ result }

result = cupones del plan tal cual los devuelve el API.

Detalle de un cupón

Sólo lectura

tilopay_recurring_get_coupon

Obtiene el detalle de un cupón de descuento por su ID.

Operación del API: POST /api/v1/getCoupon

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del cupón

Devuelve

{ result }

result = detalle de un cupón tal cual lo devuelve el API.

Eliminar un cupón

Sensible

tilopay_recurring_delete_coupon

Elimina un cupón de descuento de un plan de suscripción.

Operación del API: POST /api/v1/deleteCoupon

Parámetros

ParámetroTipoObligatorioDescripción
idstringsíID del cupón

Devuelve

{ result }

result = respuesta del API al eliminar el cupón.

Iniciar paso a paso de un plan de suscripción

Escritura

tilopay_recurring_plan_wizard_start

Inicia el paso a paso guiado para crear (mode=create) o editar (mode=edit con plan_id) un plan de suscripción. Devuelve la primera pregunta pendiente: entréguela al comercio tal cual y pase su respuesta a tilopay_recurring_plan_wizard_answer. Úselo en vez de tilopay_recurring_create_plan cuando falte algún dato.

Parámetros

ParámetroTipoObligatorioDescripción
modestring (create | edit)sícreate para un plan nuevo, edit para modificar uno existente
plan_idstring—ID del plan (obligatorio en mode=edit)
titlestring—Título, si el comercio ya lo dijo
frequencystring (diario | semanal | quincenal | mensual | bimestral | trimestral | cuatrimestral | semestral | anual)—Frecuencia, si el comercio ya la dijo
amountnumber—Monto por ciclo, si el comercio ya lo dijo
currencystring—Moneda ISO si el comercio la indicó con símbolo o nombre ($ o dólares = USD, ₡ o colones = CRC)
descriptionstring—Descripción, si ya la dijo

Devuelve

{ draft }

draft = borrador del plan en proceso, con lo que ya se respondió y el siguiente paso pendiente. No crea nada en Tilopay hasta confirmar.

Responder un paso del plan de suscripción

Escritura

tilopay_recurring_plan_wizard_answer

Guarda la respuesta del comercio al paso actual del plan de suscripción y devuelve la siguiente pregunta o el resumen para confirmar. Entregue el texto devuelto tal cual, sin agregar preguntas propias.

Parámetros

ParámetroTipoObligatorioDescripción
answerstringsíLo que respondió el comercio, tal cual

Devuelve

{ draft }

draft = el borrador actualizado con la respuesta del paso y el siguiente paso pendiente.

Confirmar el plan de suscripción

Escritura

tilopay_recurring_plan_wizard_confirm

Crea o edita el plan de suscripción con los datos del paso a paso, después de que el comercio dijo sí al resumen. Al crear devuelve además el enlace de suscripción: entréguelo completo, sin recortarlo.

Operación del API: POST /api/v1/createPlanRepeat

Parámetros

Sin parámetros.

Devuelve

{ plan_id, subscription_url }

Crea el plan con lo que se armó paso a paso: plan_id = id del plan creado; subscription_url = enlace de suscripción para compartir.

Cancelar el paso a paso del plan

Escritura

tilopay_recurring_plan_wizard_cancel

Descarta el plan de suscripción que estaba en proceso sin crear ni cambiar nada.

Parámetros

Sin parámetros.

Devuelve

Descarta el borrador del plan en proceso. No crea ni cambia nada en Tilopay; devuelve sólo la confirmación en texto.

Enlaces para poner al día varios cobros fallidos

Escritura

tilopay_recurring_settle_batch

Envío en tanda (máximo 20) de enlaces para poner al día cobros recurrentes fallidos. Primero llámala SIN confirmar: devuelve el resumen (cantidad, total, quiénes no tienen teléfono) y una huella. Muestra ese resumen TAL CUAL y pide un sí explícito. Solo si el comercio responde sí, llámala de nuevo con confirm=true y la MISMA huella. Úsala cuando pida «mandales a todos»; para un solo cliente usa tilopay_recurring_settle_link.

Parámetros

ParámetroTipoObligatorioDescripción
confirmboolean—true solo tras el sí explícito al resumen
fingerprintstring—Huella devuelta por el resumen
subscriber_idsarray<string>—Limitar a estos suscriptores; si se omite, todos los pendientes (máx. 20)

Devuelve

Poner al día un suscriptor

Escritura

tilopay_recurring_mark_settled

Marca al suscriptor como al día en su plan: lo deja activo y corre su fecha de expiración al siguiente ciclo. Úsala cuando el cobro pendiente ya se pagó por otro medio. Si el pago se hizo con el enlace de tilopay_recurring_settle_link, no hace falta: se actualiza solo. Confirma con el comercio antes de ejecutarla.

Operación del API: POST /api/v1/editSuscriptorRepeat

Parámetros

ParámetroTipoObligatorioDescripción
subscriber_idstringsíID del suscriptor
plan_idstring—ID del plan de suscripción
frequencystring (diario | semanal | quincenal | mensual | bimestral | trimestral | cuatrimestral | semestral | anual)—Frecuencia del plan; si se omite se consulta al plan o se asume mensual
expirestring—Nueva fecha de expiración YYYY-MM-DD; si se omite se calcula el siguiente ciclo

Devuelve

{ ok, expire, frequency }

Corre la fecha de vencimiento del suscriptor según la frecuencia del plan, para dejarlo al día después de recuperar un cobro fallido. expire = la nueva fecha de vencimiento.

Última verificación: 2026-10-07 · Responsable: equipo-integraciones

Ver como Markdown crudo