Cashier — paid Jellyfin subscriptions

Sell monthly or yearly subscriptions to your Jellyfin server through Stripe; payment activates the account, non-payment suspends it.

Cashier by medialab turns your Jellyfin server into a paid service. A visitor picks a plan, pays with Stripe and the Jellyfin account becomes active at once; when a renewal is not paid, the account is suspended until the invoice is paid. It works together with Registration by medialab, which provides the sign-up page and the account creation.

What it does

  • Plans you define, monthly and yearly, by the number of devices that may play at the same time (for example 1 to 4 screens), with an optional free trial for the first subscription.
  • Payments with your own Stripe account: card, Apple Pay / Google Pay and the local methods Stripe offers; card data never touches your server. Optional promotion codes, billing address and Stripe Tax.
  • Account active on payment: as soon as Stripe confirms the payment, the account is enabled with the plan's limits.
  • Non-payment suspends: after a failed payment the account stays active for a grace period (3 days by default) while Stripe retries, then it is disabled; paying the invoice enables it again. Deleting long-suspended accounts is optional and off by default.
  • Stream limit guard: playback beyond the plan's number of devices is stopped.
  • E-mails to subscribers: invoice reminder, receipt, failed payment, suspension with the payment link, and reactivation, through the SMTP settings of Registration.
  • Administration: subscribers, payments and a journal in the Jellyfin dashboard; Stripe is reconciled every 15 minutes in case a webhook is missed.

Requirements

  • Jellyfin Server 12.2 or newer.
  • Registration by medialab, installed and licensed (Cashier uses its sign-up page, e-mail settings and account creation).
  • A Stripe account (free to open; Stripe charges its own fee per payment) and the server reachable over HTTPS, so Stripe can call the webhook.

Privacy

Card details are handled only by Stripe. Cashier stores on your server the Stripe customer and subscription identifiers, the plan and the payment dates of each subscriber.

Frequently asked

Can I charge people for access to my Jellyfin server? Yes: Registration provides the sign-up page and Cashier the subscription. Visitors pick a plan, pay through your Stripe account and their account is enabled right away; an unpaid renewal suspends it. See the guide.

Without a valid Cashier licence, what happens to existing subscribers? No new paid sign-ups are accepted until the licence is valid again; nothing is deleted.

Licensing

The plugin is open source (GPL-3.0), like Jellyfin itself. What you buy is the subscription for builds, updates and support for one Jellyfin server: ready-to-install releases through your private plugin repository, every update while the subscription is active, and help when something does not work. The plugin checks the subscription key once a day; without a valid subscription it stops until you renew (nothing is deleted). Monthly, yearly or lifetime (lifetime includes one year of updates), or included in the Jellyfin bundle. 30-day free trial.

Source code. For every release, the complete corresponding source code is downloadable from your account (Account → Licences, Source code) next to the build, under the same rules as the build, and each archive contains the full GPL-3.0 text (LICENSE). If you need the source of a version you can no longer download, ask us and we send it. See section 10 of the EULA.

Requirements

  • Jellyfin Server 12.2 or newer (Linux, Windows or Docker)
  • Registration by medialab, installed and licensed
  • A Stripe account and the server reachable over HTTPS (for the webhook)
  • Open source (GPL-3.0): the source code of each version is in your account

Latest version

0.1.1
released 10/12/2026
See all changes →

Download requires a license or the free 30-day trial.