> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# BillingPlanPeriod Subobject

Describes a quantity of time and a set of prices to use for the `BillingPlan`.

| Data Members | Data Type | Description |
| - | - | - |
| `cycles` | int | The number of billing cycles that pertain to this billing period. Set the value to 0 to specify an infinite number of billing cycles; set it to 3 to use this billing-plan period three times in succession. |
| `doNotNotifyFirstBill` | Boolean | A Boolean flag that, if set to `true`, prevents the prenotification email message from being sent. Use this flag to prevent email notification for the first bill after a free trial, for which an expiration warning message has already been sent. |
| `expireWarningDays` | int | The number of days before the expiration of this billing period to send a warning by email. Subscribe sends the warning *X* number of days before the expiration date, where *X* is the value specified in this attribute. |
| `free` | Boolean | A Boolean flag that, if set to `true`, guarantees that Subscribe will not bill for the AutoBill’s Products, regardless of whether they are `added` or `included`. Subscribe will, however, bill for Charges explicitly added during the period. Note that setting this flag to `true` causes Subscribe to ignore any price defined elsewhere for the Billing Period, and set the period to `free`. |
| `prices` | `BillingPlanPrice[]` | The price of this billing period, in a specific currency or token type, but not both. The actual price for the transactions generated for the associated `AutoBill` object depends on the price picked from this array that matches the currency on `AutoBill`. See the [BillingPlanPrice Subobject](BillingPlanPrice_Subobje). |
| `quantity` | int | The number of units of the billing period `type` to count as a single billing period. For example, for a biweekly billing cycle, set this value to 2 and `BillingPlanPeriodType` to `Week`. (Default is 1.) |
| `type` | `BillingPlanPeriodType` | An enumerated string that specifies the unit (day, week, month, or year) for the duration of the billing period. **Note:** For rolling promotion campaigns spanning multiple billing periods, the billing terms must be homogeneous. You cannot offer a rolling campaign if the Billing Plan has varied term lengths. Free cycles are ignored. See the [BillingPlanPeriodType Subobject](BillingPlanPeriodType_Su). |
| **Parent topic:**[BillingPlan Subobjects](../topics/BillingPlan_Subobjects) | | |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.