Products Object

Products are a catalog level object used in two ways. The primary way is as a building block for products in a plan (plan products) which then become products in a subscription (subscription products). They can represent one-time charges, physical goods, or recurring services. Importantly, they can also be given a GL (General Ledger) code to categorize their revenue and allow for reporting under common labels.

The second way products are used is as the basis for purchases. If a product is set to be available for purchase, pricing information can be provided for the product to be purchased outside of the usual plan/subscription model.

Product Object Fields

PropertyTypeDescription
codeStringThe product code defined through the UI. Fusebill enforces uniqueness for this value. [Max length: 1000 characters]
nameStringThe name of the product. [Max Length: 100 characters]
descriptionStringThe description of the product. [Max length: 1000 characters]
productTypeEnum:{RecurringService, PhysicalGood, OneTimeCharge}physical goods and one-time charges do not recharge after the first charge
statusEnum: {Active, Retired}Only active products can be purchased or added to plans
taxExemptBooleanIf true, this product is exempt from taxes. Applies to both direct purchases and plan inclusions.
orderToCashCycleObject. Defined belowAn object describing pricing and earning details for product if purchasable
availableForPurchaseBooleanControls whether this product can be purchased outside of a plan.
isTrackingItemsBooleanControls whether purchases of this product are tracked items or not. This is for purchases outside of a plan.
quantityDecimalThe default quantity for when this product is purchased outside of a plan.
avalaraItemCodeStringThe Avalara item code for this product
avalaraTaxCodeStringThe Avalara tax code for this product
glCodeStringThe general ledger code for this product.
[Max Length: 255 characters]
productCustomFieldsObject. See Catalog: Custom Fields Object for detailsThe only difference is that the custom field has a defaultValue instead of a Value
deletableBooleanA product can only be deleted if there are no purchases or plan products using it. Otherwise it must be retired.
salesforceIdStringThe ID of the product in Salesforce. This field is only populated if you are using the Fusebill Salesforce plugin.
netsuiteItemIdStringThe NetSuite Item this product maps to. For the NetSuite plugin.
idIntegerThe Fusebill generated ID uniquely identifying this product object
[Read Only]
uriStringThe full string path to this resource
[Read Only]

Order To Cash Cycle Fields

PropertyTypeDescription
earningIntervalEnum: {Monthly, Yearly}Indicates whether the custom earning period (if a custom earning period is being used) is measured in years or months when this product is purchased outside of a plan
earningNumberOfIntervalsIntegerThe number of earningIntervals that constitute the period this purchase earns over when this product is purchased outside of a plan
earningTimingIntervalEnum:{Daily, Monthly, Yearly, Interval, DoesNotEarn, EarnImmediately}Indicates how to divide the custom period if a custom period is being used, indicates the purchase does not earn, or indicates that the purchase earns immediately. This is for when this product is purchased outside of a plan
earningTimingTypeEnum:{StartOfInterval, EndOfInterval, DoesNotEarn}Indicates where in the interval the earning occurs, if custom earning periods are being used. This is for when this product is purchased outside of a plan
pricingModelObject. Defined belowDefined pricing for this product when purchased outside of a plan

Pricing Model Fields

PropertyTypeDescription
pricingModelTypeEnum: {Standard, Tiered, Stairstep, Volume}Dictates how the price is calculated using the quantity. This is for the purchase object created when this product is purchased outside a plan
quantityRangesList of Objects. Defined below.A collection of ranges that control the price of the purchase based on its quantity field.

Quantity Ranges Fields

PropertyTypeDescription
minDecimalThe lower bound for the value of quantity. If the purchase of this product has a quantity in this quantity range, the price in prices matching the customer's currency is used.
maxDecimalThe upper bound for the value of quantity.If the purchase of this product has a quantity in this quantity range, the price in prices matching the customer's currency is used. NULL means infinity
pricesList of Objects. Defined below.A list of prices based on each configured currency.

Prices fields

PropertyTypeDescription
amountDecimalThe price in units of the currency.
currencyStringThe 3 character ISO code of the currency this price is measured in.