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

Omnichannel subscriptions

Represents a subscription purchased and managed in an external app marketplace (apple_app_store or google_play_store), normalized into Chargebee's omnichannel model.

Omnichannel subscriptions are typically created when you record a purchase and are kept in sync via store server notifications. They are store-managed: lifecycle changes come from Apple or Google, not from the Chargebee Subscriptions API.

Use omnichannel statuses for how store statuses map to omnichannel_subscription_item.status, and omnichannel events for notification-to-webhook mappings.

Identifier tip: Parent id_at_source is the Apple Transaction ID or Google purchase token. Nested initial_purchase_transaction.id_at_source is the Apple Transaction ID or Google Order ID (GPA.…). See attribute descriptions below.

Sample Omnichannel subscriptionJSON

Omnichannel subscriptions attributes

id
required, string, max chars=50

The ID generated by Chargebee for the omnichannel subscription.

id_at_source
required, string, max chars=500

The identifier of the subscription in the source.

Apple App Store: The original purchase Transaction ID (stable for the subscription lifecycle).

Google Play Store: The subscription purchase token. This value can change when Google issues a new token after certain subscription changes; Chargebee updates id_at_source to the latest token.

Note: Do not confuse this with initial_purchase_transaction.id_at_source. For Google, the nested transaction uses the Order ID (GPA.…), not the purchase token.

app_id
required, string, max chars=100

App Identifier in Chargebee. This is the handle created by Chargebee for your app. To get the app_id:

source
required, enumerated string

The storefront where the purchase is originally made and managed (apple_app_store or google_play_store).

Enum Values
apple_app_store

The purchase originated from the Apple App Store.

google_play_store

The purchase originated from the Google Play Store.

customer_id
optional, string, max chars=100

The id of the customer object that is associated with this purchase.

created_at
required, timestamp(UTC) in seconds

Timestamp when the omnichannel_subscription was created in Chargebee.

purchased_at
optional, timestamp(UTC) in seconds

Timestamp (UTC) when the subscription was originally purchased in the app marketplace (initial purchase). This corresponds to the time of the initial purchase transaction in the source.

updated_at
required, timestamp(UTC) in seconds

Indicates timestamp when the omnichannel_subscription was last updated .

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_items

Items associated with the omnichannel_subscription.

initial_purchase_transaction

Refers to the record created when a customer makes their first purchase.

Omnichannel subscription item 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. It is applicable only if the 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

Indicates timestamp when the subscription associated with the omnichannel_subscription_item was 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

Indicates 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

Indicates 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 .

Initial purchase transaction attributes

id
required, string, max chars=40

Unique ID of an omnichannel_transaction.

id_at_source
required, string, max chars=100

The store-native identifier for this transaction.

Apple App Store: Transaction ID for this transaction.

Google Play Store: Order ID for this transaction (typically GPA.…). This is not the subscription purchase token (that is the parent omnichannel_subscription.id_at_source).

app_id
required, string, max chars=100

App Identifier in Chargebee. This is the handle created by Chargebee for your app. To get the app_id:

price_currency
optional, string, max chars=3

The three-letter ISO 4217 currency code associated with the transaction (price_currency).

price_units
optional, long

The whole units of the amount. For example: if price_currency is USD (two-decimal currency), then the unit value for USD 1.23 will be 1 if price_currency is JPY (zero-decimal currency), then the unit value for JPY 123 will be 123 if price_currency is BHD (three-decimal currency), then the unit value for BHD 1.234 will be 1

price_nanos
optional, long

The fractional price amount, in nanos (billionths of the currency unit). The value must be between 0 and +999,999,999 inclusive. For example: If price_currency is USD (two-decimal currency), then nanos value for USD 1.23 will be 230,000,000 If price_currency is JPY (zero-decimal currency), then nanos value for JPY 123 will be 0 If price_currency is BHD (three-decimal currency), then nanos value for BHD 1.234 will be 234,000,000

Apple App Store: Typically present for purchase and renewal transactions.

Google Play Store: May be present when Google provides price data for the transaction; otherwise absent.

type
required, enumerated string

Omnichannel transaction type that describes this transaction.

Enum Values
purchase

Indicates that the transaction occurred for an initial purchase (subscription or one-time order).

renewal

Indicates that the transaction was initiated as part of a renewal for a previously completed subscription purchase.

transacted_at
optional, timestamp(UTC) in seconds

Timestamp denoting when the transaction occurred in the source.

Apple App Store: Typically present.

Google Play Store: May be present when Google provides purchase time for the transaction; otherwise absent.

created_at
required, timestamp(UTC) in seconds

The timestamp of transaction creation

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. This attribute will be present only if the resource has been updated after 2016-09-28.

linked_omnichannel_subscriptions

A list of omnichannel_subscription objects linked to this transaction. Each entry represents a subscription associated with the transaction.

linked_omnichannel_one_time_orders

A list of omnichannel_one_time_order objects linked to this transaction. Each entry represents a one-time order associated with the transaction.