feat: Stripe integration (Checkout, Billing, webhooks) #50

Open
opened 2026-04-09 01:54:11 +00:00 by maximus · 0 comments
Owner

Contexte

Paiement achat unique (Base) et abonnement mensuel (Premium) via Stripe.
Ref: spec-monetisation.md — Phase 2, Issue 5
Depends on #49

Tâches

  • Créer le compte Stripe, configurer pour le Canada
  • Activer Stripe Tax pour la collecte TPS/TVQ automatique
  • Configurer Stripe Checkout pour l'achat unique (édition Base, ~29-49$ CAD)
  • Configurer Stripe Billing pour l'abonnement mensuel (édition Premium, ~7-12$ CAD/mois)
  • Configurer Stripe Customer Portal (gestion abonnement self-service)
  • Implémenter les webhooks Stripe dans l'API (avec idempotency keys) :
    • checkout.session.completed → générer licence Base + envoyer par email
    • invoice.payment_succeeded → renouveler/activer abonnement Premium
    • customer.subscription.deleted → marquer abonnement expiré
    • customer.subscription.updated → mettre à jour statut
    • charge.refunded → révoquer la licence automatiquement
  • Email de confirmation avec clé de licence
  • Tester le cycle complet en mode test Stripe
## Contexte Paiement achat unique (Base) et abonnement mensuel (Premium) via Stripe. Ref: `spec-monetisation.md` — Phase 2, Issue 5 Depends on #49 ## Tâches - [ ] Créer le compte Stripe, configurer pour le Canada - [ ] Activer Stripe Tax pour la collecte TPS/TVQ automatique - [ ] Configurer Stripe Checkout pour l'achat unique (édition Base, ~29-49$ CAD) - [ ] Configurer Stripe Billing pour l'abonnement mensuel (édition Premium, ~7-12$ CAD/mois) - [ ] Configurer Stripe Customer Portal (gestion abonnement self-service) - [ ] Implémenter les webhooks Stripe dans l'API (avec idempotency keys) : - `checkout.session.completed` → générer licence Base + envoyer par email - `invoice.payment_succeeded` → renouveler/activer abonnement Premium - `customer.subscription.deleted` → marquer abonnement expiré - `customer.subscription.updated` → mettre à jour statut - `charge.refunded` → révoquer la licence automatiquement - [ ] Email de confirmation avec clé de licence - [ ] Tester le cycle complet en mode test Stripe
maximus added this to the spec-monetisation milestone 2026-04-09 01:54:11 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-09 01:54:11 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#50
No description provided.