Plans are a core component of the Product Catalog. Plans define the pricing and entitlements your customers receive in Konnect Metering & Billing. They act as reusable templates that describe what a customer gets and how they are charged. Each plan can include multiple phases, prices, and entitlements, and can be versioned.
Plans can take different forms, for example:
- $99 per month for 1 million API requests
- 10 GB storage included
- SAML or SSO support
Plans are built from rate cards, which determine which features a plan can access, the price, and how much of a feature they can use (called entitlements). Rate Cards define the configuration of features that subscribers will be entitled to and charged for.
For example, to set up the previous example plan, you’d use the following rate cards:
|
Feature
|
Price
|
Entitlement
|
|
AI Tokens
|
$99/m
|
1,000,000 /m
|
|
Storage
|
$0/m
|
10 GB /m
|
|
SAML SSO
|
$0/m
|
True
|
Rate cards can be configured with or without a feature:
-
With a feature: Rate cards with features can be priced as recurring, one-time flat, or usage-based. Rate cards with features can have an entitlement to control access. When the associated feature has a meter, the rate card can describe usage limits.
-
Without a feature: Rate cards without features can only have a flat-fee price. Rate cards without features don’t have an entitlement to control access.
Add-ons let you extend your plans with optional features or capacity that customers can purchase on demand.
They are versioned and consist of one or more rate cards defining pricing, entitlements, and billing cadence independently of the base plan.
See the Add-ons reference to learn more.
Rate cards offer several different pricing models, listed in the following table:
|
Pricing model
|
Description
|
|
Free
|
Free pricing
|
|
Flat fee
|
A one-time or recurring fee
|
|
Usage based
|
Linear pricing based on metered usage
|
|
Tiered
|
Tiered pricing based on metered usage
|
|
Package
|
Pricing based on fixed-sized usage packages
|
|
Dynamic
|
USD prices created dynamically from meter values
|
Besides the Free pricing model, other models require configuration that you can see from the Konnect UI.
See the pricing models reference for details.
Metering & Billing doesn’t calculate taxes itself. Instead, it configures external services to do so with Product Catalog. Currently, Metering & Billing supports Stripe Tax.
Metering & Billing supports the following tax settings:
- Inclusive: The listed price already includes tax. A 10% inclusive tax on a $500 item still results in a $500 invoice.
- Exclusive: Tax is added on top of the listed price. A 10% exclusive tax on a $500 item raises the invoice total to $550.
- Tax codes: Apply a tax code to a feature. Some payment providers, like Stripe, apply their own default tax code. In those cases, you can leave Metering & Billing’s tax settings blank.
You can enable tax collection from a Rate Card or the billing profile settings.
In Metering & Billing, you can define the tax behavior on multiple levels, from lowest to highest precedence:
|
Use Case
|
Setting
|
|
Fallback to the tax behavior of the payment provider, like Stripe.
|
Payment provider
|
|
Define the default tax behavior, if any, for all customers.
|
Billing profile
|
|
Override the default tax behavior on a per Rate Card basis.
|
Plan Rate Card
|
|
Override the default tax behavior on a per-subscription basis.
|
Subscription Rate Card
|
|
Override the tax behavior per invoice line item.
|
Invoice
|
We recommend setting the tax behavior on the payment provider level if you use Stripe for tax calculation. Tax behavior is optional at the billing profile, plan rate card, and subscription rate card levels.
When tax enforcement is enabled, Metering & Billing prevents you from starting a subscription if automatic tax calculation isn’t supported. When enforcement is enabled, the following actions are blocked:
- Creating a paid subscription when tax cannot be calculated
- Finalizing an invoice when tax cannot be calculated
- Validation logic also varies by tax service. For example, with Stripe Tax, Metering & Billing uses Stripe’s APIs to verify whether tax calculation is supported for the customer. In that case of Stripe, the customer must have a valid tax location.
Entitlements are used to control access to different features.
They make it possible to implement complex pricing scenarios such as monthly quotas, prepaid billing, and per-customer pricing.
Entitlements can help you implement various monetization strategies:
- Enforce usage limits, like monthly token allowances.
- Sell plans with various feature sets.
- Offer custom quotes and per-customer pricing.
- Adopt prepaid billing and grant usage, and handle top-ups.
- Define and track pre-purchase commitments.
Entitlements are available in three types: metered, static, and boolean. See the Entitlements reference to learn more.
Entitlement enforcement: Kong Gateway and the AI Gateway do not automatically block traffic when a customer’s entitlement is exhausted. To enforce limits, set up a webhook notification rule and cut off access in your own infrastructure. See Enforcing entitlements for details.
A grant is a record of usage allowance issued to a specific customer via a metered entitlement. Grants determine how much of a feature a customer is allowed to consume. A metered entitlement tracks a running balance. When usage is reported, it is deducted from the grants issued for that entitlement.
Rate cards include a billing cadence property that determines the billing frequency for the associated feature. For instance, when a usage-based rate card specifies a billing cadence of one month (P1M), the system generates monthly invoices reflecting that period’s usage.
For flat fee rate cards, the billing cadence can be omitted. In this case, the specified fee is charged once per subscription phase rather than recurring at regular intervals.
The price property defines the price the feature is sold at. See the Pricing models reference for more details.
Free items can be implemented using three distinct approaches:
- Omitting the price setting
- Setting an explicit price of $0
- Applying a 100% discount to the standard price
Each approach has different implications:
When no price is set across all rate cards, subscriptions can be initiated without payment method information, making it suitable for free plans.
If any rate card has an explicit $0 price, payment method information is still required during subscription setup.
Using a 100% discount on the standard price provides transparency to users by displaying the original value of the feature before the discount.
Plans are versioned to allow you to make changes without affecting running subscriptions. Each plan can have one published and one draft version. Editing already published plans will create a new draft version. Once you are ready, you can publish the draft version.
Subscriptions are bound to a specific version of the plan and can be migrated to a new version.
A plan can have multiple phases, such as a free trial for the first 30 days and then converting to a paid plan after the 30 days are up. Each phase can have a different price and entitlement. Phases can be used to create automatic time-based offering changes, like trials, reverse trials, ramp-up phases.
Example for reverse trials with plan phases:
- Phase 1 (Trial): limited to 100,000 tokens, premium features included
- Phase 2 (Free): limited to 1,000 tokens