Skip to content
Accueil / Intégrations / Supabase + Stripe
Supabase
+
Stripe

Intégrer Supabase + Stripe

Supabase et Stripe forment une combinaison puissante dans l'écosystème no-code. App Studio a configuré cette intégration pour des dizaines de clients, voici notre guide complet pour la mettre en place rapidement et correctement.

Pourquoi Supabase + Stripe ?

Chaque SaaS a besoin d'un système de facturation, et Stripe est le standard professionnel. Les fonctions edge de Supabase (runtime Deno) sont l'endroit idéal pour héberger le gestionnaire de webhook Stripe et le créateur de session de paiement : elles tournent près de votre base de données, ont accès à votre clé service role, et se déploient en quelques secondes. Le résultat est un système de facturation où Stripe fait autorité pour les paiements et Supabase fait autorité pour les données de votre application, les deux étant synchronisés via des webhooks.

Configurer l'intégration

Créez une table customers dans Supabase qui stocke le stripe_customer_id lié à auth.users. Créez une table subscriptions qui stocke l'ID d'abonnement Stripe, le statut, le plan, et current_period_end. Écrivez deux fonctions edge Supabase : une qui crée une session Stripe Checkout (appelée depuis votre frontend) et une qui gère les webhooks Stripe (enregistrée dans le tableau de bord Stripe). La fonction webhook met à jour votre table subscriptions selon les événements checkout.session.completed, customer.subscription.updated, et customer.subscription.deleted. Une fois l'état de l'abonnement dans Supabase, vous pouvez appliquer les limites de plan au niveau de la base grâce aux policies de row-level security. Une policy pourrait n'autoriser un INSERT sur la table projects que si le plan d'abonnement de l'utilisateur est «pro» ou supérieur. Cela rend l'application des limites automatique, sans code frontend nécessaire, et impossible à contourner pour un utilisateur. Combinez avec des fonctions PostgreSQL pour compter l'usage et vérifier les limites.

Cas d'usage concrets

La configuration standard de facturation SaaS chez App Studio : Supabase Auth, un frontend WeWeb ou Next.js, Stripe Checkout pour le choix du plan, une fonction edge Supabase pour gérer les webhooks, et des feature flags appliqués par RLS. Ce stack gère tout, des essais gratuits aux contrats annuels entreprise. Le portail client (généré par Stripe, lié depuis votre application) gère les changements de plan, les mises à jour de moyen de paiement, et les annulations, sans aucun code personnalisé.

Bonnes pratiques

Enregistrez l'URL de webhook de votre fonction edge Supabase dans le tableau de bord Stripe et vérifiez la signature du webhook avec constructEvent() de Stripe pour empêcher les requêtes usurpées. Les webhooks peuvent arriver dans le désordre, vérifiez toujours le timestamp created de l'événement par rapport à ce qui est dans votre base avant de mettre à jour. Utilisez les clés d'idempotence de Stripe pour la création de session de paiement afin d'éviter les doubles facturations si votre frontend retente. Testez le cycle de vie complet de facturation (abonnement, upgrade, annulation, réabonnement) en mode test Stripe avant le lancement.

Cas d'usage
  • SaaS subscription billing
  • Plan tier enforcement
  • Usage-based billing
  • Free trial management
  • Enterprise contracts

Besoin d'aide pour cette intégration ?

App Studio configure ces intégrations pour vous. Devis gratuit sous 48h.

Obtenir un devis →