Principes de facturation
Comprendre comment la facturation est modélisée dans Starter Free et où brancher Stripe sans réécriture.
Vue d’ensembleLien vers la section
La facturation est l’un des flux de travail SaaS les plus importants, mais aussi l’un des plus faciles à câbler de manière incorrecte.
Starter Free vous donne le surface UX de facturation complète tout en gardant la mise en œuvre intentionnellement simulée.
Vous obtenez la structure orientée produit:
- plan actuel
- date de renouvellement
- sièges
- mode de paiement
- Historique des factures
- point d'entrée du portail de facturation
Mais vous n'avez pas encore le moteur de facturation.
Idée de base
Starter Free modélise l'expérience de facturation. Starter Pro câble la couche métier de facturation.
Philosophie de facturationLien vers la section
Starter Gratuit expédie le surface de facturationPas le moteur de facturation.
| Inclus | Non inclus |
|---|---|
| Affichage des plans | Stripe Checkout |
| Informations sur le renouvellement | Webhooks à rayures |
| Sièges concept | synchronisation du cycle de vie de l'abonnement |
| Historique des factures UI | Les vraies factures Stripe |
| Point d'entrée du portail de facturation | Création de session de portail client |
| Mode de paiement Surface | Contrats de facturation backend |
Cette séparation vous permet de valider l'UX de monétisation avant de vous engager dans une architecture Stripe complète.
Pourquoi cela compte
La facturation n’est pas qu’une page. C’est un workflow de revenus. L'interface utilisateur peut être simulée tôt, mais la mise en œuvre de la production doit être câblée avec soin.
Ce que vous comprendrezLien vers la section
Surface de facturation
Modèle de facture
Limite de Stripe
Modèle mentalLien vers la section
L'interface de facturation est stable. La mise en œuvre de la facturation évolue derrière elle.
| Couche | Responsabilité |
|---|---|
| UI | Plan, factures, mode de paiement, sièges, actions du portail |
| Backend | Crée des sessions de paiement et de portail |
| Stripe | Paiements, abonnements, factures, état des clients |
| Webhooks | Source de vérité pour les changements de cycle de vie |
| Base de données | Stocke l'état de facturation synchronisée pour l'application |
Règle de production
Ne traitez jamais la page de facturation comme la source de la vérité. Les événements Stripe et votre état de backend doivent générer la facturation de production.
ÉtapesLien vers la section
Comprendre l'route de facturationLien vers la section
La surface de facturation vit ici:
app/(app)/billing/page.tsxIl simule :
- plan actuel
- sièges
- date de renouvellement
- statut de l'abonnement
- mode de paiement
- Historique des factures
- action du portail de facturation
Cet route est conçu pour ressembler à une véritable zone de facturation SaaS avant que le intégration backend n'existe.
Revoir le modèle d'abonnement simuléLien vers la section
Starter Free utilise un objet d'abonnement simulé.
const plan = {
name: "Pro",
priceLabel: "€29 / month",
seats: 10,
renewalIso: "2026-03-01",
status: "active",
};Plus tard, cela devrait être remplacé par votre état d'abonnement backend.
const plan = await getCurrentSubscription(user.id);L'interface utilisateur ne devrait pas avoir besoin d'une réécriture lorsque la source change.
Remplacer les factures par des données sauvegardées par StripeLien vers la section
L'historique des factures commence comme des données fictives.
const MOCK_INVOICES = [
{
number: "INV-0001",
amountCents: 2900,
status: "paid",
},
];Plus tard, les factures doivent provenir de Stripe ou d'un tableau de factures synchronisées dans votre base de données.
export async function listInvoices(customerId: string) {
return stripe.invoices.list({
customer: customerId,
limit: 10,
});
}Transférer le portail de facturation plus tardLien vers la section
Le frontend doit appeler votre backend, pas Stripe directement.
POST /api/billing/portalVotre backend crée la session du portail :
const session = await stripe.billingPortal.sessions.create({
customer: stripeCustomerId,
return_url: "https://yourapp.com/billing",
});Ensuite, le frontend redirige :
window.location.href = session.url;Frontière de sécurité
Les clés Stripe doivent rester sur le serveur. Le navigateur ne devrait recevoir qu'une URL de session créée par votre backend.
Cycle de vie des StripeLien vers la section
Un système de facturation de production suit habituellement ce flux :
User selects a plan
↓
Stripe Checkout opens
↓
Payment or subscription is created
↓
Stripe sends webhook event
↓
Backend verifies event
↓
Database subscription state updates
↓
App reads updated billing stateCheckout commence à générer des revenus
Checkout creates the initial payment or subscription flow between your product and Stripe.
Guide de décisionLien vers la section
Starter Free est suffisant lorsque :
- vous validez les prix UX
- vous avez besoin d'une page de facturation crédible dans une démo
- vous souhaitez afficher les surfaces de plan, de facture et de paiement
- vous n'acceptez pas encore de paiements réels
Starter Pro devient le chemin le plus rapide lorsque :
- Des paiements réels sont nécessaires
- Stripe Checkout doit fonctionner
- webhooks doit mettre à jour votre application
- les factures doivent refléter l'historique réel des clients
- l'état de l'abonnement contrôle l'accès au produit
- Auth et la facturation doivent travailler ensemble
Prêt à transformer la facturation en chiffre d’affaires ?
Starter Free valide l'UX. Starter Pro vous permet clients pour de vrai.
Préférez
- garder l'interface de facturation distincte de l'implémentation de Stripe
- créer des sessions Checkout et Portal sur le serveur
- Utiliser les webhooks comme source de vérité du cycle de vie
- stocker l'état de facturation synchronisée dans votre base de données d'applications
- rendre la copie de facturation claire, spécifique et digne de confiance
Éviter
- Appeler les API secrètes de Stripe depuis le navigateur
- Traiter l'état de l'interface utilisateur comme une vérité de facturation
- sauter la vérification de webhook
- Déverrouiller les fonctionnalités payantes avant la confirmation du backend
- Cacher les échecs de paiement derrière des messages d'erreur vagues
copywriting UXLien vers la section
Les pages de facturation sont des surfaces de confiance. La copie devrait réduire le doute et expliciter les actions liées à l'argent.
Utilisez des étiquettes claires :
- “Gérer la facturation”
- “Voir les factures”
- “Mise à jour du mode de paiement”
- « Changer de plan »
- « Annuler l’abonnement »
Évitez les étiquettes vagues :
- “Continuer”
- “Soumettre”
- “Ouvert”
- “Confirmer”
Principe de conversion
La copie de facturation devrait rendre la prochaine action évidente. Les utilisateurs ne devraient jamais se demander s’ils commencent à passer à la caisse, ouvrent un portail, modifient un plan ou annulent l’accès.
Questions courantesLien vers la section
Prochaines étapesLien vers la section
Mise à niveau lorsque la facturation devient réelle
Starter Free vous donne la surface de facturation. Starter Pro vous offre la couche métier prête pour la production : auth, Stripe, structure backend et livraison sécurisée.
Mettre à niveau vers Starter Pro