I'm redesigning the database for one of our apps, to normalise and restructure some of the more gigantic tables.
Our service offers various plans (Personal, Family, Business etc.) that come with Monthly & Yearly subscription options.
We use Stripe as our payment gateway for Personal and Small sized business users but also offer an option to pay by invoice for our larger clients.
For every subscription, we generate a license key provided to each User attached to a specific account (that had a subscription purchased for them). So for every subscription, I'm attaching a license key to it.
I would like to track the payments and subscriptions from both payment funnels (Stripe & Manual Invoices) and to manage recurring payments (renewing subscriptions, cancelling overdue subscriptions, changing subscription plans, trials, discounts etc).
So far:
I link payments to a subscription and a license.