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.
Note: This resource represents in-app subscription items made on Apple App Store and Google Play Store.
Sample Omnichannel subscription itemJSON
Omnichannel subscription items attributes
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.
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 of the omnichannel_subscription_item. Status lives on the item, not on the parent subscription.
Learn more about status and store mappings.
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).
The subscription item expired for a non-cancellation reason. See expiration_reason.
The subscription item is cancelled (entitlement ended due to cancellation / revoke / refund contexts). See cancellation_reason.
Billing is retrying after a payment failure and access may be restricted (Apple billing retry / Google account hold).
Billing is retrying during a grace period; service should typically continue.
The subscription item is paused. See resumes_at when available.
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.
Auto-renewal is disabled for the omnichannel_subscription_item.
Auto-renewal is enabled for the omnichannel_subscription_item.
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).
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.
Billing error, such as invalid customer payment information.
Apple App Store: Maps from expiration intent BILLING_ERROR.
The product was unavailable for purchase at the time of renewal.
Apple App Store: Maps from expiration intent PRODUCT_NOT_AVAILABLE.
The subscription associated with the item expired for an unspecified reason.
Apple App Store: Maps from expiration intent OTHER.
The reason the subscription item was cancelled. Present when status is cancelled. Store applicability varies by enum value.
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.
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.
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.
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.
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).
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).
Indicates whether the omnichannel_subscription_item has any scheduled changes. When true, use List scheduled changes for an omnichannel subscription item to retrieve them.
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.
Omnichannel subscription item offer attributes
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.
Indicates functional purpose of the offer. For example, introductory
indicates a first-time offer for new subscribers.
Introductory offer for first-time subscribers, typically providing special pricing or terms for the first billing cycle.
Promotional offer that may be available to both new and existing subscribers, often featuring limited-time pricing or terms.
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.
Indicates how the offer is applied from a pricing-model perspective.
Provides a free trial period. The customer is not charged during the trial; regular billing begins after the trial ends.
Requires a fixed upfront payment for a defined subscription period, often at a discount. For example, pay for two months in advance.
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.
Discount strategy: percentage discount, fixed amount off, or fixed price override.
Discount that subtracts a fixed amount from the original price of the subscription item.
Applies a percentage discount on the original price of the subscription item. For example, 20% off.
Overrides the original price with a fixed discounted price for the offer term. For example, set the price to $9.99 during the offer.
Three-letter ISO 4217 currency code for the offer price (for example, USD, EUR, INR).
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.
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.