feat: maximus-api — Stripe webhooks (license auto-generate + subscriptions) #136
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#136
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Issue scindée depuis #49 (license server API). Les endpoints Stripe (génération automatique via webhook Checkout, subscriptions status/webhook) sont extraits car le compte Stripe n'est pas encore créé.
Dépend de : #49 (core licence livré) + compte Stripe configuré.
Implémenté dans le même repo
maximus-api(voir #49 pour scaffolding, PG, core Ed25519).Tâches
maximus-api:POST /licenses/generate— automatisé via webhookcheckout.session.completed(auth : API key interne, pas public). Génère JWT Ed25519 signé avecexpobligatoire, formatSR-BASE-<JWT>ouSR-PREMIUM-<JWT>.POST /subscriptions/webhook— webhooks Stripe Billing. Événements :checkout.session.completed,invoice.payment_succeeded,customer.subscription.deleted,customer.subscription.updated,charge.refunded(révocation auto).GET /subscriptions/status— lecture statut pour l'app desktop (auth : JWT Logto).Stripe-Signatureheader) OBLIGATOIRE (CWE-345)simpl-resultat, plus tardsimpl-liste) selonline_itemsou metadataNotes de sécurité
/subscriptions/statusCritères d'acceptation
SR-BASE-<JWT>envoyée par emailcharge.refundedrévoque la licence dans les 5 secondes/subscriptions/statusretourne le statutactive|past_due|canceled|expiredpour l'utilisateur Logto authentifiéRéférences
spec-monetisation.md— Phase 2, Issue 5