Subscription Object

Many systems use plan and subscription as interchangeable terms when discussing recurring billing but in Fusebill a plan and a subscription are very different.

Plans should be thought of as templates for a service you want to sell to your customers. A subscription is the actual implementation of a plan when that plan is attached to a customer. Changes to a plan do not change the subscriptions created from that plan and changes made to a subscription have no effect on the plan they were created from.

In addition, plans can have multiple frequencies (every 2 months, every 4 months, every 1 year, etc). Subscriptions are instances of a particular frequency of a particular plan, so a subscription has only one frequency regardless of how many frequencies were in the plan from which the subscription was created.

Subscription Object Fields

PropertyTypeDescription
customerIdIntegerThis is the Id of the Customer to whom this Subscription has been applied.

[Read Only]
planFrequencyObject (definition below)This provides details of the plan frequency that was used to configure the subscription.

[Read Only]
planCodeStringThis is the unique code which represents the Plan of which this Subscription is an instance.

[Read Only]
planNameStringThis is the name of the plan of which this Subscription is an instance.

[Read Only]
planDescriptionStringThis is the description text of the Plan of which this Subscription is an instance of.

[Read Only]
planReferenceStringThis is a text field which will be populated with the reference text from the plan. This field is not exposed on the Invoice.

[Read Only]
statusEnum: {Active, Draft, Cancelled, Provisioning, Expired, Migrated, Suspended, StandingOrder}This is the status of this subscription. Draft indicates that the Subscription has not yet been activated. Provisioning indicates this Subscription has been provisioned but that the Setup Fee and recurring Charge has not been applied to the Customer. To set a Subscription as "Provisioned" you must set a Scheduled Activation Date for some time in the future.
referenceStringThis is a text field you can populate with reference text for this subscription. This field is not exposed on the Invoice.

[Max Length: 255 characters]
subscriptionOverrideObject. Defined belowThis represents a subscription-level override made after the object's creation.
hasPostedInvoiceBooleanThis indicates if this Subscription has caused an invoice to be created and posted against the Customer's account.

[Read Only]
CreatedTimestampDateTimeThis indicates when the Subscription was created.

[Read Only]
ActivatedTimestampDateTimeThis indicates when the Subscription was activated.

[Read Only]
ProvisionedTimestampDateTimeThis indicates when the Subscription was provisioned.

[Read Only]
NextPeriodStartDateDateTimeThis indicates when the next billing period for the Subscription will begin. Normally, this indicates when the subscription will bill and apply charges to the customer's account.

[Read Only]
lastPeriodStartDateDateTimeThis is the timestamp of when the previous period started for this subscription if there was a previous period.

[Read Only]
ScheduledActivationTimestampDateTimeIf set, this indicates when the Subscription should activate. The subscription will automatically be set to an "Active" status at this time if it has been set to status "Provisioned".
subscriptionProductsList of Objects. See the Subscription Products Object section for the definition.The list of subscription products on the purchase, both included and excluded.
remainingIntervalIntegerThis is the remaining number of billing intervals in the lifetime of this subscription. If this value is set to null the subscription will renew indefinitely. If this is set to a number then after that number of intervals have passed the subscription will go to the "Expired" status automatically and stop charging the customer.
remainingIntervalPushOutIntegerThis is the setting to default what the new remaining interval should be when the subscription is renewed.
openSubscriptionPeriodEndDateDateTimeThis is the date that the current billing period will end. Often, this field will match the nextPeriodStartDate value.
customFieldsList of Objects. See Catalog: Custom Fields for object definition.Custom fields hold additional data. This data is associated with the subscription.
planAutoApplyChangesBooleanThis field related to Grandfathering control. If true, this indicates that the Plan from which this Subscription is made usually pushes changes to the Plan down to existing Subscriptions - this forces existing customers onto the newest version of the Plan.
If set to False, this 'grandfathers' the Customer into the version of the Plan they Subscribed to and does not push changes.

[Read Only]
autoApplyCatalogChangesBooleanThis field controls if this specific Subscription should automatically push changes to the underlying Plan to this Subscription. If set to True, changes will be pushed automatically. If False, this Subscription will not reflect updates to the Plan from which it was made.
monthlyRecurringRevenueDecimalThe calculated monthly recurring revenue value being generated by this subscription

[Read Only]
netMonthlyRecurringRevenueDecimalThe net MRR being generated by this subscription

[Read Only]
amountDecimalThe amount of the subscription.

[Read Only]
contractStartTimestampDateTimeThis is the date that the contract period will begin.
contractEndTimestampDateTimeThis is the date that the contract period will end.
expiredTimestampDateTimeThe timestamp of when this subscription expired if it is in status "Expired"

