About Kinde billing feature
Billing
Plans enable you to structure your app features and charge your customers for using your services. Kinde supports both basic and more advanced plans for SaaS services. Here’s some examples:
We recommend creating your basic or simplest plan first (e.g. your Free plan), then work through to more complex plans.
These are known limitations that we are actively working on to add.
Plan groups are a collection of related plans, tied to either users or organizations.
For more information see add and manage plan groups
There are a number of concepts and elements involved in building a plan.
This is the name of the plan, description, code key, etc. You need to enter these details and save them before you move on to adding charges and features.
The plan name appears on the pricing table that you can generate to share with customers. We recommend keeping it short. Use the description fields to explain differences in plans for internal use.
Plan settings control additional subscription behavior beyond pricing.
Depending how you manage plans and feature provisioning in your application, plan pricing might be simple or complex in your business.
When you set up a plan, you can include a mixture of any of these options:
A recurring charge that does not change and is invoiced in advance. You can set the billing interval to daily, weekly, monthly, or yearly (the default is monthly).
$100 / year + $3 / month. See Mixed-interval pricing.Bill customers for additional features they can access. Features can be:
Single-purchase items subscribers can buy in addition to their subscription—for example credit top-ups or add-on unlocks. You configure them on the plan under One-time charges, with:
You can create one-time charges and add them to plans now. Subscribers can’t buy them yet, and they can’t be applied to existing subscriptions.
See Create billing plans — Add one-time charges to a plan.
| Feature | Price | Pricing model |
|---|---|---|
| Access to x feature | N/A | Unmetered |
| Subscription | $20 / month, or yearly (optional annual offer); can combine with other fixed charges on different intervals | Fixed charge |
| Interaction | $x per interaction | Metered / tiered |
| Storage/Usage | $x per GB | Metered / units or tiered |
| MAU | x included | Metered / non-chargeable |
| MAU | Additional $x per MAU over n | Metered / tiered |
| Credit top-up | $x one-time (for example per package of credits) | One-time / flat or package |
A plan is complete when it includes all the features needed to provide the access and charge the right price.
Kinde structures plans so that they can share a pool of features, fixed charges, and one-time charges that you define at a high level. When you add the item to a plan, you set the price, limits, and other differences uniquely in each plan. This makes building and managing plan items easier, because the item shares the same key (e.g. base_price or credit_top_up), making it easier to manage in your code and for gating.
For example, you only need to define the item ‘Base price’ once, and then you define the price when you add it to each individual plan.
Similarly, features that are inclusions, such as support hours included, just create one metered feature. Then set the limits of the feature differently for each plan level. E.g. Free plan one hour, Pro plan gets 2 hours, etc.
The same reuse pattern applies to one-time charges: define a top-up once, then attach it to each plan with the amount, package size, and expiry you want for that plan.
Plans can be in two states:
Draft - these plans are being developed and are not available for subscribers yet.
Published - products and prices are synced to Stripe and the plan can be signed up to manually, or via API.
Plan versioning is being worked on, but is not currently available.
Feature prices sync to Stripe when you are successfully connected to Strip and you publish the plan containing that feature. When you are creating a plan, you may notice that some features show price synced or price not synced.
If you see a mix of synced and not synced feature prices on a plan, this might be because the synced ones are in a plan that is published. Unmetered (non-chargeable) features do not have a price sync status badge.