Package your features, price them, and publish a plan page your customers buy from. Trials, invoices, upgrades and failed payments are handled, and the plan a customer pays for is the plan your app enforces.
Everything between "this is our pricing" and "the money arrived", in the same place your customers sign in.
Bundle features and limits, then price them flat, per seat or in tiers. Edit a live plan as a new version; current subscribers keep their terms.
Publish plans to a ready storefront. Only published plans appear, and negotiated plans show "Custom pricing", never "Free".
Connect Stripe or Razorpay, offer a trial, and let customers pay monthly or yearly, in more than one currency.
One numbering sequence with no gaps, proration on every upgrade, GST where it applies, credit notes and refunds.
Discount codes with limits and conditions, and add-ons customers buy on top of their plan.
When a payment fails, a sensible retry and reminder policy runs out of the box.
Build your price list in the console and connect Stripe or Razorpay.