For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /fr/docs/web/billing.md (or send Accept: text/markdown).
Paiements et abonnements
Checkout Stripe, gestion des plans et frontière des entitlements.
Choisissez et testez votre service de paiement
La facturation gère les paiements. Les autorisations d'accès sont stockées séparément en tant que droits. Terminez la configuration du compte persistant, puis ouvrez /billing dans l'application Web en cours d'exécution pour voir l'interface du plan. Avec BILLING_PROVIDER=local, vous explorez le comportement local plutôt que de collecter de l'argent réel.
Choisissez un fournisseur de paiement pris en charge, suivez son guide de configuration, créez votre propre produit de test et votre prix, puis copiez les paramètres du serveur nommés dans apps/web/.env.local.. Enregistrez et redémarrez le serveur Web. Effectuez une extraction à l’aide des instructions sandbox de ce fournisseur, puis inspectez l’état d’accès à l’espace de travail après l’arrivée du webhook du fournisseur. Un webhook est le message signé du fournisseur adressé à votre serveur concernant un événement de paiement.
Une page de réussite ne débloque pas à elle seule des fonctionnalités. Si le paiement est terminé mais que l'accès reste inactif, vérifiez la livraison du webhook du fournisseur et le traitement des événements de votre serveur avant de répéter le paiement. Annulation du test et accès expiré également. Les achats par téléphone utilisent la configuration RevenueCat/magasin distincte, et non cette commande Web.
Facturation web
L'application Web prend en charge le fournisseur de facturation que vous sélectionnez avec BILLING_PROVIDER ; Stripe est une option. Ouvrir /facturation pour les forfaits Web et la gestion des abonnements. Suivez le guide du fournisseur sélectionné pour définir ses informations d'identification de serveur uniquement, ses identifiants de produit ou de prix et ses paramètres de vérification du webhook dans le test correspondant ou dans l'environnement en direct.
Autoriser avec les droits d’accès
Une redirection vers le paiement ne prouve pas que l’accès est actif. Le droit d’accès détenu par le serveur décide si un espace de travail peut utiliser une fonctionnalité payante. Vérifiez ce droit à la frontière de l’action, même si l’interface masque déjà cette action.
Vérifier le cycle de vie
Utilisez des événements de test pour vérifier l’activation, les mises à jour, l’annulation et le traitement des webhooks. Gérez les événements répétés sans effet indésirable et assurez-vous qu’un droit inactif bloque les opérations payantes. Les achats mobiles natifs restent une frontière d’intégration RevenueCat distincte.
Configuration et paramètres
Le catalogue de plans vit dans src/product-plans.ts et pilote la surface /billing ainsi que l'étape d'onboarding /choose-plan. La facturation se configure côté serveur avec BILLING_PROVIDER=stripe, STRIPE_SECRET_KEY, les price ids de chaque plan et intervalle, et STRIPE_WEBHOOK_SECRET. Lemon Squeezy est disponible comme adaptateur alternatif.
Les forfaits par siège utilisent les sélecteurs de sièges modifiables (src/seat-count.ts) ; la quantité accompagne la session de paiement afin que les sièges facturés correspondent à l’espace de travail. Les forfaits peuvent aussi déclarer meteredUsage dans src/product-plans.ts pour que la tâche horaire billing.usage-report transmette les deltas de usage_counter aux compteurs de facturation Stripe, tandis que les propriétaires définissent des budgets IA mensuels et des plafonds stricts par compteur dans Paramètres → Utilisation (USAGE_METERS dans src/usage-meters.ts).
Checkout: POST /api/billing/checkout
Portal: POST /api/billing/portal
Webhook: POST /api/billing/webhook (signature-verified)Processus d’implémentation
Une redirection de checkout n'est qu'une intention en attente — l'accès change quand le webhook signé arrive et que l'entitlement côté serveur se met à jour. Gatez les actions payantes avec la vérification d'entitlement à la frontière serveur (entitlement-gate.tsx / entitlement-check.ts) même quand l'interface les masque déjà.
Le portail client gère les changements de plan, l'annulation et les moyens de paiement. Gardez l'état d'abonnement lisible par les membres du workspace et les achats mobiles natifs derrière la frontière RevenueCat séparée.