Skip to content
Plans and entitlements for software products

Change your plans. Keep your promises.

Define plans, add-ons and limits in one shared catalogue. Change your packaging while preserving earlier customer terms, and let your software check entitlements through one API.

Early access. We invite teams in small groups.

Available plan changesPro to TeamUpgradeImmediately, keep billing dateTeam to ProDowngradeAt the next renewal

Your plans, their add-ons and the paths between them. Choose a plan in this example to explore when a customer can move up, move down or add SSO.

Your plans change. The check stays the same.

Choose Alice’s plan and try exporting a report. Then add PDF export to Pro basic. This example shows the result once the change is released, rolled out to her track and she moves to the new version.

Customer experience

Alice is on
Quarterly report

Try exporting the report to see Alice’s access or her eligible upgrades.

Plan settings
Export to PDF is included inProTeam

Once the release reaches Alice’s track and she moves to the new version, the same check returns the new answer. Your app still owns the export action and the upgrade prompt.

Your software asks about the customer

import { createClient } from '@connectrpc/connect'
import {
  createGrpcWebTransport,
} from '@connectrpc/connect-web'
import {
  Entitlements,
} from './gen/entitler/api/v1/entitlements_pb'

const transport = createGrpcWebTransport({
  baseUrl: 'https://api.entitler.app',
})
const auth = {
  headers: {
    Authorization: `Bearer ${process.env.ENTITLER_KEY}`,
  },
}
const entitlements = createClient(Entitlements, transport)

const { entitlement } = await entitlements.checkFeature(
  {
    customer: {
      customer: { case: 'externalId', value: user.id },
    },
    featureKey: 'export_pdf',
  },
  auth,
)

if (entitlement?.entitled) {
  exportPdf()
} else {
  showUpgradeOptions(entitlement?.upgrades)
}

Call the API from your server with an environment key. The API is gRPC-Web, defined in Protocol Buffers, so any language with a gRPC-Web client can call it. These samples use a TypeScript client generated for Connect.

Define your plans. Assign your customers. Ask one API.

A customer’s entitlements are the features, limits and usage allowances their plan, add-ons and any exceptions give them. Set up that model once, then let your software ask for the answer.

  1. Define each plan’s features and limits

    Create Free, Pro, Team or your own tiers. Add features, configurable limits and metered allowances, then reuse them in add-ons or inherited plans.

  2. Record each customer’s plan and exceptions

    Assign a plan and add-ons, keep an earlier version or grant an exception. Entitler works with any billing provider, through its API or through provider connections. With Stripe connected, Entitler opens checkout and charges each plan change to Stripe.

  3. Ask from your software

    Use the API to check a customer’s entitlement and usage. Entitler resolves their package behind the answer, so changing existing plan terms does not mean rewriting checks throughout your app.

The controls behind changing plans

Plan inheritance

Build on an existing plan

Create a plan from an existing one and change only the features or limits you need. Updates to the base plan carry through to inherited features. Your overrides stay intact, and you choose when customers receive each version.

Prov2 in Winter pricing
  • Pro basicInherits from Pro v2AI credits stay at 200
  • TeamInherits from Pro v2AI credits stay at 2,000, with 5 team seats

Pro v2 in Winter pricing: 24-hour support response. Release v3 to reduce it to 12 hours.

Changes and releasesPaid plans

Review a change before it is released

Edit several plans together in one change, like a pull request for pricing, and choose whether existing customers keep their current version or move to the new one. Plan editors send changes for review; roles that can release publish them as named releases.

Change: Spring pricingSent for review by Sam, based on Winter pricingAwaiting review
ProWinter pricing, version 2This change, version 3
Export to PDFIncludedIncluded
Support SLA24 hours24 → 12 hours (changed)
AI credits500500
Existing Pro customers

Review: support response 24 → 12 hours; AI credits remain 500. Existing Pro customers move to version 3 at renewal, once Spring pricing reaches their track.

Rollouts and listings

Roll out a release with the prices that sell it

Each rollout lists the Stripe price, App Store product or Google Play product that sells every plan, carried over where nothing changed. A blank cell is a gap you accept on purpose, and production can require Finance to approve.

Roll out Spring pricing to All customersProduction · pays through Stripe liveNeeds Finance
Plan and periodStripe live
Pro · Monthlyprice_1Q8x… A$29/mo
Pro · Annualprice_1Q8y… A$290/yr
Team · MonthlyGap: no price listed

Team · Monthly has no price. List a price or accept the gap before rollout.

From your first tiers to years of plan history

Small teams use Entitler to find the right packaging without rebuilding plan logic for every experiment. Larger teams use it to manage generations of plans, enterprise exceptions and migrations. Everyone works from the same customer terms.

Build and release your packages

A new tier can trigger changes across checkout, upgrade prompts and feature checks. Define packages in a shared catalogue and choose how each release reaches customers.

  • Update the features in a plan and let your upgrade prompts use the latest catalogue.
  • Create plans from a shared base and override individual features or limits.
  • Compare features and limits across plans in the matrix.
  • Arrange plans and add-ons on the canvas and add paths to define how customers can move between them.
More for product

Common questions

Have a question that isn’t here? Ask an AI assistant to read this site and answer it.

Your plans and each customer’s entitlements under them: features, limits, usage allowances, add-ons and exceptions. These entitlements can come from a current plan, an older version, an inherited package or a customer grant.

Try your plans in Entitler

Start with sample plans and customers. Then try a change you expect to make, such as a new tier, a usage allowance or an exception for an early customer. Request an invite to try it with your team.

Early access. We invite teams in small groups.