Purchases is the client SDK for RevenueCat.

All Types


An entitlement represents features or content that a user is "entitled" to. Entitlements are unlocked by having an active subscription or making a one-time purchase. Many different products can unlock. Most subscription apps only have one entitlement, unlocking all premium features. However, if you had two tiers of content such as premium and premium_plus, you would have 2 entitlements. A common and simple setup example is one entitlement with identifier pro, one offering monthly, with one product. See this link for more info


Interface to be implemented when making calls to fetch [SkuDetails]

kotlin.Int (extensions in package com.revenuecat.purchases)

Most well monetized subscription apps provide many different offerings to purchase an entitlement. These are usually associated with different durations i.e. an annual plan and a monthly plan. See this link for more info


Interface to be implemented when making purchases.


Class containing all information regarding the purchaser


Entry point for Purchases. It should be instantiated as soon as your app has a unique user id for your user. This can be when a user logs in if you have accounts or on launch if you can generate a random user identifier. Make sure you follow the quickstart guide to setup your RevenueCat account.


This class represents an error


Interface to be implemented when making calls to fetch [Entitlement]


Interface to be implemented when making calls that return a [PurchaserInfo]


Used to handle async updates from [Purchases]. This interface should be implemented to receive updates when the [PurchaserInfo] changes.