Skip to content

Commit 0abd745

Browse files
committed
Merge branch 'main' of https://github.com/kinde-oss/documentation into feat/pre-reg-workflow
2 parents 055403f + 12e8678 commit 0abd745

28 files changed

+1337
-23
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
page_id: bd6757e3-81d5-48d6-89c8-dd4c222ac647
3+
title: About billing
4+
sidebar:
5+
order: 1
6+
relatedArticles:
7+
- 9d1daf85-1a2c-4cc5-879a-230c950bed12
8+
- e6dde80d-2977-419f-a05a-62ad0a7ac6de
9+
- 100f75f1-a0a4-459f-874f-da127f2d0615
10+
---
11+
12+
Kinde billing gives you the ability to charge customers for your services and collect revenue.
13+
14+
As part of using this feature, you can:
15+
16+
- Create and manage plans, and make them visible to your customers
17+
- Create and customize a pricing table for plan selection
18+
- Implement specific pricing models to suit your product
19+
- Use Stripe for secure handling of payments and invoicing
20+
- Link organizations (B2B) and individual customers (B2C) to a plan
21+
- Handle plan upgrade, downgrade, and cancellation
22+
- Enable self-serve account management for customers
23+
- Customize the pricing table to make the whole experience on-brand
24+
25+
Billing makes the Kinde platform _the_ essential development infrastructure for managing the customer lifecycle across every part of your business. From registration to plan selection, authorization to provisioning, releases to upgrades.
26+
27+
## This is our first billing release
28+
29+
Billing is a really complex area of app development, so while this release is tested and ready, we are actively working on improvements from day one.
30+
31+
### How to send feedback
32+
33+
It would be amazing if you can send any feedback you have [[email protected]](mailto:[email protected]) so we can quickly collect and prioritize improvements.
34+
35+
## Known limitations
36+
37+
These are current limitations that we are aware of and are working on adding.
38+
39+
- Support for plan models with free trial periods
40+
- Annual and quarterly subscriptions. Only monthly is available right now.
41+
- Changes to the billing cycle (e.g. choose billing anniversaries, etc.)
42+
- Add-ons and discounts that can be applied to individual subscriptions
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
page_id: 9d1daf85-1a2c-4cc5-879a-230c950bed12
3+
title: Billing concepts & terms
4+
sidebar:
5+
order: 3
6+
relatedArticles:
7+
- 100f75f1-a0a4-459f-874f-da127f2d0615
8+
- bd6757e3-81d5-48d6-89c8-dd4c222ac647
9+
---
10+
11+
'Billing' refers to the broad function of creating plans, setting pricing, collecting payments, etc. Here are some of the common concepts and terms you will come across.
12+
13+
## Key concepts
14+
15+
- **Plan groups** - Plan groups organize multiple plans under a common category, helping segment offerings by use case, customer size, or market. A group is scoped to either organizations (B2B) or individual customers (B2C). You can have multiple plan groups, but each plan must belong to a group.
16+
- **Plans** - Plans define the specific features, usage limits, and pricing tiers offered to customers in a SaaS product.
17+
- **Features** - Plan features are the specific capabilities or entitlements included in a plan. They can be chargeable (incurring additional fees) or non-chargeable (included at no extra cost). Features can be metered (usage-based) or unmetered (fixed access).
18+
- **Fixed charges**- Single chargeable items like the subscription base price and other stand alone recurring charges.
19+
- **Pricing models** - Pricing models are the different methods of charging customers, such as flat-rate, usage-based, tiered, per-seat pricing, etc. Your pricing model is determined by your product and customer needs. Consider scalability and longevity when deciding this.
20+
- **Payments gateway** - A payments gateway is a service that securely processes customer payments via credit cards, ACH, or other methods - such as Stripe.
21+
- **Pricing table** - A pricing table is a visual representation of your different subscription plans, showcasing features and prices to help users compare options. You can build one in Kinde and then show it to your customers in the auth flow or self-service portal.
22+
- **Self-serve account portal** - Kinde provides a self-serve portal. This allows customers to manage their subscriptions—such as upgrading plans, updating payment information, or cancelling. This reduces support overhead and improves user autonomy. In Kinde, you can decide what your customers can self-manage or remove the functionality completely.
23+
24+
## Common billing terms
25+
26+
- **Agreement** - the term used in Stripe and the Kinde API to refer to a customer's subscription. Both terms are used throughout docs.
27+
- **Base price** – The starting cost of a subscription plan, typically the cost for a core set of features or a minimum level of usage.
28+
- **Chargeable / Non-chargeable feature**
29+
- **Chargeable feature**: Incurs an additional fee when used. Might be metered or per unit price.
30+
- **Non-chargeable feature**: Add non-chargeable features for any included features which aren't independently chargeable, but need to be gated in your product.
31+
- **Feature** – A specific function or capability of your SaaS product that you provision for app users. In context with a plan, these are chargeable or non-chargeable features that are provisioned to customers.
32+
- **Fixed charge** – A recurring fee that does not change based on usage, often applied monthly or annually. Use this for a plan’s base price or other flat recurring fees.
33+
- **Metered and unmetered feature** – Metered features are provisioned in units, often with pricing per unit, e.g. MAU. An unmetered feature is like a boolean, and is a basic feature with no pricing attached.
34+
- **Multi-currency** – The ability to set plan prices in different currencies to support global customers. Kinde supports nearly all currencies, but you can currently only pick one as the default for all plans.
35+
- **Plan** – A packaged offering of features, prices, and terms available for subscription, typically tiered across a group (e.g., Basic, Pro, Enterprise).
36+
- **Plan group** – A collection of related plans, often grouped by customer type or usage level, allowing easier management and comparison.
37+
- **Pricing model** – The structure used to determine how features in a plan are priced. E.g. fixed charge, tiered, per-user, or usage-based pricing. Kinde lets you use multiple pricing models within one plan.
38+
- **Subscription** – The ongoing agreement where a customer pays for access to a SaaS product via a recurring plan. This is referred to as an agreement in Stripe.
39+
- **Tiered pricing** – This refers to unit pricing that has different unit costs based on the volume of units purchased. E.g. $10 per unit for 1–10 units, $8 per unit for 11–50 units, $5 per unit over 51 units.
40+
- **Unit price** – Where a price is set per unit of usage, e.g. a seat or license. Unit prices can also be applied to metered features, e.g. x per unit. Unit prices can also be tiered, e.g. x per unit up to 10 units, then y for 10+ units.
41+
- **Usage-based** **price** – A billing method where charges vary based on the metered consumption of resources or services (e.g., API calls, storage).
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
page_id: e6dde80d-2977-419f-a05a-62ad0a7ac6de
3+
title: The Kinde billing model
4+
sidebar:
5+
order: 2
6+
relatedArticles:
7+
- bd6757e3-81d5-48d6-89c8-dd4c222ac647
8+
- 9d1daf85-1a2c-4cc5-879a-230c950bed12
9+
---
10+
11+
In the Kinde model, we handle everything except the payment processing part of billing. Kinde integrates with a third-party payment gateway (Stripe) for secure payment processing.
12+
13+
This involves a continuous sync between Kinde and Stripe, to ensure that products, prices, subscription information, invoices and payments, are accurate in both systems.
14+
15+
Kinde does not store payment details, such as credit card information. This is exclusively managed by Stripe.
16+
17+
## Billing for B2B, B2C and B2B2C
18+
19+
Kinde supports billing models for B2B, B2C and even B2B2C. Depending which you are setting up, you may need to do a few different tasks. Most of the setup is common, but we will call out tasks that are only relevant to one or the other.
20+
21+
- B2B - customers are companies, organizations, or groups.
22+
- B2C - customers are individual users.
23+
- B2B2C - the platform model, where you have a customer who is an organization, and then users who are customers of that organization.
24+
25+
## Kinde and Stripe
26+
27+
Kinde integrates a single payment gateway (only Stripe for now) to handle the financial and payment management side of things.
28+
29+
Stripe uses the plan data and the customer info to create an agreement in Stripe. The customer is invoiced based on this agreement. Stripe securely stores your customer’s payment details and Kinde never sees credit card or other bank information.
30+
31+
Here’s what the billing feature looks like as a workflow.
32+
33+
![Plan purchase workflow](https://imagedelivery.net/skPPZTHzSlcslvHjesZQcQ/b9a7bc9a-8f32-4a6d-fe4c-799db02c1600/public)
34+
35+
Stripe is currently the only payment provider supported with Kinde. But we plan to expand to other providers in the near future.
36+
37+
## Multi-currency support
38+
39+
Kinde has customers everywhere and almost every global currency is supported.
40+
41+
## Transaction data and Stripe region
42+
43+
- When you connect your Stripe account to Kinde, you connect to our Stripe US account. We do this because Stripe US more widely supports global functionality.
44+
- Regardless of your own Stripe account region, you can still select any currency for your plans in Kinde, and Stripe will do the hard part of exchange rate conversion, tax calculations, etc.
45+
- Any fees you incur in Stripe for international transactions are your sole responsibility.
46+
47+
## Billing and invoice cycles
48+
49+
By default, Kinde uses the following billing behavior, though some aspects can be customized depending on how you configure cancellations.
50+
51+
- Billing cycles are monthly, based on the customer's original sign-up date.
52+
- Fixed charges (e.g. monthly subscription fees) are billed in advance, customers pay at the start of their billing period.
53+
- Metered (usage-based) charges are billed in arrears, usage is tracked throughout the billing period, and charges appear on the next invoice.
54+
55+
You can also [set policies](/billing/get-started/setup-overview/) to control what happens when a customer cancels or changes their plan.

src/content/docs/billing/about-payments-and-plans/index.mdx

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
page_id: 06bb544c-1b84-4660-ac55-ac80b50ae5be
3+
title: Customize the plan sign-up experience
4+
sidebar:
5+
order: 2
6+
relatedArticles:
7+
- 37d5ae8e-cfd1-4e5d-8333-387b6967ec23
8+
- 88e1773a-b681-441f-b4c7-d7d339116867
9+
- e6dde80d-2977-419f-a05a-62ad0a7ac6de
10+
---
11+
12+
There are three ways you can allow customers to sign up to a plan.
13+
14+
## Option 1: Use your own plan selection screen
15+
16+
Display a plan selection screen in your own app or website. Once the user selects a plan, redirect them to Kinde to complete the payment flow.
17+
To pre-select a plan, pass the `plan_interest` query parameter in the Kinde authentication URL.
18+
19+
## Option 2: Use Kinde’s built-in plan selection
20+
21+
Let Kinde handle plan selection as part of the authentication flow. To enable this:
22+
23+
- [Create a pricing table](/billing/billing-user-experience/plan-selection/) in Kinde
24+
- [Add and publish plans](/billing/manage-plans/create-plans/)
25+
- Set the table to **Live**
26+
27+
Once this is done, use the relevant pricing table key in the authentcation URL and Kinde will display the plan selection screen during signup.
28+
29+
## Option 3: Assign a plan via the Kinde Management API
30+
31+
Use the [Kinde Management API](https://docs.kinde.com/kinde-apis/management/#tag/billing-agreements/get/api/v1/billing/agreements) to assign a customer to a specific plan.
32+
The next time the customer signs in, Kinde will automatically prompt them for payment details.
33+
34+
This is ideal for:
35+
36+
- Migrating customers from another system
37+
- Assigning a plan without user input
38+
39+
## Customize billing screens in the authentication flow
40+
41+
Depending on how you choose to onboard customers, users will see three different billing screens during the authentication flow. These screens can be customized:
42+
43+
1. **Plan selection** - Displayed when a user signs up for the first time and multiple plans are available.
44+
45+
2. **Payment details** - Shown after a user selects a plan—or if a plan was pre-selected before redirecting to Kinde.
46+
47+
3. **Success** - Shown when sign up and payment are successfully completed.
48+
49+
By default, all screens will inherit branding and styling from the global Kinde [Design](/design/brand/global-brand-defaults/) settings.
50+
51+
If you want more control, you can [fully customize these screens using your own **HTML, CSS, and JavaScript**](/design/customize-with-code/customize-with-css-html/).
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
page_id: 37d5ae8e-cfd1-4e5d-8333-387b6967ec23
3+
title: Build a pricing table
4+
sidebar:
5+
order: 1
6+
relatedArticles:
7+
- 88e1773a-b681-441f-b4c7-d7d339116867
8+
- e6dde80d-2977-419f-a05a-62ad0a7ac6de
9+
---
10+
11+
You can build pricing tables to enable your customers to select plans and go through a payment flow as part of signing up to your app or site.
12+
13+
Kinde's pricing table builder can generate a pricing table from published plans, or you can start with a blank one.
14+
15+
You can also add and edit information and content in your preferred languages. You can create as many pricing tables as you want.
16+
17+
![parts of a pricing table](https://imagedelivery.net/skPPZTHzSlcslvHjesZQcQ/7ec898d2-e5ae-4966-66d0-83d8a9f1b500/public)
18+
19+
## Create a pricing table
20+
21+
A pricing table can only have 4 plans.
22+
23+
1. Go to **Billing > Pricing tables**.
24+
2. Select **Add pricing table**.
25+
3. Choose an option:
26+
1. **Generate** a pricing table from a plan group - this pre-populates the pricing table with basic details and the plans based on the plan group you select. Up to 4 plans can be included on a pricing table. If your plan group contains more, you may want to create a new pricing table.
27+
2. **Create new** pricing table. Manually build the pricing table and add plans from a plan group. This gives you a blank slate to start in.
28+
4. Select **Next**.
29+
1. **Generated** - select the group and then **Save**.
30+
2. **New** - complete the details in the window and **Save**.
31+
32+
## Edit the pricing table
33+
34+
You can edit a pricing table, but they are not versioned. Whatever content you override, it cannot be reverted or recovered.
35+
36+
You cannot edit a plan price. This is inherited from the plan itself.
37+
38+
## Change what plans show on a pricing table
39+
40+
You can add and remove plans from the pricing table when it is being worked on.
41+
42+
1. Open the pricing table.
43+
2. Scroll to the **Plans** section.
44+
3. To remove a plan:
45+
1. Select the three dots on the plan card and select **Remove from pricing table**.
46+
2. Confirm you want to remove the plan. This removes all custom content you have added, in all languages you have added content in, on the pricing table. The plan is removed.
47+
3. Select **Save**.
48+
4. To add a plan, select **Add plan**.
49+
1. In the window that opens, select an available plan. Only plans from the same plan group are shown.
50+
2. Complete the details in the window for this plan. At minimum, you must enter a **Display name** and the **CTA button** content. This will be displayed in the pricing table.
51+
3. Select **Save**. The plan is added to the pricing table.
52+
53+
## Change the order of plans on a pricing table
54+
55+
The display order of plans from left to right corresponds to the position listed in the **Plans** section of the pricing table.
56+
57+
1. Open the pricing table.
58+
2. Scroll to the **Plans** section.
59+
3. Select the three dots menu on the plan you want to move.
60+
4. Select **Move up** or **Move down**, depending on the plan position.
61+
5. Select **Save**.
62+
63+
## Add a features list to a plan on the pricing table
64+
65+
To promote the top features in a plan, add them manually to the pricing table. These features don't need to correspond exactly to your plan configuration, this is an opportunity to sell the most appealing product features and make plan choices easy for customers.
66+
67+
1. Open the pricing table.
68+
2. Scroll to the **Plans** section.
69+
3. Select the three dots menu on the plan and select **Edit content**.
70+
4. In the top of the window, select the language you want to add features in.
71+
5. Add a **Features list heading**. This sits directly above the list.
72+
6. Add a list of features in the large text **Features list** field. Features will appear in the order they are listed.
73+
7. Select **Save**.
74+
75+
## Highlight a plan on a pricing table
76+
77+
It’s common to want to call out or highlight something about a plan on the pricing table, for example, to highlight which plan is most popular.
78+
79+
1. Open the pricing table.
80+
2. Scroll to the **Plans** section.
81+
3. Select the three dots menu on the plan and select **Edit content.**
82+
4. In the top of the window, select the language you want to add highlight content.
83+
5. Add a **Highlight label** and select **Save**.
84+
85+
## Edit and translate pricing table content
86+
87+
If you want to display pricing tables in multiple languages, you can change add content translations to the plans on the pricing table.
88+
89+
1. Open the pricing table.
90+
2. Scroll to the **Plans** section.
91+
3. Select the three dots menu on the plan and select **Edit content.**
92+
4. In the top of the window, select the language you want to add or edit content for.
93+
94+
![image.png](https://imagedelivery.net/skPPZTHzSlcslvHjesZQcQ/58587ad1-0077-47d7-faca-ea3dd6345d00/public)
95+
96+
5. Enter or edit all the content you want in the chosen language.
97+
6. Select **Save**.
98+
99+
## Make the pricing table live to customers
100+
101+
We recommend only doing this after your plans are finalized and published.
102+
103+
1. Open the pricing table.
104+
2. Select **Make live**.
105+
3. Select **Save**. If a user passes the pricing table code in a URL, they will be able to sign up using it.
106+
107+
## Set pricing table to show as default in register flow
108+
109+
You can set a pricing table to show by default, even if the code key is not passed in the URL during the normal sign up flow.
110+
111+
1. Open the pricing table.
112+
2. Select **Show by default**.
113+
3. Select **Save**. If a user goes through the registration flow without a pricing table code key in the URL, this is the pricing table they will see.
114+
115+
## Switch the pricing table off for the register flow
116+
117+
You can configure Kinde to hide pricing tables in the sign up flow, but still show them in the self-serve portal. You'd do this if you have designed your own pricing pages and you only want to show Kinde's pricing table for theself-serve upgrade or downgrade experience.
118+
119+
1. Go to **Settings > Environment > Billing**.
120+
2. Switch off the **Show the pricing table when customers sign up** option.
121+
3. Select **Save**.

0 commit comments

Comments
 (0)