Si mantienes un servidor Jellyfin para un club, una comunidad o un grupo de amigos, en algún momento alguien plantea la pregunta obvia: ¿cómo cubrimos la factura del alojamiento? Cashier es nuestra respuesta para quienes autohospedan. Convierte tu servidor Jellyfin en un servicio de pago: un visitante elige un plan, paga a través de tu propia cuenta de Stripe y la cuenta de Jellyfin se activa al instante. Cuando no se paga una renovación, la cuenta se suspende hasta que se abone la factura, y nunca se elimina automáticamente.
Ese último punto importa. Cashier no es un sistema que borra usuarios para hacer cumplir licencias; es una caja registradora. Trabaja junto con Registration, que aporta la página de registro y la creación de cuentas, mientras Cashier gestiona los planes, Stripe y el estado de la suscripción. Puedes leer la descripción completa del producto en la página de Cashier y seguir la guía de usuario.
Antes de empezar
Hay algunas cosas que conviene resolver antes de tocar ningún ajuste.
Derechos sobre el contenido. Cashier cobra a tus usuarios a través de tu propia cuenta de Stripe. Solo tú eres responsable de tener los derechos sobre el contenido o el servicio por el que cobras, por ejemplo las películas, las series o los canales de tu servidor. MediaLab Works únicamente proporciona el software y no es parte en tus ventas, y Stripe puede cerrar o restringir una cuenta que cobra por contenido sin los derechos (consulta la lista de negocios restringidos de Stripe). Así que cobra solo por contenido que poseas o tengas licencia para usar, y mantén tu servidor privado para tus miembros de pago.
Tu propia cuenta de Stripe. Los pagos van a tu cuenta de Stripe; los datos de la tarjeta nunca pasan por tu servidor. Stripe cobra su propia comisión por pago. También conviene pensar en los impuestos: Cashier admite una dirección de facturación opcional y Stripe Tax, ambas desactivadas por defecto, así que decide si las necesitas antes de activar las ventas.
Requisitos previos:
- Jellyfin Server 12.2 o superior (Linux, Windows o Docker).
- Registration de MediaLab, instalado y con licencia: Cashier usa su página de registro, su configuración de correo y la creación de cuentas.
- Una cuenta de Stripe y tu servidor accesible por HTTPS, para que Stripe pueda llamar al webhook.
- Una licencia de Cashier válida. Si aún no tienes clave, puedes iniciar la prueba gratuita de 30 días desde la página License del plugin.
Instala Cashier desde tu repositorio privado de plugins (recomendado), desde el catálogo público o manualmente desde el zip en Account → Licenses. Después abre la página del plugin en Dashboard → Plugins → Cashier by MediaLab, haz clic en Open License page y activa tu clave.
Paso a paso
1. Configura primero Registration
Instala Registration, actívalo con su licencia y configura su dirección pública y su SMTP. Cashier envía todos los correos a los suscriptores —factura pendiente, pago fallido, pago correcto, suspensión, reactivación— a través de la configuración SMTP de Registration, así que si el correo no funciona aquí, tampoco funcionará después.
2. Pega tu clave de Stripe
Abre Dashboard → Cashier y ve a Keys. Pega tu clave secreta de Stripe (sk_…) o, mejor, una clave restringida rk_…, haz clic en Save and test y luego en Create the webhook automatically. La clave se guarda en data/secrets.json, que queda fuera de la configuración que se envía al navegador.
Si tu servidor no tiene una dirección pública HTTPS, puedes omitir el webhook automático: en ese caso Cashier consulta los eventos de Stripe cada 15 minutos, sin necesidad de abrir ningún puerto.
3. Define el nombre del servicio y la dirección pública
Introduce el nombre del servicio que verán los clientes y la dirección pública del servidor (por ejemplo https://jellyfin.example.com). La dirección se usa para el retorno desde Stripe y para el webhook, así que debe ser correcta.
4. Define tus planes
Revisa los planes: período (mensual o anual), número de reproducciones simultáneas y precio. Los planes se definen por el número de dispositivos que pueden reproducir al mismo tiempo, por ejemplo de 1 a 4 pantallas. Haz clic en Save and send to Stripe: los precios se crean en tu cuenta de Stripe. Ten en cuenta que un cambio de precio crea un nuevo precio en Stripe, mientras que los suscriptores existentes conservan el suyo hasta que cambian de plan.
5. Prueba y período de gracia
Configura los días de prueba (una prueba gratuita opcional para la primera suscripción) y el período de gracia. El período de gracia es el tiempo que una cuenta sigue activa tras un pago fallido mientras Stripe lo reintenta: 3 días por defecto.
6. Activa las ventas
Cuando todo lo anterior esté en su sitio, activa las ventas. Los nuevos clientes eligen un plan en la página de registro y pagan; su cuenta se habilita cuando Stripe confirma el pago. Si más adelante desactivas las ventas, todas las cuentas se mantienen tal como están.
Cómo se comportan el pago y el impago
Este es el corazón del plugin, así que merece la pena entenderlo antes de abrir las puertas.
- El pago activa. En cuanto Stripe confirma el pago, la cuenta se habilita con los límites del plan. No hay un paso de aprobación manual: el pago lo sustituye.
- El impago suspende. Tras un pago fallido, la cuenta sigue activa durante el período de gracia mientras Stripe lo reintenta; después se deshabilita. Pagar la factura la vuelve a habilitar.
- Nada se elimina por defecto. Eliminar cuentas suspendidas durante mucho tiempo es opcional y está desactivado por defecto. La fila del suscriptor se elimina junto con el usuario del servidor, y solo entonces.
- El límite de reproducciones se aplica. La reproducción por encima del número de dispositivos del plan se detiene de forma nativa (MaxActiveSessions) al iniciar sesión o al empezar la reproducción, así que funciona con cualquier cliente.
- Stripe se reconcilia cada 15 minutos, por si se pierde algún webhook.
Los suscriptores tienen una página de cliente en /Cashier/Page desde cualquier navegador, y las televisiones pueden pagar desde un teléfono mediante un código QR generado en el servidor, sin recursos externos. El Stripe Customer Portal se configura por ti, así que los clientes pueden cambiar de tarjeta o de plan, ver facturas y cancelar.
Para la administración del día a día, las listas Subscribers y Payments muestran quién paga qué, y el journal muestra cada cambio de estado. La página de administración solo enlaza al Stripe Dashboard; no lo incrusta.
Consejos y solución de problemas
Los pagos no activan las cuentas. Casi siempre es que el webhook no puede llegar al servidor. Comprueba que la dirección pública sea accesible por HTTPS desde internet. Aunque el webhook esté caído, Cashier se reconcilia con Stripe cada 15 minutos, así que un evento perdido se recupera; aun así, corrige la dirección.
No llegan correos a los clientes. Revisa la configuración SMTP en Registration; Cashier no tiene una propia.
Prueba antes de cobrar a nadie. Usa primero Stripe en modo de prueba, realiza un registro a través de la página de cliente y observa cómo la cuenta pasa de pendiente a activa en la lista Subscribers.
Vigila la licencia. Sin una licencia de Cashier válida, no se aceptan nuevos registros de pago hasta que la licencia vuelva a ser válida; no se elimina nada y los suscriptores existentes no se ven afectados en sus datos. El plugin comprueba la clave de suscripción una vez al día; sin internet sigue funcionando durante 7 días después de la última comprobación correcta.
Mantén la licencia al día. Una licencia de por vida recibe las versiones publicadas durante su ventana de actualizaciones. Si las actualizaciones automáticas de Jellyfin instalan una versión más reciente sin licencia, el plugin se detiene con «version not licensed» hasta que uses Roll back to x.y.z en su página License. Para evitarlo, apunta Jellyfin a tu repositorio privado de plugins, que solo ofrece las versiones que permite tu licencia.
Cambios de plan. Como un cambio de precio crea un nuevo precio en Stripe, los suscriptores existentes conservan su precio anterior hasta que cambian de plan. Anuncia los cambios de precio a tus miembros en lugar de dar por hecho que se moverán automáticamente.
Conclusión
Cashier mantiene sencilla la parte contable de un servidor comunitario: planes según las reproducciones simultáneas, facturación mensual o anual, una prueba gratuita si la quieres y una regla clara: el pago activa, el impago suspende, nada se elimina. Como el dinero llega a tu propia cuenta de Stripe y los datos de la tarjeta nunca pasan por tu servidor, sigues controlando tanto el contenido como los pagos.
Empieza en la página del producto Cashier, recorre la guía y ten a mano el changelog para las nuevas versiones. Si algo no se comporta como se describe, la base de conocimiento y las preguntas frecuentes son el siguiente paso, y siempre puedes contactarnos.