RevenueCat Offerings, Entitlements, and Products. Which to use?

RevenueCat is an in-app purchase SDK and subscription platform for apps. I use it to manage in app purchases for all my current and future apps. If you’re reading this post, you probably know about RevenueCat. If you don’t want to know more about it, then go check out the website. This post is about the difference between Entitlements, Products, and Offerings.

What is a product?

A product is the item that a user will actually purchase. This is configured in both RevenueCat and the App Store, Play Store, and/or Stripe. Products must be setup on those dashboards before configuring them inside RevenueCat.

What is an entitlement?

An entitlement is what the user unlocks with a purchase. It could be a level of access, certain features, or content. This is what the user receives. As an example in MyWheels, I have 3 different subscription tiers.

  1. Free

  2. Lite

  3. Pro

The lite and pro tiers are entitlements. I keep the true features in the app, but I will ask RevenueCat which entitlement the user has in the app to determine if the user can access a feature.

Another example, in iHog which is a one time unlock IAP (in-app purchase), I have the entitlement set to punt-page, and I check for the entitlement.

What is an offering?

An offering is a collection of products, called a package, that a user is offered on your paywall. To use RevenueCat, you do not need to configure an offering. If you do configure an offering, then it can be quite useful to change which products are presented at any given moment to the user. This is because these are configured on RevenueCat and you wouldn’t need to publish an app update. You would only need to change the offering inside RevenueCat.

When to use a Product, Entitlement, or an Offering?

Now that you know about all 3, you’re probably asking when to use each one. Here is a cheat sheet and how I think about it.

  • Product — you probably won’t use directly if you are using subscriptions or unlocking capabilities. If you are implementing a coin based or tip jar, you might use it
  • Entitlement — you use this when checking if a feature is unlocked. It’s provided by RevenueCat, so use it.
  • Offering — when you need to present a payment option to your users.