Entitlements

Understand how entitlements define what a customer can access or consume in your app.

Entitlements define what a customer can access or consume inside your app.

Products grant entitlements. Your app checks those entitlements through the Revenipe SDK to decide which features, limits, credits, or usage values should be available.

How entitlements work

Entitlements separate billing from access logic.

The billing provider handles payments, subscriptions, trials, and purchases. Revenipe turns that provider state into customer access. Your app then checks entitlements instead of handling every provider state directly.

  • Stripe or RevenueCat handles billing

  • Revenipe processes the customer access state

  • Products grant entitlements

  • Your app checks entitlements through the SDK

Entitlement types

Revenipe supports different entitlement types depending on what you want to unlock or track.

Entitlement type

Use case

Flag

Unlock a feature or capability

Value

Renewable usage such as monthly or weekly credits

Limited Value

Fixed credits or one-time usage amounts

Flag entitlements

Use flag entitlements when a customer should either have or not have access to a feature.

premium_access
support_access
advanced_exports
remove_watermark
Example
final hasPremium = Revenipe.instance.hasEntitlement('premium_access');

Value entitlements

Use value entitlements for renewable limits.

For example, a subscription could grant 100 credits every month or 10 exports every week.

monthly_credits
weekly_exports
monthly_project

Limited value entitlements

Use limited value entitlements for fixed amounts that do not renew automatically.

This is useful for one-time credit packs, top-ups, or manually granted usage.

500_credits_pack
extra_exports
one_time_tokens

Entitlements in the SDK

Use hasEntitlement when you only need to check whether a customer has access.

Example
final hasPremium = Revenipe.instance.hasEntitlement('premium_access');

Use getEntitlement when you need to read entitlement details, such as usage values or limits.

Example
final entitlement = Revenipe.instance.getEntitlement('monthly_credits');

Entitlements and usage keys

Usage keys can group multiple entitlements under one shared usage balance.

This is useful when a customer can receive usage from multiple sources, such as a subscription, one-time credit pack, recurring add-on, or manual grant.

A customer may receive credits from:

  • monthly credits from a subscription

  • extra credits from a one-time top-up

  • recurring add-on credits

  • manually granted credits

Your app can track usage against one shared usage key instead of handling every source separately.

Example
final result = await Revenipe.instance.track( id: 'credits', value: 1, );

Use stable entitlement identifiers

Use stable entitlement identifiers because your app depends on them to unlock features and display usage values.

premium_access
monthly_credits
support_access
advanced_exports
credits

Important

Do not unlock features only because a customer purchased a product.

Always check the customer's entitlements after the purchase, trial, add-on, free plan, or provider state was confirmed.

Entitlements should be treated as the access layer of your app. Billing provider state should not be checked directly in the client app for feature access.

Next steps

After understanding entitlements, continue with usage keys to learn how multiple entitlement sources can contribute to one shared usage balance.