Subscription Products Object

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

PropertyTypeDescription
subscriptionIdIntegerThis is the Fusebill generated ID of the subscription this subscription product belongs to.

[Read Only]
planProductObject. For details see Catalog: Plan ProductThis 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.
quantityDecimalThis is the number of units of this subscription product being purchased per period.
isIncludedBooleanThis indicates if this subscription product is included in the customer's subscription
startDateDateTimeThis is the date on which this subscription product should begin to charge the customer
subscriptionProductOverrideObject. Defined belowThis contains a set of fields to override the name and description of the subscription product.
subscriptionProductPriceOverrideObject. See Subscriptions: Subscription Product Price Override Object for detailsThis contains a set of fields to override the pricing for the subscription product
chargeAtSubscriptionActivationBooleanThis 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).
isChargedBooleanThis flag indicates if this Subscription Product has been charged. If it has applied a charge then this field will be true.

[Read Only]
subscriptionProductDiscountObject. Definition belowThis is the discount entity applied to this subscription product. See below for details. Deprecated. Use subscriptionProductDiscounts instead
subscriptionProductDiscountsList of Objects. Definition belowThis is the list of discount entities applied to this subscription product. Use this instead of subscriptionProductDiscount
customFieldsList of Objects. For details see Catalog: Custom Field ObjectThis 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.
monthlyRecurringRevenueDecimalThe calculated monthly recurring revenue value being produced by this subscription product

[Read Only]
netMonthlyRecurringRevenueDecimalThe net MRR being produced by this subscription product
[Read Only]
amountDecimalThis is the dollar amount the subscription product costs.
statusEnum: {Active, Retired, Deleted}This is the current status of the plan product.
lastPurchaseDateDateTimeThis is the last date of purchase.
earningSettingsObject. Defined below.This controls how revenue recognition works for charges generated by this subscription product.
remainingIntervalIntegerThe number of intervals before this subscription product expires
groupQuantityChangeChargesBooleanIndicates whether quantity change charges for this subscription product are rolled up on invoices
priceUpliftsEnabledBooleanIndicates whether price uplifts occur on this subscription product
priceUpliftsList of Objects. Definition below.The scheduled sequence of percentage price uplifts for this subscription product
upliftPriorToRechargeBooleanIndicates whether the price uplifts occur just before the recharge. This can be overwritten at the level of the specific uplift.
includingInitialChargeBooleanIndicates whether the initial charge of this subscription product counts towards scheduled uplift date calculations
historicalPriceUpliftsList of Objects. Definition below.The list of price uplifts that have already occurred on this subscription product
customServiceDateNumberOfIntervalsIntegerService 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.
customServiceDateIntervalEnum: {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.
customServiceDateProjectionEnum:{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.
modifiedTimestampDateTimeThe timestamp of the last time this object was modified
salesforceIdStringThe 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
generateZeroDollarChargeBooleanIndicates whether this subscription product should generate a charge if it is zero dollars
idIntegerThe Fusebill generated ID that uniquely identifies this subscription products
[Read Only]
uriStringThe full string path to this resource
[Read Only]

Subscription Product Override Fields

PropertyTypeDescription
NameStringThis is the value which will be displayed instead of planProduct.productName on invoices and in other customer facing locations. [Max Length: 100 characters]
DescriptionStringThis 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

PropertyTypeDescription
sequenceNumberIntegerIndicates which position this uplift is in the sequence
numberOfIntervalsIntegerThe total number of intervals before this price uplift takes effect after the previous uplift in the sequence occurs
remainingIntervalsIntegerThe remaining number of intervals before this price uplift takes effect after the previous uplift in the sequence occurs
amountDecimalThe percent amount this uplift will increase the price by
repeatForeverBooleanIf this uplift is the last in the sequence, this indicates whether this uplift will repeat every numberOfIntervals after its first occurrence
upliftPriorToRechargeBooleanIndicates whether the uplift occurs just prior to or just after the recharge

Historical Price Uplift Fields

PropertyTypeDescription
consumedTimestampDateTimeThe timestamp indicating when this uplift occurred
originalAmountDecimalThe price of the subscription product just before consumedTimestamp
increasedAmountDecimalThe price of the subscription product just after consumedTimestamp
sequenceNumberIntegerIndicates which position this uplift is in the sequence
numberOfIntervalsIntegerThe total number of intervals before this price uplift took effect after the previous uplift in the sequence occurred
amountDecimalThe percent amount of this uplift
upliftPriorToRechargeBooleanIndicates whether the uplift occurred just prior to or just after the recharge

Subscription Product Discount

PropertyTypeDescription
discountTypeEnum:{Percentage, Amount, AmountPerUnit}This field indicates the type of discount applied.
amountDecimalFor 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.
remainingUsagesUntilStartIntegerThis is the number of billing cycles which must pass before the discount is applied.
remainingUsageIntegerThis 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

PropertyTypeDescription
earningTimingIntervalEnum: {
Daily,
Monthly,
Yearly
}
The period in which a product will earn.
earningTimingTypeEnum: {
StartOfInterval,
EndOfInterval
}
This delineates if the earning is to occur at the beginning or the end of the period.