Passer au contenu principal
Seat-based billing lets you charge customers based on the number of users, team members, or licenses they need. It’s the standard pricing model for team collaboration tools, enterprise software, and B2B SaaS products.

Implementation Tutorial

Step-by-step guide with code examples.

Add-ons Documentation

Learn about the add-on system that powers seat-based billing.

Subscription Management

Manage seat-based subscriptions and plan changes.

Webhooks

Track seat changes with subscription webhooks.

What is Seat-Based Billing?

Seat-based billing (also called per-user or per-seat pricing) charges customers based on the number of users who access your product. Instead of a flat fee, the price scales with team size.

Common Use Cases

Benefits of Seat-Based Pricing

For Your Business:
  • Revenue scales naturally as customers grow
  • Predictable pricing customers can budget for
  • Clear upgrade path from individual to team to enterprise
  • Higher lifetime value as teams expand
For Your Customers:
  • Pay only for what they use
  • Easy to understand and forecast costs
  • Flexibility to add/remove users as needed
  • Fair pricing that matches team size

How Seat-Based Billing Works in Dodo Payments

Dodo Payments implements seat-based billing using the Add-ons system. Here’s how it works:

Architecture Overview

A Team Pro subscription costs 99/monthandincludes5seats.Ifyouhavemorethan5users,youpayanadditional99/month and includes 5 seats. If you have more than 5 users, you pay an additional 15/month for each extra seat. For example, if your team needs 15 seats:
  • Base Plan: $99/month (includes 5 seats)
  • Add-ons: 10 extra seats × 15/month=15/month = 150/month
  • Total monthly cost: 99+99 + 150 = $249 for 15 seats

Key Components


Pricing Strategies

Choose the seat-based pricing strategy that fits your business:

Strategy 1: Base + Per-Seat Add-on

Include a set number of seats in the base plan, charge for additional seats. Example:
Best for: Products where small teams can function with the base offering.

Strategy 2: Pure Per-Seat Pricing

Charge a flat rate per seat with no base fee. Example:
Implementation: Set base plan price to $0, use only the seat add-on. Best for: Simple, transparent pricing; usage-based models.

Strategy 3: Tiered Seat Pricing

Different base plans with different per-seat rates. Example:
Implementation: Create separate products for each tier with different add-on prices. Best for: Encouraging upgrades to higher tiers; enterprise sales.

Strategy 4: Seat Bundles

Sell seats in packs rather than individually. Example:
Implementation: Create multiple add-ons for different pack sizes. Best for: Simplifying purchasing decisions; encouraging larger commitments.

Setting Up Seat-Based Billing

Step 1: Plan Your Pricing

Before implementation, define your pricing structure:
1

Define Base Plan

Decide what’s included in the base subscription:
  • Base price (can be $0 for pure per-seat)
  • Number of included seats
  • Features available at this tier
2

Set Seat Pricing

Determine the per-seat add-on cost:
  • Price per additional seat
  • Any volume discounts (via multiple add-ons)
  • Maximum seats allowed (if applicable)
3

Consider Billing Frequency

Align seat pricing with your billing cycle:
  • Monthly subscriptions → monthly seat charges
  • Annual subscriptions → annual seat charges (often discounted)

Step 2: Create the Seat Add-on

In your Dodo Payments dashboard:
  1. Navigate to ProductsAdd-Ons
  2. Click Create Add-On
  3. Configure the add-on:
Create descriptive add-on names that make sense on invoices. “Additional Team Seat” is clearer than “Seat Add-on” for customers reviewing their bills.

Step 3: Create the Base Subscription

Create your subscription product:
  1. Navigate to ProductsCreate Product
  2. Select Subscription
  3. Configure pricing and details
  4. In the Add-Ons section, attach your seat add-on

Step 4: Attach Add-on to Product

Link the seat add-on to your subscription:
  1. Edit your subscription product
  2. Scroll to Add-Ons section
  3. Click Add Add-Ons
  4. Select your seat add-on
  5. Save changes
Your subscription product now supports seat-based pricing. Customers can purchase any quantity of additional seats during checkout.

Managing Seats

Adding Seats to New Subscriptions

When creating a checkout session, specify the seat quantity:

Changing Seat Count on Existing Subscriptions

Use the Change Plan API to adjust seats:

Removing Seats

To reduce seat count, specify the lower quantity:

Removing All Additional Seats

Pass an empty addons array to remove all add-ons:

Proration for Seat Changes

When customers add or remove seats mid-cycle, proration determines how they’re billed.

Proration Modes

prorated_immediately, difference_immediately, et full_immediately réinitialisent tous le cycle de facturation à la date du changement, le prochain renouvellement est ré-ancré au jour où le changement de siège est appliqué. Seul do_not_bill conserve la date de renouvellement d’origine (le nouveau nombre de sièges est facturé intégralement au prochain renouvellement, sans frais au moment du changement).

Exemples de Proration

