Discounts
Support for Discounts is currently in private beta and invite-only. If you're interested in early access, let us know here.
Overview
RevenueCat Web Billing supports discounts, as a way to provide flexible discounting for subscription and one-time purchases that can be distributed with user-facing discount codes. This page covers how Discounts work in RevenueCat Web Billing, including how they fit alongside standard pricing, trials, and introductory offers.
A discount applies a percentage-based reduction in price when a customer purchases your product, and will apply for as long as defined in the duration, and reverting to the base non-discounted price.
Discounts are highly flexible in how they apply, how long they apply for and which products and customers they apply to.
Discount approaches
We offer two different features for discounting Web Billing products:
- Introductory Offers allow you to configure a lower price (per currency) for a period at the beginning of a subscription (see Product Setup)
- Discounts offer a more flexible way to apply percentage-based discounts across multiple products, with shareable customer-facing discount codes (covered on this page).
Compatibility
| Feature | Compatibility |
|---|---|
| Web SDK | ✅ Supported |
| Web Purchase Links | ✅ Supported |
| Web Paywalls | ✅ Supported |
| Web Funnels | ✅ Supported |
| Redemption Links | ✅ Supported |
| Free trials | ❌ Cannot be combined (see beta limitations) |
| Introductory offers | ❌ Cannot be combined (see beta limitations) |
Beta limitations
The Discounts feature is currently in beta, and doesn't yet support the following:
- Free trials and introductory offers cannoy be combined with discounts, and are overridden any discount that's applied to the purchase. We recommend not combining free trials or introductory offers with discounts during this period.
- Entering discount codes in the Web Billing checkout (coming soon)
- Support for fixed amount discounts (as an alternative to percentage-based discounts)
Creating discounts
In the RevenueCat dashboard
To create a discount, go to the Web overview in your RevenueCat dashboard, and choose Create discount, then complete the following fields:
- Name: The customer-facing name for the discount. This is presented in the checkout, on invoices and anywhere else the discount is represented.
- Identifier: Internal-only field, used to identify discounts in the dashboard
- Percentage: The percentage amount to discount the price by (can by anything from 1% to 100%)
- Apply to: Limits the products that the discount can apply to. This can be used to make sure specific products cannot be discounted, or specific discounts can only apply to certain products.
- Duration: Choose between Once (the discount applies only to the initial purchase), Multiple months (applies to every invoice created within a fixed number of months), Forever (applies indefinitely).
- Eligible customers: Choose whether the discount should apply to everyone, or only customers who didn't yet make a purchase or have a subscription.
- Codes: Add one or more customer-facing codes that can be used to redeem the discount (see Discount codes).
Customer eligibility can't be checked when using Redemption Links to handle anonymous purchases. If it's important to restrict eligibility for discounts, your purchases should use identified app user IDs, which allow us to assess the purchase history for a user.
In the RevenueCat API
You can create and manage discounts and discount codes via the RevenueCat API. See the API documentation.
Discount codes
Discount codes are individual codes (e.g. BLACKFRIDAY20) that your customers can use to redeem a given discount. You can distribute them by:
- Linking directly to a checkout with a code pre-applied (e.g. from an email campaign)
- Sharing the code and asking users to enter it in the checkout (e.g. through a video or podcast campaign)
A discount code can be used to redeem a discount in a number of ways:
- By including a discount code as a URL parameter when linking to the checkout
- By providing a discount code when initializing a purchase in the Web SDK
- By having users enter the discount code in the checkout (coming soon)
Discount code benefits
Discount codes can be useful because they give you control over the distribution of discounts (each code can be independently disabled). This means that if a specific code leaks or is shared more widely than you'd like, you can prevent further use.
They can also be used to segment reporting. For example, different partners in a campaign can have unique discount codes, allowing you to report on revenue and other metrics per partner.
Using a discount
Once you've created a discount, you can apply it to a customer's purchase in one of the following ways:
Applying a discount in a web purchase link via URL parameter
Prerequisites:
- A configured web purchase link (see web purchase links)
- A configured discount which applies to one or more of the products in your offering
- A discount code for your chosen discount
Steps:
- Go to the Web overview page for your project, in the RevenueCat dashboard
- Select the web purchase link
- Click Share URL, and copy either the sandbox URL (for testing) or production URL (for customer use)
- append
?discount_code=<YOUR_CODE>to the copied URL
When loading the URL with the discount code specified, any relevant discounts will be reflected in the package selection and checkout pages for a given product.
Discounting logic and subscriptions
When a discount is applied to a subscription, it applies for a specific duration, starting from its redemption. The duration of a discount is independent from a subscription's cycle.
A discount applies to every invoice (and charge) created during its active period. There is no proration or consideration of the subscription cycle in the discounting logic.
For example:
- You create a 50% discount with a 3-month Duration
- When applied to a monthly subscription product: the first 3 monthly payments are discounted by 50%
- When applied to a yearly subscription product: the initial payment is discounted by 50%, and there are no further discounted charges. This effectively discounts the first year by 50%.
It can be a good idea to create discounts that are aligned with your products' billing cycle, to avoid confusing behavior when discounts are applied across different products.
If you want a way of discounting that's truly connected to a product's billing cycle, Introductory Offers support this, and are configured as part of web products' pricing.