Skip to content
  • Billing
  • Manage plans

About plans

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:

  • A simple subscription plan: $10 per month for x features
  • A more complex plan: $20 per month for x features, plus x amount per GB storage, plus MAU charges (up to x free per month).

We recommend creating your basic or simplest plan first (e.g. your Free plan), then work through to more complex plans.

Current limitations

Link to this section

These are known limitations that we are actively working on to add.

  • No alterations to billing cycle or invoice methods.
  • Add-ons and discounts that can be applied to individual subscriptions.
  • One-time charge purchase by subscribers, and applying one-time charges to existing subscriptions, are not available yet (plan configuration is available now).

About plan groups

Link to this section

Plan groups are a collection of related plans, tied to either users or organizations.

  • You can create as many plan groups as you need.
  • Each group can only contain plans for users OR plans for orgs.
  • You can create multiple pricing tables for one plan group (but only one is the default).
  • Only one plan group can be included in a pricing table.

For more information see add and manage plan groups

Parts of a plan

Link to this section

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.

  • Ask for credit card: Determines whether users must provide payment details when subscribing. This can be disabled for free plans with no charges, allowing frictionless signups. For plans with any positive-price fixed charge or chargeable metered billing, credit card collection is always required. Priced one-time charges alone do not require a card at signup.
  • Collect tax automatically: Controls whether Stripe Tax is applied for subscriptions to this plan. Choose Use account setting (default), Collect, or Don’t collect. The account default lives under Settings > Environment > Billing. See Create plans — Collect tax automatically for details.
  • Trial period: When enabled, lets customers try the plan for a set number of days before being charged. You can configure the trial length and how many days before the trial ends to prompt for payment details. Plans with a trial enabled show a “Free trial for N day(s)” badge on the pricing table. See Create plans — Configure trial period for configuration details.

Plan feature pricing

Link to this section

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).

  • Mixed-interval pricing: Each plan can have more than one fixed charge, billed at different intervals. Customers are charged at mixed intervals, such as $100 / year + $3 / month. See Mixed-interval pricing.
  • Annual pricing: You can offer annual pricing on one fixed charge per plan, at a custom yearly price. For example, a platform fee of $10/month, or $100/year if paid annually (a $20 saving per year). See Offer annual pricing.

Bill customers for additional features they can access. Features can be:

  • Metered: Users pay based on the usage limits you set. Pricing can be per unit, per tier, or non-chargeable. For example, $10 per 1 million API calls, then $25 for up to the next 5 million API calls, and so on.
  • Unmetered: The user either has access to the feature or not. There is no usage limit. Unmetered features are typically used to gate feature access. For example, custom domain support or custom themes.

One-time charges

Link to this section

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:

  • Flat or Package pricing
  • Optional metering and unit limits
  • An expiry policy (Never expires or Expires with the billing cycle)

See Create billing plans — Add one-time charges to a plan.

Example plan features

Link to this section
FeaturePricePricing model
Access to x featureN/AUnmetered
Subscription$20 / month, or yearly (optional annual offer); can combine with other fixed charges on different intervalsFixed charge
Interaction$x per interactionMetered / tiered
Storage/Usage$x per GBMetered / units or tiered
MAUx includedMetered / non-chargeable
MAUAdditional $x per MAU over nMetered / 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.

How to use and re-use features and charges

Link to this section

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.

Model of how you can use the same feature or charge across plans

Draft and published plans, and plan versioning

Link to this section

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.

  • Once a plan has a subscriber, the plan cannot be changed, only versioned.
  • Published plans must be included in a pricing table for self-sign ups.

Plan versioning is being worked on, but is not currently available.

When a plan feature price syncs to Stripe

Link to this section

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.

  • Price synced - The price in Kinde and Stripe are the same. A plan with this feature is published.
  • Price not synced - The price in Kinde has not yet synced to Stripe. When you publish or re-publish the plan, this will change.

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.