Cobro Recurrente en SaaS: Qué Planificar
Planes, suscripciones, fallos de pago y estados que un sistema de cobro SaaS confiable debe gestionar.
Erlan Carreira
Ingeniero de Software y Emprendedor
La cobranza recurrente es una máquina de estados que conecta pago, acceso, comunicación y contabilidad. El checkout crea la relación inicial, pero las renovaciones, fallos, cambios de plan, cancelaciones y reembolsos ocurren de forma asíncrona. El producto necesita reaccionar a eventos sin duplicar efectos.
Respuesta directa: qué planificar
Modela producto, precio, suscripción, factura, pago y derecho de acceso como conceptos relacionados, pero distintos. Usa webhooks verificados para sincronizar eventos, procésalos de forma idempotente y mantén un historial suficiente para conciliación y soporte.
| Estado/evento | Decisión del producto |
|---|---|
| Prueba iniciada | ¿Qué recursos y límites se liberan? |
| Suscripción activa | ¿Cómo provisionar derechos y comunicar renovación? |
| Pago requiere acción | ¿Qué mensaje y plazo recibe el cliente? |
| Pago fallido | ¿Hay reintento, tolerancia o bloqueo gradual? |
| Upgrade/downgrade | ¿Cuándo comienzan a valer los límites y el prorrateo? |
| Cancelación | ¿Es inmediato o al final del período? |
| Reembolso | ¿Cómo quedan acceso, crédito y registro financiero? |
Webhooks son la fuente de transiciones asíncronas
La documentación de Stripe recomienda webhooks para seguir suscripciones porque gran parte de la actividad ocurre fuera de la solicitud inicial. Verifica la firma del evento, responde rápidamente y mueve el trabajo pesado a la cola. Almacena el identificador del evento para evitar procesamiento duplicado.
No asumas un orden perfecto. Busca el estado actual en el proveedor cuando sea necesario y haz que cada handler sea seguro para repetición. Registra intento, resultado y motivo de fallo. Una cola de mensajes no procesados necesita alerta y reprocesamiento controlado.
Separa cobranza de autorización
El proveedor conoce facturas y pagos; la aplicación conoce funcionalidades y límites. Crea una capa de derechos que traduzca plan y estado en derechos. Esto evita esparcir verificaciones de precio por el código y facilita planes heredados, promociones y contratos especiales.
Incumplimiento es una decisión comercial
Define período de tolerancia, comunicación, reintentos y comportamiento de datos antes de implementar. El bloqueo inmediato puede interrumpir una operación crítica; el acceso indefinido crea pérdida. El sistema debe reflejar la política contractual y permitir soporte auditado.
Upgrade, downgrade y cancelación
Documenta prorrateo, fecha efectiva e impacto sobre límites. Si el cliente reduce asientos por debajo del uso actual, define cómo regularizar. En la cancelación, informa fecha final, exportación y retención de los datos. No borres automáticamente sin considerar obligación legal y política de privacidad.
Checklist técnico y operativo
- Catálogo versionado de productos y precios.
- Identificadores del proveedor ligados a la organización correcta.
- Webhooks autenticados, idempotentes y observables.
- Cola de fallos y reprocesamiento.
- Derechos separados de pantallas y precios.
- Pruebas de renovación, fallo, acción, cambio y cancelación.
- Política clara de tolerancia y comunicación.
- Conciliación entre suscripción, factura y acceso.
- Logs para soporte sin almacenar datos sensibles indebidos.
- Ambientes y claves separados.
Fuentes primarias
- Stripe: suscripciones
- Stripe: webhooks de suscripciones
- Stripe: seguridad de webhooks
- Stripe: idempotencia
Consulta también cuánto cuesta mantener un SaaS y nuestro enfoque de plataformas SaaS.
Erlan Carreira
Ingeniero de Software y Emprendedor
Especialista en desarrollo de software, automatización y SaaS. Escribo sobre tecnología, negocios digitales, IA y buenas prácticas de ingeniería para equipos que buscan excelencia en la ejecución.