Trials are normally used to offer customers the opportunity to test products, free of charge, for a limited number of days. They can be a great tool to help convert free customers into paying customers.

Free Trials

You can enable free trials for a subscription plan in the Paddle dashboard either when creating the plan, or by editing an existing plan (if there are no subscribers on it).

By default when you enable the trial feature on a subscription plan it will be a free trial. At the end of the trial period, we will automatically charge the payment method the customer provided on signup.

Subscriptions with a trial period will require the customer to provide payment details at the checkout. To offer a non-card-present trial, simply manage the trial period in your platform and prompt the customer to complete the checkout when the trial expires.

Paid Trials

If you wish to charge for the trial you can do so by overriding the initial checkout price.

You can do this by generating a unique checkout URL using the Pay Link API, passing in prices to override the initial payment.

For example, let’s say you want to create a $50 monthly subscription plan with a trial period of 10 days and charge $9.99 for that trial period.

$data['vendor_id'] = 1234567;
	$data['vendor_auth_code'] = '456bd...';
	$data['product_id'] = 12345;
    $data['prices'] = ['USD:9.99'];
	$data['custom_message'] = '100% Money Back Guarantee!';
	$data['return_url'] = '';
// Here we make the request to the Paddle API
	$url = '';
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
	$response = curl_exec($ch);		

// And handle the response...
	$data = json_decode($response);	
	if($data->success) {
      echo "Success! Checkout URL:".$data->response->url;
	else {
      echo "Your request failed with error: ".$data->error->message;

Looking for information on desktop software trials? See our SDK documentation.