Overview
This is the tracking issue for Phase 5. The goal is to integrate a payment provider (Stripe), handle webhook events for payment lifecycle, and automate subscription renewals and payment failures.
Phase 4 generates invoices and tracks what tenants owe. Phase 5 collects the money.
Success Criteria
Tracking / Sub-tasks
Resources
- Architecture Log:
docs/phases/phase-5.md (to be created)
- Architecture Doc:
docs/architecture/phase-5-payments-webhooks.md (to be created)
Why this phase matters
Phase 4 generates invoices but relies on manual mark-paid calls. In production, payments are automated: Stripe charges the tenant's card, sends a webhook confirming success or failure, and the system updates accordingly. Without this, Meterplex is a billing calculator, not a billing system.
Webhook processing is the hardest integration pattern in SaaS: events arrive out of order, duplicates are common, signatures must be validated, and failures must be retried without double-charging. This phase handles all of it.
Note: This issue represents the "Phase 5" milestone. Individual PRs should reference the specific sub-tasks above.
Overview
This is the tracking issue for Phase 5. The goal is to integrate a payment provider (Stripe), handle webhook events for payment lifecycle, and automate subscription renewals and payment failures.
Phase 4 generates invoices and tracks what tenants owe. Phase 5 collects the money.
Success Criteria
Tracking / Sub-tasks
Resources
docs/phases/phase-5.md(to be created)docs/architecture/phase-5-payments-webhooks.md(to be created)Why this phase matters
Phase 4 generates invoices but relies on manual
mark-paidcalls. In production, payments are automated: Stripe charges the tenant's card, sends a webhook confirming success or failure, and the system updates accordingly. Without this, Meterplex is a billing calculator, not a billing system.Webhook processing is the hardest integration pattern in SaaS: events arrive out of order, duplicates are common, signatures must be validated, and failures must be retried without double-charging. This phase handles all of it.
Note: This issue represents the "Phase 5" milestone. Individual PRs should reference the specific sub-tasks above.