When offering subscriptions of products or services, each entity that is made available for sale is represented by an “item” object. Items therefore represent the various plans, addons or charges that you offer as part of your product catalog. Non-metered items are charged upfront in Chargebee, while metered items are charged at the end of the billing cycle, based on usage.
Types of Items
There are three types of items and they’re listed and explained here. Examples for each type are provided in the table that follows.
Plan-items or Plans
Plan-items are items that have a recurring charge and are an essential component of any subscription. Typically, plans represent a principal or key product or service in your catalog. They are charged at recurring intervals and often have other products or services offered along with them as addons and charges.
Addon-items or Addons
Addon-items are items that are sold along with a plan and are charged for at recurring intervals.
Charge-items or Charges
Charge-items are items that are sold along with a plan but charged once (or each time) a specified event occurs. A charge can also be applied to a customer without attaching to a subscription.
Examples
To help understand each type of item better, listed below are some examples of items from different business domains:
Non-Metered (SaaS)
Item Family: A project management solution.
Plans:
A “basic” plan offering a small set of features.
A “business” plan offering a larger set of features.
Addons:
An analytics plugin that is available only with the “business” plan.
A reporting plugin, available with both the above plans.
Charges:
Implementation charges.
Trial charges.
Non-Metered (E-commerce)
Item Family: A printed news magazine.
Plans:
Periodic issues of the magazine.
Periodic issues of the magazine, with digital content.
Addons:
Supplementary online content.
Access to a year’s worth of back issues.
Searchable access to all back issues.
Charges:
Special edition books that are published every so often.
Metered
Item Family: SMS delivery services.
Plans:
A basic plan of up to 100K messages @ $0.03 per message.
A volume plan of 2M messages @ $0.01 per message.
Addons:
An addon of 50K MMS messages @ $0.1 per message.
Instant messaging.
Charges:
Automated Metered Billing is not applicable for charges.
string, max chars=100 The identifier for the item. It is unique and immutable.
name
string, max chars=50 A unique display name for the item. This is visible only in Chargebee and not to customers.
external_name
optional, string, max chars=100 A unique display name for the item.
description
optional, string, max chars=500 Description of the item. This is visible only in Chargebee and not to customers.
status
optional, enumerated string The status of the item.
Possible values are
activeThe item can be used to create new item prices.archivedThe item is no longer active and no new item prices can be created.deletedIndicates that the item has been deleted. The id and name can be reused. Deleted items can be retrieved using List items.
resource_version
optional, long The version number of this resource. For every change made to the resource, resource_version is updated with a new timestamp in milliseconds.
updated_at
optional, timestamp(UTC) in seconds Timestamp indicating when the item was last updated.
item_family_id
optional, string, max chars=100 The id of the Item family that the item belongs to. Is mandatory when Product Families have been enabled.
type
enumerated string The type of the item.
Possible values are
planAn essential component of a subscription. Every subscription has exactly one plan. It has a recurring charge and its period defines the billing period of the subscription.addonA recurring component that can be added to a subscription in addition to its plan.chargeA non-recurring component that can be added to a subscription in addition to its plan. An charge can also be applied to a customer directly without being applied to a subscription.
is_shippable
optional, boolean, default=false Indicates that the item is a physical product. If Orders are enabled in Chargebee, subscriptions created for this item will have orders associated with them.
is_giftable
boolean, default=false Specifies if gift subscriptions can be created for this item.
redirect_url
optional, string, max chars=500 If enabled_for_checkout, then the URL to be redirected to once the checkout is complete. This attribute is only available for plan-items.
enabled_for_checkout
boolean, default=true Allow the plan to subscribed to via Checkout. Applies only for plan-items. Note: Only the in-app version of Checkout is supported for Product Catalog v2.
enabled_in_portal
boolean, default=true Allow customers to change their subscription to this plan via the Self-Serve Portal. Applies only for plan-items. This requires the Portal configuration to allow changing subscriptions.
included_in_mrr
optional, boolean The item is included in MRR calculations for your site. This attribute is only applicable for items of type = charge and when the feature is enabled in Chargebee. Note: If the site-level setting is to exclude charge-items from MRR calculations, this value is always returned false.
item_applicability
enumerated string, default=all Indicates which addon-items and charge-items can be applied to the item. Only meant for plan-items. Other details of attaching items such as whether to attach as a mandatory item or to attach on a certain event, can be specified using the Create or Update an attached item API.
Possible values are
allall addon-items and charge-items are applicable to this plan-item.restrictedonly the addon-items or charge-items provided in applicable_items can be applied to this plan-item.
gift_claim_redirect_url
optional, string, max chars=500 The URL to redirect to once the gift has been claimed by the receiver.
unit
optional, string, max chars=30 The unit of measure for a quantity-based item. This is displayed on the Chargebee UI and on customer facing documents/pages. The latter includes hosted pages, invoices and quotes. Examples follow:
“user“ for a cloud-collaboration platform.
“GB“ for a data service.
“issue“ for a magazine.
Note:unit is only exposed via the API to quantity-based addons; it is however NOT exposed to quantity-based plans.
metered
boolean, default=false Specifies whether the item undergoes metered billing. When true, the quantity is calculated from usage records. When false, the quantity is as determined while adding an item price to the subscription. Applicable only for items of typeplan or addon and when Metered Billing is enabled. The value of this attribute cannot be changed.
usage_calculation
optional, enumerated string How the quantity is calculated from usage data for the item prices belonging to this item. Only applicable when the item is metered. This value overrides the one set at the site level.
Possible values are
sum_of_usagesthe net quantity is the sum of the quantity of all usages for the current term.last_usagefrom among the usage records for the item price with usage_date within the relevant billing period, the quantity of the usage record with the most recent usage_date is taken as the net quantity consumed.max_usagefrom among the usage records for the item price with usage_date within the relevant billing period, the quantity of the usage record with the maximum value is taken as the net quantity consumed.
archived_at
optional, timestamp(UTC) in seconds Timestamp indicating when this item was archived.
channel
optional, enumerated string The subscription channel this object originated from and is maintained in.
Possible values are
webThe object was created (and is maintained) for the web channel directly in Chargebee via API or UI.app_storeThe object data is synchronized with data from in-app subscription(s) created in Apple App Store. Direct manipulation of this object via UI or API is disallowed.play_storeThe object data is synchronized with data from in-app subscription(s) created in Google Play Store. Direct manipulation of this object via UI or API is disallowed.
In-App Subscriptions is currently in early access. Contact eap@chargebee.com for more information.
.
metadata
optional, jsonobject A set of key-value pairs stored as additional information for the item. Learn more.
optional, list of applicable_item The list of addons and charges that are allowed to be applied to the plan. This attribute is applicable only for plan-items and that too when item_applicability is restricted. Other details of attaching items can be specified using the Create or Update an attached item API.
Applicable item attributes
id
optional, string, max chars=100 Id of the addon-item or plan-item that can be applied to the plan-item.
required, string, max chars=100 The identifier for the item. Must be unique and is immutable once set.
name
required, string, max chars=50 A unique display name for the item. Must be unique. This is visible only in Chargebee and not to customers.
type
required, enumerated string The type of the item.
Possible values are
planAn essential component of a subscription. Every subscription has exactly one plan. It has a recurring charge and its period defines the billing period of the subscription.addonA recurring component that can be added to a subscription in addition to its plan.chargeA non-recurring component that can be added to a subscription in addition to its plan. An charge can also be applied to a customer directly without being applied to a subscription.
description
optional, string, max chars=500 Description of the item. This is visible only in Chargebee and not to customers.
item_family_id
required, string, max chars=100 The id of the Item family that the item belongs to. Is mandatory when Product Families have been enabled.
is_giftable
optional, boolean, default=false Specifies if gift subscriptions can be created for this item.
is_shippable
optional, boolean, default=false Indicates that the item is a physical product. If Orders are enabled in Chargebee, subscriptions created for this item will have orders associated with them.
external_name
optional, string, max chars=100 A unique display name for the item.
enabled_in_portal
optional, boolean, default=true Allow customers to change their subscription to this plan via the Self-Serve Portal. Applies only for plan-items. This requires the Portal configuration to allow changing subscriptions. Only the in-app version of the Portal is supported for Product Catalog v2.
redirect_url
optional, string, max chars=500 If enabled_for_checkout, then the URL to be redirected to once the checkout is complete. This attribute is only available for plan-items.
enabled_for_checkout
optional, boolean, default=true Allow the plan to subscribed to via Checkout. Applies only for plan-items. Note: Only the in-app version of Checkout is supported for Product Catalog v2.
item_applicability
optional, enumerated string, default=all Indicates which addon-items and charge-items can be applied to the item. Only possible for plan-items. Other details of attaching items such as whether to attach as a mandatory item or to attach on a certain event, can be specified using the Create or Update an attached item API.
Possible values are
allall addon-items and charge-items are applicable to this plan-item.restrictedonly the addon-items or charge-items provided in applicable_items can be applied to this plan-item.
applicable_items[0..n]
optional, list of string The list of ids of addon-items and charge-items that can be applied to the plan-item. This parameter can be provided only for plan-items and that too when item_applicability is restricted. Other details of attaching items can be specified using the Create or Update an attached item API.
unit
optional, string, max chars=30 The unit of measure for a quantity-based item. This is displayed on the Chargebee UI and on customer facing documents/pages. The latter includes hosted pages, invoices and quotes. Examples follow:
“user“ for a cloud-collaboration platform.
“GB“ for a data service.
“issue“ for a magazine.
Note:unit is only exposed via the API to quantity-based addons; it is however NOT exposed to quantity-based plans.
.
gift_claim_redirect_url
optional, string, max chars=500 The URL to redirect to once the gift has been claimed by the receiver.
included_in_mrr
optional, boolean The item is included in MRR calculations for your site. This attribute is only applicable for items of type = charge and when the feature is enabled in Chargebee. Note: If the site-level setting is to exclude charge-items from MRR calculations, this value is always returned false.
metered
optional, boolean, default=false Specifies whether the item undergoes metered billing. When true, the quantity is calculated from usage records. When false, the quantity is as determined while adding an item price to the subscription. Applicable only for items of typeplan or addon and when Metered Billing is enabled. The value of this attribute cannot be changed.
usage_calculation
optional, enumerated string How the quantity is calculated from usage data for the item prices belonging to this item. Only applicable when the item is metered. This value overrides the one set at the site level. .
Possible values are
sum_of_usagesthe net quantity is the sum of the quantity of all usages for the current term.last_usagefrom among the usage records for the item price with usage_date within the relevant billing period, the quantity of the usage record with the most recent usage_date is taken as the net quantity consumed.max_usagefrom among the usage records for the item price with usage_date within the relevant billing period, the quantity of the usage record with the maximum value is taken as the net quantity consumed.
metadata
optional, jsonobject A set of key-value pairs stored as additional information for the item. Learn more.
optional, string, max chars=50 The display name for the item. Must be unique. This is visible only in Chargebee and not to customers.
description
optional, string, max chars=500 Description of the item. This is visible only in Chargebee and not to customers.
is_shippable
optional, boolean Indicates that the item is a physical product. If Orders are enabled in Chargebee, subscriptions created for this item will have orders associated with them.
external_name
optional, string, max chars=100 A unique display name for the item.
item_family_id
optional, string, max chars=100 The id of the Item family that the item belongs to. Is mandatory when Product Families have been enabled.
enabled_in_portal
optional, boolean Allow customers to change their subscription to this plan via the Self-Serve Portal. Applies only for plan-items. This requires the Portal configuration to allow changing subscriptions.
redirect_url
optional, string, max chars=500 If enabled_for_checkout, then the URL to be redirected to once the checkout is complete. This parameter is only meant for plan-items.
enabled_for_checkout
optional, boolean Allow the plan to subscribed to via Checkout. Applies only for plan-items. Note: Only the in-app version of Checkout is supported for Product Catalog v2.
item_applicability
optional, enumerated string Indicates which addon-items and charge-items can be applied to the item. Only possible for plan-items. Other details of attaching items such as whether to attach as a mandatory item or to attach on a certain event, can be specified using the Create or Update an attached item API.
Possible values are
allall addon-items and charge-items are applicable to this plan-item.restrictedonly the addon-items or charge-items provided in applicable_items can be applied to this plan-item.
applicable_items[0..n]
optional, list of string The list of ids of addon-items and charge-items that can be applied to the plan-item. This parameter can be provided only for plan-items and that too when item_applicability is restricted. Other details of attaching items can be specified using the Create or Update an attached item API.
unit
optional, string, max chars=30 The unit of measure for a quantity-based item. This is displayed on the Chargebee UI and on customer facing documents/pages. The latter includes hosted pages, invoices and quotes. Examples follow:
“user“ for a cloud-collaboration platform.
“GB“ for a data service.
“issue“ for a magazine.
Note:unit is only exposed via the API to quantity-based addons; it is however NOT exposed to quantity-based plans.
.
gift_claim_redirect_url
optional, string, max chars=500 The URL to redirect to once the gift has been claimed by the receiver.
metadata
optional, jsonobject A set of key-value pairs stored as additional information for the item. Learn more.
included_in_mrr
optional, boolean The item is included in MRR calculations for your site. This attribute is only applicable for items of type = charge and when the feature is enabled in Chargebee. Note: If the site-level setting is to exclude charge-items from MRR calculations, this value is always returned false.
status
optional, enumerated string The status of the item.
Possible values are
activeThe item can be used to create new item prices.archivedThe item is no longer active and no new item prices can be created
Returns a list of items satisfying all the conditions specified in the filter parameters below. The list is sorted by date of creation, in descending order.
optional, integer, default=10, min=1, max=100 The number of resources to be returned.
offset
optional, string, max chars=1000 Determines your position in the list for pagination. To ensure that the next page is retrieved correctly, always set offset to the value of next_offset obtained in the previous iteration of the API call.
sort_by[<sort-order>]
optional, string filter Sorts based on the specified attribute. Supported attributes : name, id, updated_at Supported sort-orders : asc, desc
Example →sort_by[asc] = "name" This will sort the result based on the 'name' attribute in ascending(earliest first) order.
optional, string filter Filter items based on item id. Supported operators : is, is_not, starts_with, in, not_in
Example →id[is_not] = "basic"
item_family_id[<operator>]
optional, string filter Filter items based on item_family_id. Supported operators : is, is_not, starts_with, in, not_in
Example →item_family_id[is] = "acme"
type[<operator>]
optional, enumerated string filter Filter items based on item type. Possible values are : plan, addon, charge. Supported operators : is, is_not, in, not_in
Example →type[is] = "plan"
name[<operator>]
optional, string filter Filter items based on item name. Supported operators : is, is_not, starts_with
Example →name[is_not] = "basic"
item_applicability[<operator>]
optional, enumerated string filter Filter items based on item_applicability. Possible values are : all, restricted. Supported operators : is, is_not, in, not_in
Example →item_applicability[is] = "all"
status[<operator>]
optional, enumerated string filter Filter items based on item status. Possible values are : active, archived, deleted. Supported operators : is, is_not, in, not_in
Example →status[is] = "active"
is_giftable[<operator>]
optional, boolean filter Specifies if gift subscriptions can be created for this item. Possible values are : true, false Supported operators : is
Example →is_giftable[is] = "true"
updated_at[<operator>]
optional, timestamp(UTC) in seconds filter Filter items based on when the items were last updated. Supported operators : after, before, on, between
Example →updated_at[after] = "1243545465"
enabled_for_checkout[<operator>]
optional, boolean filter Allow the plan to subscribed to via Checkout. Applies only for plan-items. Note: Only the in-app version of Checkout is supported for Product Catalog v2. Possible values are : true, false Supported operators : is
Example →enabled_for_checkout[is] = "null"
enabled_in_portal[<operator>]
optional, boolean filter Allow customers to change their subscription to this plan via the Self-Serve Portal. Applies only for plan-items. This requires the Portal configuration to allow changing subscriptions. Possible values are : true, false Supported operators : is
Example →enabled_in_portal[is] = "null"
metered[<operator>]
optional, boolean filter Specifies whether the item undergoes metered billing. When true, the quantity is calculated from usage records. When false, the quantity is as determined while adding an item price to the subscription. Applicable only for items of typeplan or addon and when Metered Billing is enabled. The value of this attribute cannot be changed. Possible values are : true, false Supported operators : is
Example →metered[is] = "true"
usage_calculation[<operator>]
optional, enumerated string filter How the quantity is calculated from usage data for the item prices belonging to this item. Only applicable when the item is metered. This value overrides the one set at the site level. . Possible values are : sum_of_usages, last_usage, max_usage. Supported operators : is, is_not, in, not_in
Example →usage_calculation[is] = "SUM_OF_USAGES"
channel[<operator>]
optional, enumerated string filter The subscription channel this object originated from and is maintained in. Possible values are : web, app_store, play_store. Supported operators : is, is_not, in, not_in
optional, string, max chars=1000
This attribute is returned only if more resources are present. To fetch the next set of resources use this value for the input parameter “offset”.
Deletes an item, marking its status as deleted. This is not allowed if there are active or archived item prices under the item. Once deleted, the id and name of the item can be reused.
Sample Request
curl https://{site}.chargebee.com/api/v2/items/delete-sample/delete \
-X POST \
-u {site_api_key}:
copy
curl https://{site}.chargebee.com/api/v2/items/delete-sample/delete \
-X POST \
-u {site_api_key}: