Collapse Menu
Docs Home
Developer Tools
Contact Support

Subscriptions with Free Trials

Overview

How to set up, limit, and customize Free Trial Periods for Subscriptions

Configure subscription products to begin with an initial free trial period during which FastSpring does not charge the consumer. The subscription's first billing will take place the day after the end of the free trial period.

Set Up a Subscription with a Free Trial

  1. From the FastSpring App, select the Products menu, then the Subscriptions tab.
  2. Click the subscription you want to add a free trial to. The Details page appears.
  3. In the Pricing section, click Edit. The Edit Subscription Pricing popup opens.
  4. In the Subscription Type section of the popup, enter the number of days you want the free trial to last in the Free Trial Days field.
  5. Click Save at the bottom of the dialog. To configure other parts of the dialog, see Subscription Pricing.

Consumer Experience

Web Storefront

When a consumer visits your Web Storefront, subscription products with a free trial appear with a price of 0. However, consumer payment details are still collected for subscriptions with automatic renewals so FastSpring can charge them following the trial period. Click Subscription Terms under the price to expand details regarding the billing schedule. 


FastSpring does not charge the consumer immediately (provided there are no other items in the order). When the consumer selects a payment method, the button in the payment information dialog is labeled Save Payment Details rather than Pay $X.


The order completion page also displays a summary of the free transaction and the future charges, with a Subscription Terms link the consumer can click to see more details.

Popup Storefront

When a consumer places an order for a subscription with a free trial period, they are notified in the popup that they will not be charged that day. After the consumer fills out the information for future charges, the popup window reads “You have not been charged today” and saves the order information for future charges.

Manual Renewal Subscriptions

If you allow the consumer to create a Manual Renewal Subscription, no payment details are required. Consumers who do this are not prompted to enter any payment details in your Storefront. For FastSpring to be able to charge them for future subscriptions, they must log on to the Account Management page before the end of the free trial period and provide payment details.

Trial Reminders

FastSpring automatically emails a trial reminder to the consumer before charges occur. The timing of these is customizable in the Details page of each Subscription, under Edit Subscription Notifications & Cancellation. Here, you can adjust which reminders to send and when. The email notifications are completely customizable as well. See Consumer-Facing Emails for details. 

Limit Free Trial Sign-Ups

If you detect that a consumer has repeatedly signed up for the same free trial subscription, you can potentially determine the consumer and cancel their subsequent subscriptions. Note that this solution requires some degree of technical capabilities, including the use of Webhooks and FastSpring API.

Webhooks and the FastSpring API

If you subscribe to the subscription.activated Webhook event, FastSpring notifies you when a new subscription is activated. The subscription.activated event payload includes the consumer's account ID. FastSpring automatically creates new consumer accounts when an order is made from an email that is unaffiliated with previous store orders. When a consumer places an order with a previously-established email address, FastSpring automatically associates the new order with the same consumer account ID.

You can use the consumer account ID from subscription.activated to check for previous orders of the same free trial subscription product (by product ID).There are two ways to do this, depending on whether or not you automatically populate your own External Database from all Webhook data.

Option 1: Check Your External Database

If your Webhook script populates an external database each time new Webhook events come in, you can design to detect duplicate trial orders. Then, the script will react to subscription.activated events for a given free trial product by checking your database for previous orders of the same product bearing the same consumer account ID.

Option 2: Check Previous Orders with the API

Look up accounts by the parameters of it. To do this, Design your Webhook script to react to subscription.activated events for a given free trial product by triggering a GET request to the /accounts endpoint of the FastSpring API. The response will include a list of all orders associated with the consumer account. For example, if the account ID is ABCDEF123456: 

GET https://api.fastspring.com/accounts/ABCDEF123456

Then, call GET /orders once with all order IDs returned in response to GET /accounts, to find the products that the customer has previously ordered. For example, if GET /accounts returns the following three IDs in the orders array of the response:

  • NTjP8IMnQya1X9jxhXFiXQ
  • eShDqjTVS4SmroSANRnL8g
  • sE2PBBihSUKNX_vUxBfHww
GET https://api.fastspring.com/orders/NTjP8IMnQya1X9jxhXFiXQ,eShDqjTVS4SmroSANRnL8g,sE2PBBihSUKNX_vUxBfHww

Finally, you would parse the response to this GET /orders request, looking for previous orders with the same free trial subscription's product ID in the product field of each order's items array.

Manage Exploitation of Free Trial Periods

If a previous free trial subscription is found for the same customer, you can design your script to automatically trigger a Delete call to the /subscriptions endpoint of the FastSpring API. Your Delete request would include the new subscription's ID and the parameter &billingPeriod=0. The new free trial subscription would thus be deactivated immediately. For example, if the new subscription's ID is OU8128675309:

DELETE https://api.fastspring.com/subscriptions/OU8128675309?billingPeriod=0

By default, FastSpring sends a subscription deactivated email message to the customer upon deactivation of the subscription. However, you might also want your script to trigger a separate email message from your side, letting the customer know why you have canceled the subscription.

Free Trials with Product Discounts or Coupons

If you configure a product discount on a subscription with a free trial, the discount does not apply until the first billing after the free transaction. Below, the 25% discount applies the day after the free trial ends. The following billing on April 16, 2020 is full price.

Free Trials with a Fixed Number of Billings

If you configure a subscription with free trial days to have a fixed number of rebills, the initial transaction does not count as one of those rebills. The charge following the trial period will be the first rebill.

Product Discount Instead of Free Trial

To create a free trial period without using the Free Trial Days field, you can also apply a discount. In this case, if the subscription charge has a monthly charge interval, the first month is free. If the subscription’s charge interval is annual, the first year is free.

  1. Go to the Discount section of the Details page, and click Edit. 
  2. Select Use Volume Duration and place a 100% discount in the corresponding field. 
  3. Type 1 under Discount Duration to implement one trial period as the duration for the first billing period. If you type 2, the first two billing periods will be free.

The subscription's first billing date will be excluded from the order. If you configure your subscription to rebill for a fixed number of periods, the number of actual payments will be reduced by one (the very first transaction). For example, if your subscription is configured to rebill for 12 periods, including the initial transaction, the first transaction will be free, followed by 11 monthly billings.

When you use a product discount to make the initial subscription billing period free, you can optionally enter an explanation for the discount in the discount's Reason field, as pictured above. If a visitor to your Web Storefront clicks the Subscription terms link, this text appears as in the example below.