> ## 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.

# BillingPlan Data Members

The following tables list and describe the data members of the `BillingPlan` object and its subobjects.

| Data Members | Data Type | Description |
| - | - | - |
| `billingStatement Identifier` | string | The transaction description on the customer’s billing statement from the bank when the customer is charged through this `BillingPlan` object. This field’s value and its format are constrained by your payment processor; consult with Vindicia Client Services before setting the value. If GlobalCollect, MeS, Chase Paymentech or Litle is your payment processor, see Custom Billing Statement Identifier Requirements in the Subscribe Programming Guide. |
| `brTaxCategory` | string | The Brazilian tax category for this item. |
| `cancelFees` | BillingPlanCancelFee | List of early cancellation fees for various currencies.See the [BillingPlanCancelFee Subobject](BillingPlanCancelFee_Sub). |
| `daysBeforeSeasonToBill` | int | If the Billing Period set repeats for multiple Seasons, this value defines the number of days before the Season begins that the Account should be billed. (Default is 0.) |
| `DaysEntitledAfterSeason` | int | Defines the number of days after a Season ends that Entitlements will remain Active. |
| `daysEntitledBeforeSeason` | int | Defines the number of days before the Season begins that Entitlements will become Active. |
| `description` | string | Your description of the Billing Plan. |
| `endOfLifeTimestamp` | `dateTime` | **Optional.** A time stamp that specifies the expiration date for this `BillingPlan` object. This value is for your information only, and does not affect Subscribe operations. |
| `entitledOffSeason` | Boolean | A Boolean flag that, if set to `true`, sets Entitlements to remain Active in the off-season. (Default is `false`.) |
| `entitlementsValidFor` | string | The length of time for which Entitlements are valid after the last Billing date. |
| `gracePeriodOverride` | int | Number of days after the billing date when, if payment is not received, the AutoBill is stopped and the customer is disentitled; overrides the global merchant default setting, if both are set. |
| `merchantBillingPlanId` | string | Your unique identifier for this `BillingPlan` object. This value enables you to look up a `BillingPlan` object with the `fetchByMerchantBillingPlanId` method. Reference the plan with this ID when making a call that requires you to specify a billing plan. **Note:** use of the forward slash character (/) in merchant identifiers is not allowed. See [Merchant Identifiers](Merchant_Identifiers) for more information. |
| `merchantEntitlementIds` | `MerchantEntitlementId[]` | ID and description of the entitlement, specified by you: - *id*—Unique, merchant-defined ID of this entitlement. Free-form string of 1024 or fewer bytes. - *description*—Merchant-defined description of tis entitlement. Free-form string of 1024 or fewer bytes. These IDs have special meaning in your application. For example, your application might contain logic such that the `Gold Access` ID enables a customer to access certain special features of your service. Subscribe returns these IDs to you inside `Entitlement` objects along with the dates till which they are considered valid for a given customer. |
| `minimumCommitment` | int | Number of billing cycles the customer is contractually obligated to complete without possibly incurring a cancellation fee. This setting is referenced by `AutoBill.cancel()`, which requires that the force flag be set to True to succeed if the minimum commitment has not been satisfied. |
| `nameValues` | `NameValuePair[]` | **Optional.** An array of name–value pairs, each of which enables you to include `BillingPlan` information other than that in the `description` field. See [The NameValuePair Object](The_NameValuePair_Object). |
| `periods` | `BillingPlanPeriod[]` | An array of items that describe the billing plan. The `AutoBill` object uses this array sequentially for actual billing transactions, enabling the creation of complex billing plans in numerous currencies, for example, one free month, followed by three months at $9.99/month, and then 12 months for $15.99/month. A Billing Plan can define a free trial period, followed by a monthly subscription service; or it can define a Seasonal Billing Plan whereby a customer is billed only during the Season to which they are subscribed. See the [BillingPlanPeriod Subobject](BillingPlanPeriod_Subobj). |
| `prenotifyDays` | int | **Optional.** The number of days before an `AutoBill` object’s billing date to notify yourself or the customer of an impending billing. |
| `repeatEvery` | string | If a Billing Period set repeats, this value defines the length of time after the first billing that the set should repeat. |
| `seasonSet` | `SeasonSet` | The `SeasonSet` to which the Billing Plan applies. (May be `null`.) See [SeasonSet Data Members](SeasonSet_Data_Members). |
| `skipInitialFree WhenRepeating` | Boolean | A Boolean flag that, if set to `true`, excludes initial free periods when repeating a Billing Period set. (Default is `true`.) |
| `status` | `BillingPlanStatus` | An enumerated string value that describes the current state of the `BillingPlan` object. This value is for your information only, and does not affect Subscribe operations. See the [BillingPlanStatus Subobject](BillingPlanStatus_Subobj). |
| `taxClassification` | string | A string that defines your tax classification for this BillinPlan. A null value in this field causes Subscribe to use the tax classification associated with the primary Product of the AutoBill unless over-ridden by configuration in an external tax service (for example, Avalara). If you put a dash (–) in this field, no tax classification is sent to the tax service and Subscribe reverts to the default behavior configured in your tax service. |
| `timesToRun` | string | The number of times the sequence of Billing Periods should be repeated. Valid input includes positive integers, or “unlimited.” (Default is `null`.) |
| `VID` | string | Vindicia's Globally Unique Identifier (GUID) for this object. When creating a new `BillingPlan` object, leave this field blank; it will be automatically populated by Subscribe. |
| **Parent topic:**[The BillingPlan Object](../topics/The_BillingPlan_Object) | | |


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