Back to 0cron
0cron

Integracion Stripe para un SaaS de $1.99/mes

Como integramos la facturacion Stripe en 0cron.dev -- sesiones de checkout, verificacion de webhooks, pruebas gratuitas de 60 dias y la economia de un SaaS de $1.99/mes.

Juste Thales Gnimavo & Claude | March 26, 2026 4 min 0cron
EN/ FR/ ES
0cronstripebillingsaaspaymentswebhookstrial

He aqui un numero que mantiene despiertos a los fundadores de micro-SaaS por la noche: $0.35.

Eso es aproximadamente lo que Stripe cobra por procesar un pago de $1.99. La comision de Stripe es 2.9% + $0.30, que en una transaccion de $1.99 resulta en $0.30 + $0.06 = $0.36. Lo que significa que el 18% de tus ingresos va a procesamiento de pagos antes de pagar servidores, entrega de email, DNS, o tu cafe de la manana.

Sabiamos esto cuando pusimos el precio de 0cron en $1.99/mes. Tambien sabiamos que cada competidor en el espacio de tareas cron cobra $5-$20/mes por aproximadamente el mismo conjunto de funcionalidades. El punto de precio de $1.99 es una posicion de mercado deliberada: accesible para desarrolladores independientes, freelancers y equipos pequenos en mercados emergentes donde $20/mes para una herramienta de utilidad no es justificable.

La economia funciona porque el producto es un solo binario Rust ejecutandose en un solo servidor. Nuestro costo de infraestructura por usuario se mide en fracciones de centavo. Pero hacer que el sistema de facturacion en si funcione -- integracion con Stripe, gestion de pruebas gratuitas, ciclo de vida de suscripcion, manejo de webhooks -- tomo 366 lineas de Rust y dos migraciones de base de datos.

La arquitectura de facturacion

El sistema de facturacion tiene cuatro componentes:

  1. billing.rs (366 lineas) -- Interacciones con la API de Stripe: sesiones de checkout, portal de cliente, manejo de webhooks
  2. billing_checker.rs -- Tarea en segundo plano: recordatorios de prueba gratuita, degradaciones automaticas, verificaciones de estado de suscripcion
  3. Migracion 002 -- Anade columnas de facturacion a la tabla de usuarios
  4. Migracion 005 -- Anade la tabla de deduplicacion billing_reminders

El flujo es sencillo. Un usuario se registra y obtiene una prueba gratuita de 60 dias con acceso completo. Antes de que expire la prueba, recibe tres emails de recordatorio (a 10 dias, 3 dias y 1 dia). Si se suscribe a traves de Stripe Checkout, su plan se actualiza a "pro". Si no, el verificador en segundo plano los degrada a "free" cuando la prueba expira.

Toda la comunicacion con Stripe sucede a traves de webhooks. Nunca consultamos la API de Stripe para verificar el estado de suscripcion. En cambio, Stripe nos envia eventos -- suscripcion creada, actualizada, eliminada, pago fallido -- y actualizamos nuestra base de datos en respuesta.

Verificacion de firma de webhook

La parte mas critica en seguridad del sistema de facturacion es el endpoint de webhook. Verificamos cada solicitud usando el esquema de firma HMAC-SHA256 de Stripe:

rustfn verify_stripe_signature(
    payload: &str,
    signature_header: &str,
    webhook_secret: &str,
) -> Result<()> {
    // Parse t= and v1= from header
    // Verify timestamp is within 5 minutes
    // Compute expected HMAC-SHA256 signature
    // Compare signatures
}

El proceso de verificacion tiene tres pasos: parsear el encabezado, verificar la marca de tiempo (dentro de 5 minutos para prevenir ataques de replay), y verificar el HMAC.

El manejador de webhook: cuatro tipos de eventos

Manejamos exactamente cuatro eventos:

  • checkout.session.completed -- Activa la suscripcion del usuario
  • customer.subscription.updated -- Maneja cambios de estado (activo, prueba, vencido)
  • customer.subscription.deleted -- Degrada a "free", envia email de cancelacion
  • invoice.payment_failed -- Envia email de fallo, degrada despues del 4to intento fallido

La prueba gratuita de 60 dias

La prueba gratuita de 60 dias es nuestra mejor funcionalidad de crecimiento. Mas larga de lo que cualquiera espera, permite a los usuarios construir dependencia real del producto. La tasa de conversion de prueba a pago es mas alta que el promedio de la industria porque para el dia 60, los usuarios tienen 20-50 tareas activas que no quieren perder.

La economia: haciendo funcionar $1.99

A $1.99/mes, despues de las comisiones de Stripe ($0.36), obtenemos neto aproximadamente $1.63 por suscriptor mensual. Nuestro costo de infraestructura es aproximadamente $40/mes para un servidor dedicado. A $1.63 de ingreso neto por usuario por mes, necesitamos 25 usuarios pagando para alcanzar el punto de equilibrio en infraestructura.

El punto de precio de $1.99 funciona porque el costo marginal de cada usuario adicional es casi cero. Un binario Rust manejando tareas cron usa CPU insignificante.


Esta es la Parte 6 de una serie de 10 partes sobre la construccion de 0cron.dev.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

El prompt decía que lo anunciara. El modelo no lo hizo. Así que lo hizo el worker: cerrar un silencio de 15 segundos en Déblo Voice

Déblo Voice se quedaba en silencio unos 15 segundos cada vez que una pregunta difícil activaba una búsqueda profunda. El prompt ya exigía un anuncio, pero el modelo de audio nativo emite la llamada a la función como su primer token. Además, el silencio tenía dos partes, la ejecución de la herramienta y la latencia de la respuesta, así que ningún prompt podía cerrarlo. Llevamos la garantía al worker de LiveKit: un anuncio pregrabado con la voz y el idioma de la sesión, y un suave sonido de tecleo mientras el agente piensa. Probado en producción el 16 de octubre de 2026: 14 y 17,5 segundos de silencio del lado del modelo, unos 0,4 segundos percibidos por el usuario.

13 min Oct 16, 2026
deblodeblo-voicevoice-aigemini-live +17
Thales & Claude zerosuite

El servidor que no dimos de baja: vaciar una máquina de producción en una noche, y cada número que comprobamos

Una noche, seis aplicaciones migradas fila por fila, tres copias de seguridad vacías, una sin destino y un servidor cuyo futuro cambió tres veces.

19 min Oct 2, 2026
caspclaude-codeclaude-opus-5.5infrastructure +10
Thales & Claude zerosuite

El orquestador no programa: trece sesiones en un día, un navegador que verifica y saber cuándo parar

Un día, una plataforma privada de un cliente, trece sesiones headless de Claude encadenadas por un orquestador que nunca escribe código. Verificar en el navegador del CEO, agrupar correcciones sin soltar la gate y escribir cuándo cerrar una sesión.

19 min Sep 30, 2026
caspclaude-codeclaude-opus-5.5multi-session +12