The products available in a subscription are referred to as the subscription products. These products can be mandatory, included by default or optional. Subscription products make up the billable entities of a subscription and together the sum of the charges for each included subscription product makes up the total amount charged for the subscription.
At the subscription product level you can make many changes applicable only to the customer who owns the subscription. For example, subscription product pricing can be overridden, names and descriptions can be added/overridden, quantities can be added/removed, subscription products can be included and un-included, subscription products can be scheduled for activation and can be expired.
Subscription Product Object Fields
Property | Type | Description |
---|---|---|
subscriptionId | Integer | This is the Fusebill generated ID of the subscription this subscription product belongs to. [Read Only] |
planProduct | Object. For details see Catalog: Plan Product | This object has most of the fields of the plan product object of which this subscription product is an instance. Excluded fields are the default custom fields and default price uplifts. |
quantity | Decimal | This is the number of units of this subscription product being purchased per period. |
isIncluded | Boolean | This indicates if this subscription product is included in the customer's subscription |
startDate | DateTime | This is the date on which this subscription product should begin to charge the customer |
subscriptionProductOverride | Object. Defined below | This contains a set of fields to override the name and description of the subscription product. |
subscriptionProductPriceOverride | Object. See Subscriptions: Subscription Product Price Override Object for details | This contains a set of fields to override the pricing for the subscription product |
chargeAtSubscriptionActivation | Boolean | This flag informs the system to either charge for this Subscription Product when the Subscription is activated (True) or to charge when it is Provisioned (False). |
isCharged | Boolean | This flag indicates if this Subscription Product has been charged. If it has applied a charge then this field will be true. [Read Only] |
subscriptionProductDiscount | Object. Definition below | This is the discount entity applied to this subscription product. See below for details. Deprecated. Use subscriptionProductDiscounts instead |
subscriptionProductDiscounts | List of Objects. Definition below | This is the list of discount entities applied to this subscription product. Use this instead of subscriptionProductDiscount |
customFields | List of Objects. For details see Catalog: Custom Field Object | This is the list of custom fields applied to this subscription product. These fields will match the plan product fields unless the field values in the Subscription have been changed in which case these fields show the data applied to the subscription product and not the default value seen in the Plan Product. |
monthlyRecurringRevenue | Decimal | The calculated monthly recurring revenue value being produced by this subscription product [Read Only] |
netMonthlyRecurringRevenue | Decimal | The net MRR being produced by this subscription product [Read Only] |
amount | Decimal | This is the dollar amount the subscription product costs. |
status | Enum: {Active, Retired, Deleted} | This is the current status of the plan product. |
lastPurchaseDate | DateTime | This is the last date of purchase. |
earningSettings | Object. Defined below. | This controls how revenue recognition works for charges generated by this subscription product. |
remainingInterval | Integer | The number of intervals before this subscription product expires |
groupQuantityChangeCharges | Boolean | Indicates whether quantity change charges for this subscription product are rolled up on invoices |
priceUpliftsEnabled | Boolean | Indicates whether price uplifts occur on this subscription product |
priceUplifts | List of Objects. Definition below. | The scheduled sequence of percentage price uplifts for this subscription product |
upliftPriorToRecharge | Boolean | Indicates whether the price uplifts occur just before the recharge. This can be overwritten at the level of the specific uplift. |
includingInitialCharge | Boolean | Indicates whether the initial charge of this subscription product counts towards scheduled uplift date calculations |
historicalPriceUplifts | List of Objects. Definition below. | The list of price uplifts that have already occurred on this subscription product |
customServiceDateNumberOfIntervals | Integer | Service dates control the dates displayed on invoice below the line item representing this subscription product on this plan frequency. This indicates how many intervals away from the invoice date is to be displayed. |
customServiceDateInterval | Enum: {Days, Periods} | Service dates control the dates displayed on invoice below the line item representing this subscription product. This controls whether the distance from the invoice date is measured in days or periods. |
customServiceDateProjection | Enum:{Past, Future} | Service dates control the dates displayed on invoice below the line item representing this plan product on this plan frequency. This controls whether the service date is before the posted invoice, or after. |
modifiedTimestamp | DateTime | The timestamp of the last time this object was modified |
salesforceId | String | The Salesforce ID of the subscription product in Salesforce that this object maps to. This is for the Salesforce plugin, and requires the advanced 'Maintain Subscription Product In Salesforce' setting to be toggled |
generateZeroDollarCharge | Boolean | Indicates whether this subscription product should generate a charge if it is zero dollars |
id | Integer | The Fusebill generated ID that uniquely identifies this subscription products [Read Only] |
uri | String | The full string path to this resource [Read Only] |
Subscription Product Override Fields
Property | Type | Description |
---|---|---|
Name | String | This is the value which will be displayed instead of planProduct.productName on invoices and in other customer facing locations. [Max Length: 100 characters] |
Description | String | This is the value which will be displayed instead of planProuct.productDescription on invoices and in other customer facing locations. [Max Length: 500 characters] |
Price Uplift Fields
Property | Type | Description |
---|---|---|
sequenceNumber | Integer | Indicates which position this uplift is in the sequence |
numberOfIntervals | Integer | The total number of intervals before this price uplift takes effect after the previous uplift in the sequence occurs |
remainingIntervals | Integer | The remaining number of intervals before this price uplift takes effect after the previous uplift in the sequence occurs |
amount | Decimal | The percent amount this uplift will increase the price by |
repeatForever | Boolean | If this uplift is the last in the sequence, this indicates whether this uplift will repeat every numberOfIntervals after its first occurrence |
upliftPriorToRecharge | Boolean | Indicates whether the uplift occurs just prior to or just after the recharge |
Historical Price Uplift Fields
Property | Type | Description |
---|---|---|
consumedTimestamp | DateTime | The timestamp indicating when this uplift occurred |
originalAmount | Decimal | The price of the subscription product just before consumedTimestamp |
increasedAmount | Decimal | The price of the subscription product just after consumedTimestamp |
sequenceNumber | Integer | Indicates which position this uplift is in the sequence |
numberOfIntervals | Integer | The total number of intervals before this price uplift took effect after the previous uplift in the sequence occurred |
amount | Decimal | The percent amount of this uplift |
upliftPriorToRecharge | Boolean | Indicates whether the uplift occurred just prior to or just after the recharge |
Subscription Product Discount
Property | Type | Description |
---|---|---|
discountType | Enum:{Percentage, Amount, AmountPerUnit} | This field indicates the type of discount applied. |
amount | Decimal | For Percentage discounts, this is the percentage which is discounted from the charge (if the discount is 25%, this value will be 25). For Amount discounts this is the actual value to subtract from the charge. |
remainingUsagesUntilStart | Integer | This is the number of billing cycles which must pass before the discount is applied. |
remainingUsage | Integer | This is the number of billing cycles which must pass before the discount automatically expires and is removed. This will be NULL for discounts which are perpetual. |
Earning Settings
Property | Type | Description |
---|---|---|
earningTimingInterval | Enum: { Daily, Monthly, Yearly } | The period in which a product will earn. |
earningTimingType | Enum: { StartOfInterval, EndOfInterval } | This delineates if the earning is to occur at the beginning or the end of the period. |