Cashier for Emby — setup guide

Installation

You need Emby Server 4.10.1 or newer and Registration 1.10 or newer, installed and licensed.

  1. Sign in to your MediaLab Works account, open Licenses and download the plugin DLL (available on an active subscription, a lifetime license within its update window, or during the free 30-day trial).
  2. Copy the DLL into the Emby plugins folder and restart Emby Server:
    • Linux (package): /var/lib/emby/plugins/
    • Docker: the plugins folder inside your Emby config volume
    • Windows: %AppData%\Emby-Server\programdata\plugins\
  3. Open Cashier in the Emby dashboard menu and click Open License page. Paste your license key and activate it, or enter your e-mail to start the free 30-day trial or buy a license. The plugin contacts the license server, binds the key to this Emby server and shows the license as Active.

The license is checked once a day (and at every Emby start). Without internet the plugin keeps working for 7 days after the last successful check; after that it is stopped until it can check again.

License

Without a valid license Cashier is stopped: the customer page says subscriptions are not available, no new paid sign-ups are accepted and no account is changed; only the License page keeps working (there you can start the trial, buy, enter the key or update). Subscribers, plans and settings are kept. Nothing is deleted: everything resumes as soon as the license is valid again, and the Stripe events from the meantime are read then.

With a valid license, the same page can install an update or roll back to the previous version if an update causes trouble. Restart Emby after either.

Configuration

First set up Registration: its public address and, for the e-mails to customers, its e-mail server. Then open Cashier in the Emby dashboard. The page has six tabs: Subscribers, Payments, Plans, Stripe, Settings and Log; the top of the page shows whether Stripe and Registration are connected.

  1. Stripe: in Stripe (Developers → API keys) create a restricted key with write access to Products, Prices, Checkout Sessions, Customer portal, Customers, Subscriptions and Webhook Endpoints, and read access to Events and Invoices (the standard secret key works too). Paste it and click Save and test. Test first with a test key (sk_test_… / rk_test_…) and the card 4242 4242 4242 4242.
  2. Settings: the service name shown to customers and in Stripe, and the public server address (for example https://emby.example.com), used for the return from Stripe, the payment links and the webhook. Then, in Stripe, click Create the webhook automatically. Without a public address Cashier still works by reading the events from Stripe every few minutes.
  3. Plans: review each plan (monthly or yearly, number of simultaneous streams, price), the currency, the free trial days, the grace days after a failed payment and the optional promotion codes, billing address and Stripe Tax. Click Save and push to Stripe: the product and prices are created in your Stripe account. A changed price creates a new Stripe price; existing subscribers keep theirs until they change plan, and a disabled plan is no longer offered.
  4. Settings: choose the e-mails to customers (reminder before the next invoice and how many days before, failed payment, receipt, suspension, access restored), your own notifications (every payment, failed payments) and whether playback above the plan limit is stopped. Then turn on Selling is on.

The customer page is at /emby/Cashier/Page on your Emby address; new accounts from Registration are sent there automatically.

Daily use

  • New customers sign up in Registration, choose a plan and pay; their account is enabled when Stripe confirms the payment. Customers change their card, plan or cancel through Manage subscription on the customer page.
  • Subscribers lists each account with its access, plan and renewal date. From its row you can copy or e-mail the payment link (valid for 7 days), exempt the account from paying, suspend or reactivate it, remove it from Cashier or open it in Stripe. Require payment from an existing account adds an account you created before; it stays suspended until it pays.
  • Payments shows the latest invoices and their outcome; Log shows every change of state.
  • Switching selling off keeps every account as it is. Cashier only touches the accounts in its list, never administrators.

Troubleshooting

  • Registration: missing, too old or stopped: install or update Registration to 1.10 or newer and check its license, then restart Emby.
  • Payments do not activate accounts quickly: the webhook cannot reach the server. Check that the public address is reachable over HTTPS from the internet; Cashier still reconciles with Stripe every 15 minutes (Check Stripe now in Subscribers does it at once).
  • No e-mails to customers: check the e-mail server settings in Registration.
  • Selling is off or not configured: the key is missing, the plans were not pushed to Stripe or the switch in Settings is off.

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