Plans tarifaires

Définir les tiers de votre application et exposer leurs quotas et features.

Créer un plan

Depuis la fiche de votre Application, section Plans, cliquez sur Nouveau plan. Un plan a quatre champs structurés et deux champs JSON libres.

  • Nom & description (humain).
  • Cycle de facturation : MONTHLY, YEARLY, ONE_TIME, CUSTOM.
  • Prix (nombre, devise héritée de votre Organisation si non spécifiée).
  • Public : si vrai, le plan apparaît sur la page de tarification publique.
  • quotas et features : objets JSON libres.

Définir des quotas

Les quotas sont typiquement des nombres (combien de X au maximum). Vos clés sont libres mais doivent rester stables — votre app les lit par leur nom.

{
  "maxVehicles": 30,
  "maxUsers": 4,
  "maxBookingsPerMonth": 1000,
  "storageGb": 10
}

Définir des features

Les features sont typiquement des booléens (true/false) ou des strings (niveau d'une fonctionnalité).

{
  "advancedReports": true,
  "apiAccess": false,
  "supportLevel": "priority",
  "exportFormats": ["csv", "xlsx"]
}

Recommandation

Documentez les clés que votre app reconnaît dans un endroit central (un fichier constants par exemple). SaaSes ne fait aucune validation de schéma sur ces objets.

Overrides par tenant

Un client a négocié 50 véhicules au lieu de 30 ? Vous pouvez surcharger les quotas au niveau de la souscription (TAS) sans modifier le plan. Au moment de la résolution, SaaSes fusionne :

effectiveQuotas = { ...plan.quotas, ...tas.quotaOverrides }

Le résultat est renvoyé dans la réponse de l'API de résolution sous effectiveQuotas.

Modifier un plan

Pas d'effet rétroactif

Modifier les quotas ou le price d'un plan ne change pas les valeurs des tenants déjà abonnés. Ces tenants conservent leurs valeurs au prochain renouvellement / changement de plan. Cela évite les surprises pour vos clients existants.

Supprimer un plan

Vous ne pouvez pas supprimer un plan qui a des souscriptions actives. Vous devez d'abord migrer les tenants vers un autre plan. La suppression est en réalité un soft-delete : le plan passe en isPublic = false et disparaît des listings publics.