Free trials

When using the Stripe integration, you can set up a free trial on either the PRODUCT level or the SUBSCRIPTION level. In most scenarios, it makes sense to create the free trial on the product when the customer who arrives at checkout has not been created in Stripe yet. On the other hand, when you have an existing customer profile already in Stripe, you can create a free trial on a subscription that is unique to that customer.

To recap:

  • Scenario 1: Customer does not yet exist in Stripe -> can only set the free trial on the product in Loop as described below

  • Scenario 2: Customer already exists in Stripe -> can set the free trial on the product or subscription

Scenario 1: Setting up a free trial on the PRODUCT

Step-by-step guide to setting up a free trial on the product

Here are the steps to creating a product with a free trial.


  1. Create a product in Stripe. You can also use one of your existing products. Note that you cannot add free trial days to a product directly in Stripe.

  2. Head back to Loop's Company Dashboard. Navigate to the Subscriptions page on the dashboard.

  3. Click the three dots next to the product you want to add a free trial to. This will allow you to edit the product.

  1. Once the edit screen opens, update the field called Free Trial Days with the number of days you would like to give the customer for free. Then click Save.

  2. When you click on the product name and open the checkout link, you will see the free trial days have been added and will be shown as part of the cart.

Scenarion 2: Setting free trial days per Subscription

A subscription represents a specific customer’s association with a product. Thus, you can set a free trial for a given customer.


  1. Create a subscription in Stripe

Here are Stripe’s directions. You can specify the free trial days when creating the subscription.

  1. Make sure the existing subscription should have collection_method: "send_invoice" and days_until_due: 0.

If the collection_method is set to the default value, "charge_automatically", then Stripe will attempt to charge any fiat payment method for each invoice after the subscription is created. This creates a risk of double-charging the customer with both crypto and fiat payments for an invoice, which can be avoided by setting the collection_method to "send_invoice"

  1. Send the customer the checkout link with the sub_id passed in. This is the same as linking Loop to an existing subscription

Loop's format is:<entity ID>/<item ID>?sub=<stripeSubscriptionId>

The subscription ID can be found customers -> select the customer -> select the subscription -> subscription details.

  • e.g. sub_1N4pReEsKlmFX3FHH40hJAC5

Alternatively, if you are using the embedded checkout widget instead of the hosted checkout page, you should set externalSubscriptionId and use the ID of the existing subscription in Stripe when initializing the checkout.

Getting paid

When the end-customer signs up through either method, Stripe will generate an invoice of $0 immediately and mark it as paid. The next invoice will be generated for the full amount due after the trial days have elapsed and be brought into Loop for on-chain billing. You will see the draft transfer request on the company dashboard with this billing date.

Last updated