---
page_title: Setting up Introductory Days / Cycle
product: Juspay Billing
page_source: https://juspay.io/in/docs/juspay-billing/docs/billing/setting-up-introductory-days-cycle
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/juspay-billing/llms.txt
---


# Introductory Period Setup



Juspay Billing supports three methods for configuring an introductory period on a subscription plan. The right method depends on whether the introductory terms are fixed at the plan level or determined dynamically at registration time.


## Comparison




| Method | Configured At | Best For | Flexibility |
|---|---|---|---|
| **Billing start date** | Registration (Order API) | Trials that vary per customer or campaign | Runtime — different per registration |
| **Fixed introductory days** | Plan definition | Plans with a standard trial period (e.g., always 14 days free) | Static — same for all subscribers on this plan |
| **Introductory cycles** | Plan definition | Plans with a free or discounted first cycle before moving to full price | Static — same for all subscribers on this plan |


> **Warning**
> **Do not combine methods.**  Configuring introductory days or cycles on a plan while also  passing `billing_start_date` at registration will result in unintended billing behaviour. Pick one method per plan.




## Method 1: Dynamic Billing Start Date



Set the billing start date at the time of registration. The period between registration and `billing_start_date` is the introductory window. This approach requires no introductory 

configuration on the plan itself.

**When to use:**  The introductory period varies by customer — for example, different trial lengths for different acquisition channels, promotional campaigns, or cohort-based onboarding.


### Plan Configuration



No introductory fields. Create a standard plan with only the recurring billing parameters.


### Registration



Pass `billing_start_date` as a Unix timestamp inside `payment_rules` at the time of Order creation. See snippet  for the full API  reference.


#### json Code Snippet:

```json
{
  "payment_flows": {
    "billing_creation": {
      "status": "REQUIRED",
      "info": {
        "plan_id": "<plan_id>",
        "plan_amount": 99,
        "billing_start_date": 1780308387
      }
    }
  }
}

```


![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/juspay-billing/dynamic%20start%20date.png)
*Dynamic Start Date*



---


## Method 2: Fixed Introductory Days



Configure a fixed number of introductory days directly on the plan. Every customer who subscribes to this plan receives the same introductory window automatically — no additional parameters are needed at registration time.

**When to use:**  The trial period is uniform for all subscribers on this plan — for example, all customers always get 30 free days before the first billing cycle begins.


### Plan Configuration



Set the `introductory_days` field when creating or updating the plan.


| Field | Type | Description |
|---|---|---|
| `introductory_days` | number | Number of days from registration before the first billing cycle starts |



### Registration



No additional parameters required. Create the subscription order normally — the introductory period is applied automatically based on the plan definition.

![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/juspay-billing/Fixed%20Days.png)
*Fixed Days*




## Method 3: Introductory Cycles



Configure one or more introductory cycles on the plan with a different amount — either free 

(`0`) or a discounted price — before the subscription moves to the standard recurring amount. 

This is useful for "first month free" or "first cycle at half price" pricing models.

**When to use:**  The introductory offer is tied to a billing cycle boundary — for example, the first cycle is free or discounted, after which the customer is automatically moved to full price.


### Plan Configuration



Set the `introductory_cycles` and `introductory_amount` fields when creating or updating the plan.


| Field | Type | Description |
|---|---|---|
| `introductory_cycles` | number | Number of cycles to apply the introductory amount |
| `introductory_amount` | number | Amount to charge for each introductory cycle. Set to 0 for a free period |



### Registration



No additional parameters required. Create the subscription order normally — the introductory pricing is applied automatically for the configured number of cycles.

![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/juspay-billing/Introductory%20Cycles.png)
*Introductory Cycles*



## Sample Code Snippets:
### Request:

#### Session Request for Dynamic Plan Start Date Code Snippet:

```session request for dynamic plan start date
curl --location 'http://api.juspay.in/session' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Basic Auth>' \
--data '{
    "order_id": "1776938997",
    "amount": "1.0",
    "customer_id": "cth_rPj21roNSjEbumSy",
    "payment_page_client_id": "client_id",
    "action": "paymentPage",
    "return_url": "https://api.juspay.in",
    "description": "Complete your payment",
    "first_name": "John",
    "last_name": "Wick",
    "options.get_upi_deep_links": true,
    "options.create_mandate": "REQUIRED",
    "mandate_max_amount": "100",
    "metadata.auto_refund_post_success": "true",
    "payment_rules": "{\"payment_flows\":{\"billing_creation\":{\"status\":\"REQUIRED\",\"info\":{\"plan_id\":\"test02\",\"billing_start_date\":\"1780308387\",\"plan_amount\":14}}}}"
}'
```

#### Order Request for Dynamic Plan Start Date Code Snippet:

```order request for dynamic plan start date
curl --location 'http://api.juspay.in/ecr/orders' \
--header 'version: 2018-07-01' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Basic Auth>' \
--data '{
    "order_id": "1776938997",
    "amount": "1",
    "currency": "INR",
    "customer_id": "cth_rPj21roNSjEbumSy",
    "options.create_mandate": "REQUIRED",
    "mandate.max_amount": "100",
    "metadata.auto_refund_post_success": true,
    "payment_rules": "{\"payment_flows\":{\"billing_creation\":{\"status\":\"REQUIRED\",\"info\":{\"plan_id\":\"test02\",\"billing_start_date\":\"1780308387\",\"plan_amount\":14}}}}",
    "return_url": "https://api.juspay.in"
}'
```



---

## See Also

- [Update Scheduling Time](https://juspay.io/in/docs/juspay-billing/docs/billing/update-scheduling-time)
- [Test Page](https://juspay.io/in/docs/juspay-billing/docs/billing/test-page)
