Cashier transforme votre serveur Emby en service payant. Un visiteur s’inscrit, choisit une formule, paie avec Stripe et le compte Emby devient actif dès que le paiement est confirmé ; quand un renouvellement n’est pas payé, le compte est suspendu jusqu’au paiement de la facture. Il fonctionne avec Registration, qui fournit la page d’inscription et crée les comptes.
Ce qu’il fait
- Des formules que vous définissez, mensuelles et annuelles, selon le nombre de flux simultanés (1 à 4 par défaut), chacune avec son propre prix, plus un essai gratuit optionnel pour le premier abonnement. Les formules sont poussées vers votre compte Stripe comme prix ; un prix modifié en crée un nouveau et les abonnés existants conservent le leur jusqu’à un changement de formule.
- Paiements avec votre propre compte Stripe : les clients paient sur la page de paiement hébergée de Stripe (carte, Apple Pay / Google Pay et les moyens proposés par Stripe), donc les données de carte ne touchent jamais votre serveur. Codes de promotion, adresse de facturation et Stripe Tax en option.
- Le paiement remplace l’approbation : un compte créé via Registration reste désactivé jusqu’à la confirmation du paiement par Stripe, puis il est activé avec la limite de flux de la formule. Les visiteurs sont envoyés vers la page des formules juste après l’inscription.
- Le non-paiement suspend, ne supprime jamais : après un paiement échoué, le compte reste actif pendant un délai de grâce (3 jours par défaut) pendant que Stripe réessaie, puis il est désactivé ; le paiement de la facture le réactive. La suppression des comptes suspendus depuis longtemps est optionnelle et désactivée par défaut.
- Garde-fou de limite de flux : la limite de la formule est définie dans la politique utilisateur d’Emby, et la lecture au-delà est arrêtée avec un message (désactivable).
- Page client sur votre adresse Emby : formules, abonnement en cours, prochain paiement et un bouton Manage subscription qui ouvre le portail client Stripe (carte, factures, changement de formule, résiliation). Un compte suspendu, qui ne peut pas se connecter, reçoit un lien de paiement signé valable 7 jours, par e-mail ou de votre part. Sur une TV, la page affiche un QR code pour que le client paie depuis un téléphone et que la TV reparte seule.
- E-mails aux abonnés, chacun avec son propre interrupteur : rappel avant la prochaine facture, reçu, paiement échoué, suspension avec le lien de paiement et accès restauré. Ils partent via le serveur e-mail configuré dans Registration, dans la langue choisie par le client à l’inscription.
- Administration dans le tableau de bord Emby, avec les onglets Subscribers, Payments, Plans, Stripe, Settings et Log : suspendre, réactiver, exempter du paiement, copier ou envoyer par e-mail le lien de paiement, ou demander à un compte existant de payer. Les comptes administrateurs ne sont jamais touchés.
- État fiable : les événements Stripe sont vérifiés par leur signature et appliqués une seule fois ; Cashier lit aussi les événements de Stripe toutes les 15 minutes, donc un webhook manqué ne laisse pas un compte dans un mauvais état.
Prérequis
- Emby Server 4.10.1 ou plus récent (Linux, Windows ou Docker).
- Registration 1.10 ou plus récent, installé et licencié. Cashier utilise sa page d’inscription, ses réglages e-mail et ses comptes ; sans lui, Cashier affiche la raison dans sa page.
- Un compte Stripe (gratuit à ouvrir ; Stripe prélève ses propres frais par paiement) et le serveur joignable en HTTPS, pour la page client et le webhook Stripe.
Questions fréquentes
Puis-je facturer l’accès à mon serveur Emby ? Oui : Registration fournit la page d’inscription et Cashier l’abonnement. Les visiteurs choisissent une formule, paient via votre compte Stripe et leur compte est activé immédiatement ; un renouvellement impayé le suspend. Voir le guide.
Que signifie « appareil » dans une formule ? Un flux simultané : une formule pour 2 appareils permet au compte de lire sur deux écrans en même temps.
Sans licence Cashier valide, que deviennent les abonnés existants ? Cashier s’arrête : plus de nouvelles inscriptions payantes et aucun compte n’est modifié. Rien n’est supprimé ; les événements Stripe sont repris dès que la licence redevient valide.
Ce qu’il envoie et où
- Stripe (
api.stripe.com, avec la clé secrète / restricted key de votre propre compte Stripe) — le seul prestataire de paiement :- Session Stripe Checkout (page hébergée par Stripe ; abonnement) : le prix de la formule, les URL de retour vers votre serveur, l’id utilisateur Emby, l’id serveur et le nom d’utilisateur (métadonnées), l’adresse e-mail du client (depuis Cashier ou la demande d’inscription) ou l’id client Stripe existant, la langue ; optionnel : période d’essai, codes de promotion, adresse de facturation et taxe automatique (désactivée par défaut).
- Création du produit et des prix (nom du service, montant, devise, intervalle, nombre d’appareils), configuration du Stripe Customer Portal (changement de carte/formule, factures, résiliation).
- Le webhook Stripe vers votre serveur — seulement si vous cliquez sur « create webhook automatically » (nécessite une adresse HTTPS publique) ; sinon, le serveur lit les événements Stripe toutes les 15 min (aucun port ouvert nécessaire).
- Résiliation de l’abonnement Stripe lorsque vous supprimez un utilisateur avec un abonnement actif.
- Les données de carte n’atteignent jamais votre serveur : les coordonnées de paiement ne sont saisies que sur les pages de Stripe.
- Webhook entrant (
/Cashier/Stripe/Webhook) : signature Stripe vérifiée, 256 Ko max. - E-mail (via le SMTP du plugin Registration) : au client — échéance de facture (3 jours avant), paiement échoué, paiement réussi, compte suspendu, compte réactivé (tout activé par défaut), contenant le nom du service, le nom d’utilisateur, le montant, la date, le lien de la facture Stripe et un lien de paiement signé (7 jours) ; à l’administrateur — paiements et échecs, via les canaux de Registration (e-mail / Telegram).
- La page de paiement et le QR TV sont servis par le plugin (QR généré sur le serveur, aucune ressource externe). La page d’administration ne contient que des liens vers le Stripe Dashboard.
- Plus le client de licence, identique dans chaque plugin : voir Licences et confidentialité dans nos plugins.
Stocké localement :
data/secrets.json(exclu de la configuration envoyée au navigateur) : clé secrète Stripe, secret du webhook, clé HMAC des liens de paiement.data/subscriptions.json: par abonné — id et nom d’utilisateur, e-mail, ids client/abonnement Stripe, statut, formule, dates de période ; paiements (id de facture, montant, devise, résultat, lien de facture ; 5000 max), journal (2000 max), ids d’événements traités (30 jours).- Configuration : formules/prix, ids Stripe (produit, portail, webhook, compte), adresse publique.
- Rétention : la ligne de l’abonné est supprimée avec l’utilisateur du serveur ; les comptes suspendus ne sont pas supprimés automatiquement (par défaut).
Compatibilité des clients
- La suspension/réactivation de compte et la limite de flux simultanés par formule sont côté serveur : 🟢 tout client.
- Remarque : l’arrêt de la lecture au-delà de la limite avec la commande « Stop » est ignoré par Emby Web 4.10 ; la vraie protection est la limite native de flux simultanés (Plan Guard prend le relais si installé).
- Page client (
/Cashier/Page) : n’importe quel navigateur ; les TV paient depuis un téléphone via QR. ✅ de bout en bout contre un simulateur Stripe (56/56). - ❔ Pas encore testé contre le vrai Stripe dans la suite automatisée (simulateur uniquement) ; applications Emby natives : ❔ non testées.
Légende : ✅ vérifié (test de bout en bout ou sur l’appareil) · 🟢 côté serveur, fonctionne avec n’importe quel client (par conception, sans test par client) · ➖ sans objet · ❔ non testé.
Licence
Une licence par serveur Emby. Mensuelle, annuelle ou à vie, ou incluse dans le pack Emby. Essai gratuit de 30 jours. Le plugin est concédé sous licence selon notre Licence (CLUF).
Code tiers : le générateur de QR codes est basé sur la bibliothèque QR Code generator de Project Nayuki (licence MIT).
Droits sur le contenu
Cashier prélève vos utilisateurs via votre propre compte Stripe. Vous êtes seul responsable de détenir les droits sur le contenu ou le service pour lequel vous facturez (par exemple les films, séries ou chaînes de votre serveur) ; MediaLab Works fournit uniquement le logiciel et n’est pas partie à vos ventes. Stripe peut fermer ou restreindre un compte qui facture du contenu sans les droits — voir la liste restricted businesses de Stripe.