Skip to content

Commit f39bf9a

Browse files
MrEdwardoantoniobg
andauthored
Documentation for new introductory offers feature (#1031)
* Small restructure for product configuration doc * Update product-setup page with intro pricing & fixes * Update docs/web/web-billing/product-setup.md Co-authored-by: Antonio Borrero Granell <[email protected]> * add info about accelerated testing schedules * fix feature name error * add beta warning * document intro offer expiry emails --------- Co-authored-by: Antonio Borrero Granell <[email protected]>
1 parent e102c2d commit f39bf9a

File tree

6 files changed

+156
-44
lines changed

6 files changed

+156
-44
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Configure Web Billing
3+
slug: configuring-overview
4+
excerpt: Setting up your web purchases using Web Billing
5+
hidden: false
6+
---
7+
8+
If you use Web Billing to power web purchases for your app, most aspects of billing are configured within the RevenueCat Dashboard.
9+
10+
The guides in this section walk you through the following:
11+
12+
- [Configuring your products and prices](product-setup)
13+
- [Customizing the appearance of the purchase flow](customization)
14+
- [Understanding the subscription lifecycle and how failed payments are handled](subscription-lifecycle)
15+
- [Configuring additional payment methods such as Google Pay & Apple Pay](payment-methods)
16+
- [Configuring multiple currencies for customers globally](multi-currency-support)
17+
- [Localizing the experience for customers with different languages](localization)
18+
- [Setting up anonymous purchases with mobile redemption, using Redemption Links](redemption-links)
19+
- [Collecting sales taax & VAT in your purchases with Stripe Tax support](tax)
20+
- [Passing custom metadata to tag and attribute purchases](custom-metadata)

docs/web/web-billing/lifecycle-emails.mdx

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,27 @@ Two lifecycle emails can be enabled to comply with the latest (as of July 1st, 2
3333

3434
1. Upcoming renewal notifications for yearly subscriptions
3535
1. Upcoming free trial expiry notifications for trials longer than 1 month
36+
1. Upcoming introductory offer expiry notifications for intro periods longer than 1 month
3637

3738
Read more: [Legal ruling](https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?lawCode=BPC&division=7.&title=&part=3.&chapter=1.&article=9.), [explanation](https://www.arnoldporter.com/en/perspectives/advisories/2025/01/new-california-requirements-for-subscriptions-in-2025)
3839

3940
## All emails, triggers, and calls to action
4041

4142
You can find a complete list of customer emails below, in addition to the triggers that are used to send them.
4243

43-
| Email | Trigger | Call to action |
44-
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
45-
| Free trial start | The customer started a free trial | n/a |
46-
| Initial purchase | The customer made a successful purchase (either a subscription or one-time purchase) | Redeem purchase (when [Redemption Links](/web/web-billing/redemption-links) enabled) |
47-
| Redemption link refresh | The customer attempted to use an expired redemption link, so a new one was sent to them | Redeem purchase (when [Redemption Links](/web/web-billing/redemption-links) enabled) |
48-
| Customer portal login | The customer initiated access to the [customer portal](/web/web-billing/customer-portal) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
49-
| Subscription renewal | The customer's subscription automatically renewed at the end of their billing period | n/a |
50-
| Failed payment | A renewal payment failed (after several retries) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
51-
| Subscription cancelation | The customer canceled their subscription | Renew subscription in [customer portal](/web/web-billing/customer-portal) |
52-
| Subscription renewed (after cancelation) | The customer renewed their subscription after previously canceling, before it expired | n/a |
53-
| Subscription expiry | The customer's subscription expired and will not be renewed | n/a |
54-
| Chargeback detected | RevenueCat detected a chargeback from the customer, and the subscription was immediately canceled as a result | n/a |
55-
| Refund issued | A refund was issued to the customer | n/a |
56-
| \[optional\] Upcoming yearly subscription renewal | A yearly subscription is soon to renew (must be enabled in dashboard, see [above](#optional-lifecycle-emails-for-auto-renewing-subscriptions)) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
57-
| \[optional\] Upcoming free trial expiry | A free trial (longer than 1 month) is soon to expire (must be enabled in dashboard, see [above](#optional-lifecycle-emails-for-auto-renewing-subscriptions)) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
44+
| Email | Trigger | Call to action |
45+
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
46+
| Free trial start | The customer started a free trial | n/a |
47+
| Initial purchase | The customer made a successful purchase (either a subscription or one-time purchase) | Redeem purchase (when [Redemption Links](/web/web-billing/redemption-links) enabled) |
48+
| Redemption link refresh | The customer attempted to use an expired redemption link, so a new one was sent to them | Redeem purchase (when [Redemption Links](/web/web-billing/redemption-links) enabled) |
49+
| Customer portal login | The customer initiated access to the [customer portal](/web/web-billing/customer-portal) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
50+
| Subscription renewal | The customer's subscription automatically renewed at the end of their billing period | n/a |
51+
| Failed payment | A renewal payment failed (after several retries) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
52+
| Subscription cancelation | The customer canceled their subscription | Renew subscription in [customer portal](/web/web-billing/customer-portal) |
53+
| Subscription renewed (after cancelation) | The customer renewed their subscription after previously canceling, before it expired | n/a |
54+
| Subscription expiry | The customer's subscription expired and will not be renewed | n/a |
55+
| Chargeback detected | RevenueCat detected a chargeback from the customer, and the subscription was immediately canceled as a result | n/a |
56+
| Refund issued | A refund was issued to the customer | n/a |
57+
| \[optional\] Upcoming yearly subscription renewal | A yearly subscription is soon to renew (must be enabled in dashboard, see [above](#optional-lifecycle-emails-for-auto-renewing-subscriptions)) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
58+
| \[optional\] Upcoming free trial expiry | A free trial (longer than 1 month) is soon to expire (must be enabled in dashboard, see [above](#optional-lifecycle-emails-for-auto-renewing-subscriptions)) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |
59+
| \[optional\] Introductory offer expiry | An introductory offer (longer than 1 month) is soon to expire (must be enabled in dashboard, see [above](#optional-lifecycle-emails-for-auto-renewing-subscriptions)) | Manage subscription in [customer portal](/web/web-billing/customer-portal) |

docs/web/web-billing/product-setup.md

Lines changed: 111 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,120 @@
11
---
22
title: Configure Web Billing
33
slug: product-setup
4-
excerpt: Setting up your web purchases using Web Billing
4+
excerpt: Setting up your web products and pricing structure
55
hidden: false
66
---
77

8-
To create a new Web Billing (formerly RevenueCat Billing) product, open the RevenueCat dashboard, go to your project's settings, and under "Products" click on "New", and then select your Web Billing App:
8+
## Creating a new web billing product
9+
10+
To create a new Web Billing product, log in to the RevenueCat dashboard.
11+
12+
1. Go to the **Product catalog**
13+
1. Select the **Products** tab
14+
1. Find your web billing config, and click **+ New**:
915

1016
![New product button in the products screen](/docs_images/web/web-billing/new-product.png)
1117

12-
In the "new product" screen, you can set up the following properties of the product:
13-
14-
- **Identifier**: A unique ID for the Product, accessible from the SDK, events, etc. Can contain up to 100 alphanumeric characters, dots, or underlines.
15-
- **Title**: Customer-facing title of the Product. Will be shown in the checkout form and on invoices.
16-
- **Description**: Customer-facing description of the Product. Available from the Web SDK, eg. to show on your paywall.
17-
- **Display name**: An optional human readable name for the Product, will be shown on the dashboard instead of the identifier.
18-
- **Product type**: The type of product being sold:
19-
- _Auto-renewing subscription_: A recurring subscription purchase, that continues on a given interval until canceled.
20-
- _Consumable_: A non-recurring purchase that can be purchased one or more times (repeated).
21-
- _Non-consumable_: A non-recurring purchase that can only be purchased once.
22-
- **Duration**: The billing cycle (period length) of the subscription. _See [Sandbox testing](/web/web-billing/web-sdk#renewals-in-sandbox) for more information about durations in sandbox mode._
23-
- **Free trial period**: The duration of a free trial. _See [Sandbox testing](/web/web-billing/web-sdk/#renewals-in-sandbox) for more information about durations in sandbox mode._
24-
- **Trial eligibility**: Which customers have access to the free trial:
25-
- _Everyone_: Every customer will start a subscription to this product with a trial, even if they had a trial before. _Please note:_ If you choose this option, it means that customers could continuously cancel their trial and start another trial to keep getting free access.
26-
- _Has never made any purchase_: Only customers that have never made any purchase in this Project (including non-subscription purchases and purchases in other Apps of this project) are eligible for a trial.
27-
- _Didn't have any subscription yet_: Only customers that have never had any subscription in this Project (including in other Apps of the project) are eligible for a trial.
28-
- _Didn't have this subscription yet_: Only customers that have never subscribed to this product are eligible for a trial.
29-
- **Grace period**: Length of the subscription access retention after a billing issue. _See [Sandbox testing](/web/web-billing/web-sdk#renewals-in-sandbox) for more information about durations in sandbox mode._
30-
- **Price**: The price that will be charged for every period of the subscription in each currency. You can add prices in additional currencies by clicking "Add price". Only one price can be set per currency. [Read more about multi-currency support in Web Billing](/web/web-billing/multi-currency-support).
31-
32-
![New product configuration page](/docs_images/web/web-billing/new-product-configuration.png)
18+
## Configuring the product
19+
20+
In the "new product" screen, you can set up the following aspects of the product:
21+
22+
#### Identifier
23+
24+
A unique ID for the Product, accessible from the SDK, events, etc. Can contain up to 100 alphanumeric characters, dots, or underscores.
25+
26+
#### Display name
27+
28+
An optional human readable name for the Product, will be shown on the dashboard instead of the identifier.
29+
30+
#### Name
31+
32+
The customer-facing name of the Product. Will be shown in the checkout form and on invoices.
33+
34+
#### Description
35+
36+
The customer-facing description of the Product. Available from the Web SDK, eg. to show on your paywall.
37+
38+
#### Product type
39+
40+
The type of product being sold:
41+
42+
- _Auto-renewing subscription_: A recurring subscription purchase, that continues on a given interval until canceled.
43+
- _Consumable_: A non-recurring purchase that can be purchased one or more times (repeated).
44+
- _Non-consumable_: A non-recurring purchase that can only be purchased once.
45+
46+
#### Duration
47+
48+
The base billing cycle (period length) of the subscription.
49+
50+
:::info Accelerated billing cycles in sandbox
51+
In sandbox mode, billing cycles are accelerated to enable easier testing. See [Sandbox testing](/web/web-billing/testing#subscription-schedules-in-sandbox) for more information.
52+
:::
53+
54+
#### Free trial
55+
56+
Check this to enable a free trial period, and choose the duration.
57+
58+
:::info Accelerated trial periods in sandbox
59+
In sandbox mode, free trial periods are accelerated to enable easier testing. See [Sandbox testing](/web/web-billing/testing#subscription-schedules-in-sandbox) for more information.
60+
:::
61+
62+
#### Introductory period
63+
64+
:::warning Beta feature
65+
66+
This feature is currently available as an invite-only beta. If you're interested in getting early access, [let us know](https://form.typeform.com/to/Z7x5tQ5N)!
67+
68+
:::
69+
70+
Applies a discounted price for a limited time at the beginning of a subscription (AKA introductory offer). Introductory periods are presented to customers in the product selection page (for web purchase links) and the checkout. They automatically renew to the base subscription price at the end of the period.
71+
72+
Introductory periods are always scheduled after a free trial, when both are enabled.
73+
74+
You can configure:
75+
76+
1. **Introductory period length:** How long the discounted price will apply for
77+
1. **Introductory billing cycle:** Whether customers pay upfront for the entire introductory period, or pay in multiple cycles (e.g. monthly renewals)
78+
79+
You can define introductory prices per-currency in the pricing table (see [prices](#prices)).
80+
81+
:::info Billing cycle options
82+
83+
The available billing cycles for introductory periods depend on the length of the intro period you've selected. For some lengths, only "paid upfront" is available.
84+
85+
:::
86+
87+
:::info Accelerated introductory periods in sandbox
88+
In sandbox mode, introductory periods are set at 5 mins, regardless of configured length, to enable easier testing. See [Sandbox testing](/web/web-billing/testing#subscription-schedules-in-sandbox) for more information.
89+
:::
90+
91+
#### Trial / introductory period eligibility
92+
93+
Defines which customers have access to the free trial or introductory period:
94+
95+
- _Everyone_: Every customer will start a subscription to this product with a trial, even if they had a trial before. _Please note:_ If you choose this option, it means that customers could continuously cancel their trial and start another trial to keep getting free access.
96+
- _Has never made any purchase_: Only customers that have never made any purchase in this Project (including non-subscription purchases and purchases in other Apps of this project) are eligible for a trial.
97+
- _Didn't have any subscription yet_: Only customers that have never had any subscription in this Project (including in other Apps of the project) are eligible for a trial.
98+
- _Didn't have this subscription yet_: Only customers that have never subscribed to this product are eligible for a trial.
99+
100+
:::info Eligibility for anonymous purchases
101+
If you're using [Redemption Links](redemption-links) to enable anonymous purchases, it's not possible to assess the eligibility of a customer when they land on your purchase flow, because they're anonymous. If strict eligibility is important to you, we recommend passing App User IDs to the purchase flow so that eligbility can be checked.
102+
:::
103+
104+
#### Grace period for billing issues
105+
106+
The length of the subscription access retention after a billing issue. _See [Sandbox testing](/web/web-billing/testing#subscription-schedules-in-sandbox) for more information about durations in sandbox mode._
107+
108+
#### Prices
109+
110+
The price that will be charged for each period of the subscription, for each currency.
111+
112+
You can add prices in additional currencies by clicking "Add new currency", and filling in the price fields.
113+
114+
Only one base price can be set per currency. [Read more about multi-currency support in Web Billing](/web/web-billing/multi-currency-support).
115+
116+
![Pricing table](/docs_images/web/web-billing/pricing-table.png)
117+
118+
:::warning Changing prices not currently possible
119+
Once you've saved the product, it's only possible to add prices for new currencies, and not edit existing ones. If you need to change pricing, we recommend you create a new product with the desired pricing, and replace the existing product in your offering. We're working on fully supporting pricing changes and migrations in the future.
120+
:::

0 commit comments

Comments
 (0)