Skip to content

Billing #74

Description

@dunnbot

Summary

Subscription billing: provider-agnostic library with local DB state, Stripe implementation, subscription management UI, billing settings, and a public pricing page.

Scope

  • Billing library core — provider-agnostic interface. Models for plans, subscriptions, invoices, payment methods (state stored locally). Subscription lifecycle. Plan definitions with features and limits. Trial support.
  • Stripe provider — implementation of the billing interface. Customer sync. Webhook handling for payment and subscription events (idempotent). Payment method management via Stripe Elements.
  • Subscription management UI — subscribe, upgrade/downgrade with proration, cancel with grace period, resume. Current plan display with usage and limits.
  • Billing settings — invoice history with PDF download. Update payment method. Update billing info. Separate billing email.
  • Public pricing page — Livewire page with plan comparison cards, feature lists, annual/monthly toggle. CTAs link to sign-up with the selected plan pre-selected.

Acceptance criteria

  • Teams (or users, per scoping decision) can subscribe to a plan and pay via Stripe
  • Plan changes apply immediately with correct proration
  • Cancellations enter a grace period and can be resumed before expiry
  • Webhooks keep local subscription/invoice state in sync with Stripe
  • Public pricing page renders all plans with working CTAs
  • Invoices are listed and downloadable as PDFs
  • The billing library can be swapped to another provider without changing app code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions