Introducing OpenTelemetry for Chargebee SDKs — trace every API call in any telemetry tool.
Chargebeechargebee API

Omnichannel subscription items

Represents a product entitlement (item) within an omnichannel_subscription purchased on Apple App Store or Google Play Store.

Status, auto-renew, term dates, and cancel/expire reasons live on this resource. See omnichannel statuses for store mappings.

When has_scheduled_changes is true, use List scheduled changes to retrieve deferred product or pause changes.

Sample Omnichannel subscription itemJSON

Omnichannel subscription items attributes

id
required, string, max chars=40

Uniquely identifies an omnichannel_subscription_item.

item_id_at_source
required, string, max chars=100

Product identifier of this subscription item in the source store.

Apple App Store: The App Store Connect product identifier.

Google Play Store: The Google Play product / base-plan identifier associated with the active entitlement. See also item_parent_id_at_source when a parent/child hierarchy applies.

item_parent_id_at_source
optional, string, max chars=100

Parent product identifier in the source store, when the store exposes a parent/child product hierarchy.

Apple App Store: Typically the subscription group / parent product context when applicable.

Google Play Store: Typically the parent product ID associated with the base plan / offer hierarchy when applicable.

status
required, enumerated string

Status of the omnichannel_subscription_item. Status lives on the item, not on the parent subscription. Learn more about status and store mappings.

Enum Values
active

The subscription item is active and entitled for the current term.

Google Play Store: Also used when Google has canceled auto-renew but the term has not ended (auto_renew_status = off).

expired

The subscription item expired for a non-cancellation reason. See expiration_reason.

cancelled

The subscription item is cancelled (entitlement ended due to cancellation / revoke / refund contexts). See cancellation_reason.

in_dunning

Billing is retrying after a payment failure and access may be restricted (Apple billing retry / Google account hold).

in_grace_period

Billing is retrying during a grace period; service should typically continue.

paused

The subscription item is paused. See resumes_at when available.

auto_renew_status
optional, enumerated string

Whether the subscription item is set to auto-renew at the end of the current term (on or off).

Google Play Store: When the customer cancels but remains in-term, status stays active and auto_renew_status is off.

Enum Values
off

Auto-renewal is disabled for the omnichannel_subscription_item.

on

Auto-renewal is enabled for the omnichannel_subscription_item.

current_term_start
optional, timestamp(UTC) in seconds

Start of the current billing period of the subscription item. Applicable when status is active.

current_term_end
optional, timestamp(UTC) in seconds

End of the current billing period of the subscription item. Applicable when status is active.

Apple App Store: Closest analogue to next_billing_at because Apple does not expose a separate next-renewal timestamp. Apple may renew up to 24 hours before expiry and, in billing retry, may retry for up to 60 days. Learn more.

Google Play Store: Corresponds to the subscription expiry / next billing boundary from Play. When the customer has canceled but the term has not ended, status remains active with auto_renew_status = off (see omnichannel statuses).

expired_at
optional, timestamp(UTC) in seconds

Timestamp when the subscription associated with the omnichannel_subscription_item expired in the source.

expiration_reason
optional, enumerated string

Specifies the reason for the subscription expiration. Present when status is expired.

Apple App Store: Commonly maps from Apple expiration intents such as BILLING_ERROR, PRODUCT_NOT_AVAILABLE, and OTHER.

Google Play Store: User-initiated and merchant-revoked expirations typically map to cancelled with a cancellation_reason instead of expired.

Enum Values
billing_error

Billing error, such as invalid customer payment information.

Apple App Store: Maps from expiration intent BILLING_ERROR.

product_not_available

The product was unavailable for purchase at the time of renewal.

Apple App Store: Maps from expiration intent PRODUCT_NOT_AVAILABLE.

other

The subscription associated with the item expired for an unspecified reason.

Apple App Store: Maps from expiration intent OTHER.

cancelled_at
optional, timestamp(UTC) in seconds

Timestamp when the subscription associated with the omnichannel_subscription_item was cancelled in the source.

cancellation_reason
optional, enumerated string

The reason the subscription item was cancelled. Present when status is cancelled. Store applicability varies by enum value.

Enum Values
customer_cancelled

The customer voluntarily cancelled the subscription.

Apple App Store: Commonly maps from expiration intent CUSTOMER_CANCELLED.

Google Play Store: Commonly maps from user-initiated cancellation / cancel-at-term-end flows.

customer_did_not_consent_to_price_increase

The customer did not consent to a price increase for the subscription item.

Apple App Store: Maps from expiration intent CUSTOMER_DID_NOT_CONSENT_TO_PRICE_INCREASE.

Google Play Store: Not typically used for this reason code.

refunded_due_to_app_issue

The subscription was cancelled and refunded due to an app issue.

Apple App Store: Commonly set for refund notifications with an app-issue refund reason.

Google Play Store: Not typically used for this reason code.

refunded_for_other_reason

The subscription was cancelled and refunded for another reason.

Apple App Store: Commonly set for refund notifications with a non-app-issue refund reason.

Google Play Store: Not typically used for this reason code.

merchant_revoked

The merchant revoked access to the subscription.

Apple App Store: Can apply when access is revoked (for example, REVOKED / related refund revoke flows).

Google Play Store: Commonly maps from revoke / chargeback-style contexts (for example, SUBSCRIPTION_REVOKED).

grace_period_expires_at
optional, timestamp(UTC) in seconds

Timestamp when the grace period for the omnichannel_subscription_item expires in the source.

Apple App Store: Present when the item is in in_grace_period (Apple billing grace period).

Google Play Store: Present when the item is in in_grace_period (SUBSCRIPTION_STATE_IN_GRACE_PERIOD).

resumes_at
optional, timestamp(UTC) in seconds

Timestamp when the subscription automatically resumes after being set to paused.

Google Play Store: Typically present for paused subscriptions.

Apple App Store: Pause is not generally applicable in the same way; this attribute is usually absent.

has_scheduled_changes
required, boolean, default=false

Indicates whether the omnichannel_subscription_item has any scheduled changes. When true, use List scheduled changes for an omnichannel subscription item to retrieve them.

updated_at
required, timestamp(UTC) in seconds

Timestamp when the omnichannel_subscription_item was last updated in Chargebee.

resource_version
optional, long

Version number of this resource. The resource_version is updated with a new timestamp in milliseconds for every change made to the resource.

omnichannel_subscription_item_offers

Represents the omnichannel_subscription_item_offers associated with the omnichannel_subscription_item.

upcoming_renewal

Information about the upcoming renewal price.

Google Play Store: Present when Google provides renewal price information and auto_renew_status is on.

Apple App Store: Not applicable; this field is absent.

linked_item

Represents an active product catalog mapping between an omnichannel_subscription_item and a Chargebee item. Use this attribute to retrieve entitlements for the omnichannel_subscription_item that are associated with the linked Chargebee item.

Omnichannel subscription item offer attributes

id
required, string, max chars=40

Unique identifier for the omnichannel_subscription_item_offer. System-generated.

offer_id_at_source
optional, string, max chars=100

Identifier of the offer on the source platform (for example, Apple App Store or Google Play Store). Used to map Chargebee's record to the source.

Apple App Store: Offer identifier from App Store Connect / StoreKit.

Google Play Store: Offer / base-plan offer identifier from Play Console when applicable.

category
required, enumerated string

Indicates functional purpose of the offer. For example, introductory indicates a first-time offer for new subscribers.

Enum Values
introductory

Introductory offer for first-time subscribers, typically providing special pricing or terms for the first billing cycle.

promotional

Promotional offer that may be available to both new and existing subscribers, often featuring limited-time pricing or terms.

developer_determined

Offer terms are determined by the developer and may include unique pricing or features. Note: Support for this category is planned for a future update.

category_at_source
optional, string, max chars=100

Category label as defined by the source platform (for example, Apple App Store or Google Play Store). Directly fetched from the source; useful for debugging or platform-specific workflows.

type
required, enumerated string

Indicates how the offer is applied from a pricing-model perspective.

Enum Values
free_trial

Provides a free trial period. The customer is not charged during the trial; regular billing begins after the trial ends.

pay_up_front

Requires a fixed upfront payment for a defined subscription period, often at a discount. For example, pay for two months in advance.

pay_as_you_go

Applies a recurring discounted price at each billing cycle over multiple renewals, such as on a monthly plan, a discount on the initial purchase, and the next three billing cycles.

type_at_source
optional, string, max chars=100

Offer type as recorded by the source platform (for example, Apple App Store or Google Play Store). Like category_at_source, this is useful for tracking and audit.

discount_type
optional, enumerated string

Discount strategy: percentage discount, fixed amount off, or fixed price override.

Enum Values
fixed_amount

Discount that subtracts a fixed amount from the original price of the subscription item.

percentage

Applies a percentage discount on the original price of the subscription item. For example, 20% off.

price

Overrides the original price with a fixed discounted price for the offer term. For example, set the price to $9.99 during the offer.

duration
required, string, max chars=5

Indicates how long the offer applies to the subscription. This attribute uses ISO 8601 duration format. For example, P1M (1 month), P7D (7 days). After this duration, regular pricing resumes.

percentage
optional, double, min=0.01, max=100

Used when discount_type is percentage. Specifies the discount as a decimal value. For example, a value of 12.5 corresponds to a 12.5% discount.

price_currency
optional, string, max chars=3

Three-letter ISO 4217 currency code for the offer price (for example, USD, EUR, INR).

price_units
optional, long

Whole-unit portion of the offer amount (for example, 10 for $10.00). Note: Depending on the discount type, this value can represent different meanings. For a fixed_amount discount, it indicates the amount deducted from the original price; for a price discount, it reflects the final amount payable by the customer.

price_nanos
optional, long

Fractional part of the offer amount, expressed in nanos (billionths of the currency unit). For example, 500000000 represents 0.50. Combine with price_units to determine the total price (for example, $10.50). Note: Depending on the discount type, this value can represent different meanings. For a fixed_amount discount, it indicates the amount deducted from the original price; for a price discount, it reflects the final amount payable by the customer.

offer_term_start
optional, timestamp(UTC) in seconds

Timestamp when the offer becomes effective for the subscription item. It is typically set to the time when the offer is first applied or activated.

offer_term_end
optional, timestamp(UTC) in seconds

Timestamp when the offer becomes invalid. After this time, regular pricing or terms apply to the subscription item.

resource_version
optional, long

Version number of this resource. The resource_version is updated with a new timestamp in milliseconds for every change made to the resource.