Architecture complète Stripe, pricing, plans et feature gating de Talok. Utilise ce skill pour TOUT travail sur : abonnements, plans tarifaires, Stripe Checkout/Connect/Webhooks, feature gating, PLAN_LIMITS, signatures, paiements CB/SEPA, commissions, add-ons, upgrade/downgrade. Declenche des que la tache touche pricing, subscription, stripe, plan, gating. NE JAMAIS modifier lib/subscriptions/plans.ts.
Talok utilise Stripe pour 3 flux principaux :
| Flux | Produit Stripe | Usage |
|---|---|---|
| Abonnements SaaS | Checkout + Billing | Souscription/changement de plan |
| Paiement des loyers | Connect Express + PaymentIntents | CB/SEPA du locataire vers propriétaire |
| Signatures électroniques | Checkout (one-time) | Achat de signatures hors quota |
| Fichier | Rôle | Modifiable ? |
|---|---|---|
lib/subscriptions/plans.ts | Définition des 9 plans (slugs, features, limits) |
| NON — NE JAMAIS MODIFIER |
lib/subscriptions/pricing-config.ts | Prix en centimes, frais, quotas, commissions | Oui (avec prudence) |
lib/subscriptions/plan-limits.ts | Interface PlanLimits + matrice pré-calculée | Oui |
lib/hooks/use-plan-access.ts | Hook React usePlanAccess() pour le gating UI | Oui |
components/subscription/subscription-provider.tsx | Context React useSubscription() | Oui |
Voir skill talok-addons pour l'architecture complète :
table subscription_addons, flux Checkout, webhooks, checkLimit() unifié, composants UpsellModal.
| Gratuit | Starter | Confort | Pro | |
|---|---|---|---|---|
| Prix HT | 0 | 9/mois - 86/an | 35/mois - 349/an | 69/mois - 687/an |
| Prix TTC (metropole 20%) | 0 | 10,80 | 42 | 82,80 |
| Prix TTC (Martinique/Guadeloupe 8,5%) | 0 | 9,77 | 37,98 | 74,87 |
| Biens | 1 | 3 | 10 | 50 |
| +bien supplementaire | -- | +3 | +2,50 | +2 |
| Utilisateurs | 1 | 1 | 2 | 5 |
| Signatures/mois | 0 | 0 | 2 | 10 |
| Quittances PDF | oui | oui auto | oui auto | oui auto |
| Suivi des loyers | oui | oui | oui | oui |
| Paiement en ligne (CB/SEPA) | -- | oui | oui | oui |
| Portail locataire | Basique | oui | oui | oui |
| Open Banking | -- | -- | oui | oui |
| Scoring locataire IA | -- | -- | oui | oui |
| EDL numerique | -- | -- | oui | oui |
| Assurance GLI | -- | -5% | -10% | -15% |
| Relances SMS auto | -- | -- | -- | oui |
| API lecture + ecriture | -- | -- | -- | oui |
| Gestion prestataires | -- | -- | -- | oui |
| Support | Email 24h | Chat prioritaire |
Annuel = -20% (affichage badge "-20%" sur le toggle). 1er mois offert sur tous les plans payants, 30 jours d'essai gratuit. Enterprise : a partir de 249/mois pour agences (contactez-nous).
Regles d'affichage des prix :
/tarifs sont TTC (HT + TVA territoire)| Type | Standard | Enterprise | Cout Stripe | Marge |
|---|---|---|---|---|
| CB | 2,2% | 1,9% | 1,5% + 0,25 | ~31% / ~21% |
| SEPA | 0,50 | 0,40 | 0,35 | 30% / 12,5% |
| Virement | Gratuit | Gratuit | -- | -- |
| Plan | Incluses/mois | Prix hors quota | Cout reel |
|---|---|---|---|
| Gratuit | 0 | 5,90 | ~1,50 |
| Starter | 0 | 4,90 | ~1,50 |
| Confort | 2 | 3,90 | ~1,50 |
| Pro | 10 | 2,50 | ~1,50 |
| Enterprise S/M/L | 25/40/60 | 1,90 | ~1,50 |
| Enterprise XL | Illimite | Inclus | -- |
Definie dans lib/subscriptions/plan-limits.ts :
interface PlanLimits {
// Quantitatifs (-1 = illimite)
maxProperties: number;
maxLeases: number;
maxTenants: number;
maxUsers: number;
maxStorageMB: number;
maxSignaturesPerMonth: number;
// Booleens
hasRentCollection: boolean; // Paiement en ligne CB/SEPA
hasAccounting: boolean; // Comptabilite / rapprochement
hasFECExport: boolean; // Export FEC comptable
hasFiscalAI: boolean; // Aide fiscale / scoring avance
hasAITalo: boolean; // Agent IA TALO
hasMultiEntity: boolean; // Multi-mandants / SCI
hasAPI: boolean; // Acces API
hasOpenBanking: boolean; // Open Banking
hasAutoReminders: boolean; // Relances automatiques email
hasAutoRemindersSMS: boolean; // Relances SMS
hasIRLRevision: boolean; // Revision IRL automatique
hasEdlDigital: boolean; // EDL numerique
hasScoringTenant: boolean; // Scoring locataire IA
hasWorkOrders: boolean; // Ordres de travaux
hasProvidersManagement: boolean; // Gestion prestataires
hasMultiUsers: boolean; // Multi-utilisateurs
hasCoproModule: boolean; // Module copropriete
hasWhiteLabel: boolean; // Marque blanche
hasSSO: boolean; // SSO
hasPrioritySupport: boolean; // Support prioritaire
}
| Feature | Gratuit | Starter | Confort | Pro | Ent. S | Ent. M | Ent. L | Ent. XL |
|---|---|---|---|---|---|---|---|---|
| maxProperties | 1 | 3 | 10 | 50 | 100 | 200 | 500 | -1 |
| maxLeases | 1 | 5 | 25 | -1 | -1 | -1 | -1 | -1 |
| maxTenants | 2 | 10 | 40 | -1 | -1 | -1 | -1 | -1 |
| maxUsers | 1 | 1 | 2 | 5 | -1 | -1 | -1 | -1 |
| maxStorageMB | 102 | 1024 | 5120 | 30720 | 51200 | 102400 | 204800 | -1 |
| maxSignatures/mois | 0 | 0 | 2 | 10 | 25 | 40 | 60 | -1 |
| hasRentCollection | -- | oui | oui | oui | oui | oui | oui | oui |
| hasAccounting | -- | -- | oui | oui | oui | oui | oui | oui |
| hasFECExport | -- | -- | oui | oui | oui | oui | oui | oui |
| hasFiscalAI | -- | -- | -- | oui | oui | oui | oui | oui |
| hasAITalo | -- | -- | -- | oui | oui | oui | oui | oui |
| hasMultiEntity | -- | -- | -- | -- | oui | oui | oui | oui |
| hasAPI | -- | -- | -- | oui | oui | oui | oui | oui |
import { usePlanAccess } from '@/lib/hooks/use-plan-access';
const { limits, hasFeature, canAddProperty, upgradeCTA } = usePlanAccess();
// Verif booleenne
if (!hasFeature('hasAccounting')) return <UpgradeGate feature="hasAccounting" />;
// Verif quantitative
if (!canAddProperty(currentCount)) return <UpgradeGate feature="maxProperties" />;
Ajout du plan Starter dans la matrice PLAN_LIMITS (centimes pour les prix,
cohérent avec lib/subscriptions/pricing-config.ts) :
| hasOpenBanking | -- | -- | oui | oui | oui | oui | oui | oui |
| hasAutoReminders | -- | oui | oui | oui | oui | oui | oui |
| hasAutoRemindersSMS | -- | -- | -- | oui | oui | oui | oui | oui |
| hasIRLRevision | -- | -- | oui | oui | oui | oui | oui | oui |
| hasEdlDigital | -- | -- | oui | oui | oui | oui | oui | oui |
| hasScoringTenant | -- | -- | oui | oui | oui | oui | oui | oui |
| hasWorkOrders | -- | -- | oui | oui | oui | oui | oui | oui |
| hasProvidersManagement | -- | -- | -- | oui | oui | oui | oui | oui |
| hasMultiUsers | -- | -- | oui | oui | oui | oui | oui | oui |
| hasCoproModule | -- | -- | -- | -- | -- | -- | -- | oui |
| hasWhiteLabel | -- | -- | -- | -- | -- | oui | oui | oui |
| hasSSO | -- | -- | -- | -- | -- | -- | -- | oui |
| hasPrioritySupport | -- | -- | -- | -- | oui | oui | oui | oui |