[Read Only]
cancellationTimestampDateTimeThe timestamp of when this subscription became cancelled if it is in status "Cancelled"

[Read Only]
modifiedTimestampDateTimeThe timestamp of the last modification to this entity.

[Read Only]
couponsList of Objects. See Subscriptions: Coupons Object for details.The list of coupons that have been applied to this subscription
invoiceDayIntegerThe day of the month recharge occurs for this subscription.

[Read Only]
invoiceMonthIntegerTells the system to create a billing period that cycles on the specified month. Typically only used for yearly frequencies. If this parameter is used for a monthly frequency, Fusebill will adjust the billing period such that the subscription will recharge on the provided day and month.

[Read Only]
canMigrateBooleanTrue as long as their is at least one plan family relationship with this subscription's plan code as the source.

[Read Only]
migrationDateDateTimeThe timestamp when this subscription entered status "Migrated"

[Read Only]
scheduledMigrationDateDateTimeThe timestamp of when the scheduled migration for this subscription will occur if a migration has been scheduled.
migrationsObject. Defined below.A summary of the migration which resulted in this subscription, and the migration which was sourced from this subscription. Possibly null if the subscription is not associated to any migrations.
subscriptionHasRecurringEndOfPeriodChargeBooleanTrue if the subscription has a recurring end of period charge
nextRechargeDateDateTimeThe timestamp for when this subscription will recharge next.
billingPeriodDefinitionIdIntegerThe Fusebill generated ID that uniquely identifies the associated billing period definition.
[Read Only]
salesforceIdStringThe Salesforce ID of the subscription in Salesforce that this object maps to. This is for the Salesforce plugin.
idIntegerThe Fusebill generated ID that uniquely identifies this subscription
[Read Only]
uriStringThe full string path to this resource
[Read Only]

PlanFrequency Fields

PropertyTypeDescription
planRevisionIdIntegerThis is the unique identifier for this plan revision

[Read Only]
numberOfIntervalsIntegerThis is the number of intervals that this plan will renew for

[Read Only]
intervalEnum:{Yearly, Monthly}The unit of measurement used for defining billing periods

[Read Only]
numberOfSubscriptionsIntegerThis is the number of instances of this plan currently in the system as subscriptions

[Read Only]
statusEnum: {Draft, Active, Retired}Indicates the status of the plan this subscription was sourced from.

[Read Only]
isProratedBooleanThis indicates if this Subscription should prorate its charges if activated in the middle of a billing cycle.

[Read Only]
prorationGranularityEnum:{Monthly, Daily}This defines how granular the proration calculations are

[Read Only]
planFrequencyUniqueIdIntegerThis is an internal identifier.

[Read Only]
remainingIntervalIntegerThe default remaining interval for the plan. This is the number of periods before expiry. This can be overwritten or pushed out on the subscription

[Read Only]
salesforceIdStringThe ID of the Salesforce price book this plan frequency is associated with in Salesforce. This is for the Salesforce plugin.
idIntegerThis is the Fusebill generated ID for this plan frequency.

[Read Only]
uriStringThis is full string path to this resource.

[Read Only]

Subscription Override Properties

PropertyTypeDescription
nameStringThis is the value which will override the planName field value on the subscription. This override value will appear on invoices and in other customer facing locations.

[Max Length: 100 characters]
descriptionStringThis is the value which will override the planDescription field value on the subscription. This override value will appear on invoices and in other customer facing locations.

[Max Length: 500 characters]
idIntegerThe Fusebill generated ID that uniquely identifies this subscription

[Read Only]
uriStringThe full path to this subscription

[Read Only]

Migrations Object

PropertyTypeDescription
sourceSubscriptionIdIntegerThe Fusebill generated ID of the subscription which migrated to become this subscription.
sourceRelationshipMigrationTypeEnum: {Upgrade, Downgrade, PlanUpdate, FrequencyChange, FreeTrialConversion, Other}An enum used to describe the general purpose and context of the source migration
sourceRelationshipIdIntegerThe Fusebill generated plan family relationship ID used for the source migration
destinationSubscriptionIdIntegerThe Fusebill generated ID of the subscription which this subscription migrated to become.
destinationRelationshipMigrationTypeEnum: {Upgrade, Downgrade, PlanUpdate, FrequencyChange, FreeTrialConversion, Other}An enum used to describe the general purpose and context of the destination migration
destinationRelationshipIdIntegerThe Fusebill generated plan family relationship ID used for the destination migration