Choose between a multi-phase Stripe subscription schedule and a legacy first-period discount on a normal subscription.
Open Plans & Prices, find the recurring Stripe price, and select its edit (pencil) icon. The price settings show one of two mutually exclusive ways to configure the beginning of a subscription.
| Introductory offers & Trials | Subscription trials | |
|---|---|---|
| Stripe billing model | Subscription Schedule with phases | Normal Subscription with a Coupon |
| Best for | Up to two opening phase rows, with an optional free trial in the first row | A free trial or discounted first period on the normal billing cycle |
| Checkout | Stripe Checkout Form | Stripe Checkout Form or Stripe Embedded Form |
| Additional currencies | Configure an amount for each currency in every phase | Not available with legacy paid-trial fields |
These settings cannot be combined on one web2wave Price. If the legacy Free/Paid trial fields contain values, the phases card is replaced by Subscription trials phases are not available with Free/Paid trial settings below.
Configure both options in the web2wave price settings. Do not add the trial or introductory offer to the Stripe Product or Price itself.
Introductory offers & Trials (Stripe Subscription Schedules)
Use Introductory offers & Trials when the subscription needs a sequence of temporary prices or billing periods before it reaches the regular recurring price.
For example:
3 days free → $2 for 4 days → $8.99 per month until canceled
At checkout, web2wave creates a Stripe Subscription Schedule. Stripe moves the subscription through the introductory phases in order. After the last introductory phase, Stripe releases it as a normal subscription at the regular price.
Configure the phases
- Make sure Free trial days, Paid trial discounted price, and Paid trial periods with discount in Subscription trials are empty.
- In Introductory offers & Trials, select Add trial phase.
- Configure the first introductory row:
- Free trial days — optional and available only in the first row.
- Period — choose Day, Month, or Year and enter the length.
- Amount — enter the price for this phase. If the Price has additional currencies, enter an amount for each currency.
- Add a second introductory phase if needed.
- Review the final Until canceled row. It always uses the Price's regular amount and billing period.
- Save the Price.
Screenshot: Plans & Prices → price settings → Introductory offers & Trials → Add trial phase.
Limits and charges
- A Price can have up to two introductory phases, followed by the regular Until canceled row.
- Each introductory phase must be no longer than the main billing period. The limit applies to each phase separately, not to their combined duration.
- A phase amount can be zero or at least 0.50 in the selected currency.
- If a phase is cheaper than the regular price, Stripe applies a one-time percentage discount for that phase.
- If a phase is more expensive than the regular price, Stripe charges the regular price plus the difference for that phase.
Add the scheduled Price to a paywall
- Open the paywall that should use the scheduled Price.
- Add the Price to that paywall.
- Add or select the Stripe Checkout Form on the checkout screen or popup.
- Show every phase amount and duration in the paywall copy, including the regular Until canceled price.
- Preview the paywall and complete a test purchase before publishing.
Screenshot: Paywall editor → checkout screen or popup → Stripe Checkout Form with a scheduled Price.
The Stripe Embedded Form does not attach the Subscription Schedule. A customer who pays through the Embedded Form will not receive the configured phases.
First-period discount (Stripe Coupon on a normal Subscription)
Use the legacy Subscription trials settings for a free trial or a discounted opening period on an otherwise normal recurring subscription.
This section appears when the Price is recurring and has no rows in Introductory offers & Trials.
Configure a legacy trial or discount
- Make sure the Price has no introductory phase rows.
- Under Subscription trials, configure the fields you need:
- Free trial days — delay the first charge.
- Paid trial discounted price — set the discounted amount.
- Paid trial periods with discount — set how many discounted periods should apply.
- Save the Price.
- Add the Price to the paywall and use either the Stripe Checkout Form or Stripe Embedded Form.
- Preview the paywall and complete a test purchase before publishing.
Screenshot: Plans & Prices → price settings → Subscription trials → Free trial days, Paid trial discounted price, and Paid trial periods with discount.
Legacy paid-trial fields cannot be used with Additional Currencies.
How the discount duration works
- If Paid trial periods with discount is 1 or less, Stripe applies the Coupon once.
- If it is greater than 1, Stripe treats the entered number as months, regardless of the Price's billing period.
For example, entering 2 periods on a weekly Price creates a discount that repeats for 2 months, not 2 weeks. Use Introductory offers & Trials instead when the discounted duration must follow a weekly or other non-monthly period precisely.
Checkout and promotion-code compatibility
The Stripe Embedded Form supports this legacy free-trial and Coupon setup, but it does not support Subscription Schedules.
Stripe promotion-code flows documented for the Embedded Form have the opposite checkout requirement from Subscription Schedules. If the checkout must use the Embedded Form for promotion codes, use the legacy first-period discount or redesign the offer; the phases from Introductory offers & Trials will not be attached.
Create variants with Duplicate and lookup_key
You can create several web2wave offer variants from one imported Stripe Price:
- Import the Stripe Price once.
- In Plans & Prices, select Duplicate on the web2wave Price row.
- Configure different introductory phases on each duplicate.
- Add each duplicate to the paywall that should show that offer.
The duplicates keep the same Stripe External ID and External code (lookup_key). This lets different paywalls use different web2wave phase configurations without creating another Stripe Price.
Additional currencies belong to the shared Stripe Price. Saving additional-currency changes on one duplicate updates that Stripe Price for every web2wave duplicate with the same External ID.
Screenshot: Plans & Prices list → one imported Stripe Price and duplicated web2wave rows sharing External ID and External code (lookup_key).
Customer Portal
Subscriptions created with schedules or legacy trial pricing must use the web2wave Customer Portal. Do not send these customers to the native Stripe Customer Portal.