Scénario : 15 jours restants dans le cycle, ajout de 5 sièges à $10/siege
Le client paie le montant au prorata maintenant, et le cycle de facturation est ré-ancré à la date du changement — le prochain renouvellement ($50/mois pour les sièges ajoutés) est facturé un cycle à partir d’aujourd’hui, pas à partir de la date de renouvellement d’origine.
Scénario : Suppression de 3 sièges à mi-parcours avec proration immédiate
Choisir un mode de proration pour les changements de sièges : Utilisez prorated_immediately pour une facturation juste basée sur les jours lorsque les équipes ajustent fréquemment le nombre de sièges. Utilisez difference_immediately pour des calculs plus simples qui facturent ou créditent le prix total par siège. Si vous devez conserver la date de renouvellement existante inchangée, utilisez do_not_bill — le seul mode qui ne réinitialise pas le cycle de facturation (le nouveau nombre de sièges est facturé au prochain renouvellement). Consultez le Guide de Proration pour des comparaisons détaillées.

Aperçu Avant Changement

Toujours prévisualiser la proration avant de faire des changements :

Suivi des Sièges avec les Webhooks

Surveillez les changements de sièges en écoutant les webhooks d’abonnement :

Événements Pertinents

Exemple de Gestionnaire de Webhook


Imposition des Limites de Sièges

Votre application doit imposer des limites de sièges. Dodo Payments suit la facturation, mais vous contrôlez l’accès.

Stratégies d’Imposition

Empêchez strictement l’ajout d’utilisateurs au-delà du nombre de sièges.

Modèles Avancés

Différents Types de Sièges

Offrez différents types de sièges avec des prix différents :
Mise en œuvre : Créez des add-ons séparés pour chaque type de siège.

Réductions sur Sièges Annuels

Offrez des prix réduits pour les sièges annuels :
Mise en œuvre : Créez des produits séparés pour les plans mensuels et annuels avec des prix d’add-ons différents.

Exigences Minima de Sièges

Exigez un nombre minimum de sièges pour certains plans :

Meilleures Pratiques

Meilleures Pratiques de Tarification

  • Communication Claire : Affichez clairement le prix par siège sur votre page de tarification
  • Sièges Inclus : Envisagez d’inclure quelques sièges dans le prix de base pour réduire les frictions
  • Réductions de Volume : Offrez des tarifs réduits par siège pour les grandes équipes afin de conclure des accords d’entreprise
  • Incentives Annuels : Réduisez les plans annuels pour améliorer le flux de trésorerie et la rétention

Meilleures Pratiques Techniques

  • Mettre en Cache les Comptes de Sièges : Mettez en cache localement les comptes d’abonnement pour éviter les appels API à chaque demande
  • Synchroniser Régulièrement : Synchronisez périodiquement votre nombre de sièges locaux avec Dodo Payments via API
  • Gérer les Échecs : Si un changement de siège échoue, affichez des messages d’erreur clairs et des options de réessai
  • Piste d’Audit : Enregistrez tous les changements de sièges pour les différends de facturation et la conformité

Meilleures Pratiques d’Expérience Utilisateur

  • Retour d’Information en Temps Réel : Affichez l’impact coût immédiat lors de l’ajustement des sièges
  • Étapes de Confirmation : Demandez confirmation avant les changements de facturation
  • Transparence de la Proration : Expliquez clairement les frais proratisés avant de les appliquer
  • Facilité de Réduction : Ne rendez pas difficile la réduction du nombre de sièges (cela renforce la confiance)

Dépannage

Symptôme : Votre application affiche un nombre de sièges différent de celui de l’abonnement.Causes :
  • Webhook non reçu ou traité
  • Problème de synchronisation lors du changement de siège
  • Données mises en cache non mises à jour
Solutions :
  1. Implémentez des gestionnaires de webhook pour subscription.plan_changed
  2. Ajoutez un bouton “Synchroniser avec la facturation” qui récupère l’abonnement actuel
  3. Définissez le cache TTL pour assurer un rafraîchissement régulier
Symptôme : Le client est confus par le montant facturé à mi-parcours.Causes :
  • Mode de proration non communiqué clairement
  • Le client n’a pas vu l’aperçu avant confirmation
Solutions :
  1. Utilisez toujours previewChangePlan avant de faire des changements
  2. Affichez une répartition claire : “Ajout de X sièges = $Y aujourd’hui (proratisé pour Z jours)”
  3. Documentez votre politique de proration dans le centre d’aide
Symptôme : Add-on de siège non disponible lors du paiement.Causes :
  • Add-on non attaché au produit
  • Add-on archivé ou supprimé
  • Incompatibilité de devise entre le produit et l’add-on
Solutions :
  1. Vérifiez que l’add-on est attaché dans les paramètres du produit
  2. Vérifiez le statut de l’add-on dans le tableau de bord des Add-Ons
  3. Assurez-vous que les devises correspondent exactement
Symptôme : Le client veut réduire le nombre de sièges mais a des utilisateurs assignés.Solutions :
  1. Affichez quels utilisateurs doivent être supprimés avant de réduire le nombre de sièges
  2. Implémentez un flux de travail : Supprimer des utilisateurs → Réduire le nombre de sièges
  3. Envisagez une période de grâce avant d’appliquer la réduction de sièges

Documentation Connexe

Seat-Based Pricing Tutorial

Guide de mise en œuvre complet avec code.

Add-ons

Comprenez en profondeur le système d’add-ons.

Plan Changes & Proration

Gérer les modifications d’abonnement.

Subscription Webhooks

Suivre les événements d’abonnement.
Dernière modification le 9 juillet 2026