
> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).

## Processing Webhooks[](#processing-webhooks)

We've stopped giving access to the legacy solution due to the limitations mentioned [here](https://www.chargebee.com/docs/billing/2.0/mobile-subscriptions/mobile-subscriptions-limitations). Please [request access](https://app.chargebee.com/login?forward=https://app.chargebee.com/request_access/omnichannel-subscription&ref=feature) for enabling the new [Omnichannel Subscriptions](/docs/api/recorded_purchases/recorded-purchase-object) solution.

Configure Apple or Google server-side notifications so that subscriptions created using [process purchase command API](/docs/api/in_app_subscriptions/process-purchase-command) are kept up-to-date using information received via the webhooks. Generate a notifications URL using these links - [Apple](https://www.chargebee.com/docs/2.0/mobile-app-store-product-iap.html#connection-keys_notification-url) and [Google](https://www.chargebee.com/docs/2.0/mobile-playstore-notifications.html) and configure it in their respective stores.

#### App Store notifications with use case[](#app-store-notifications-with-use-case)

The following table lists the [notification types](https://developer.apple.com/documentation/appstoreservernotifications/notification_type) from App Store and describes how Chargebee responds to each of them.

**Note:**

-   V1 Notification types available on the App Store sandbox are listed [here](https://developer.apple.com/documentation/appstoreservernotifications/notification_type#3694879).
    
-   Chargebee supports both App Store notifications [v1](https://developer.apple.com/documentation/appstoreservernotifications/app_store_server_notifications_v1) and [v2](https://developer.apple.com/documentation/appstoreservernotifications/app_store_server_notifications_v2).
    

#### App Store Server Notifications V2[](#app-store-server-notifications-v2)

**Notification type**

**Subtype**

**Chargebee's response**

`TEST`

`Notification without any Subtype`

Indicates that the App Store server sends when you request it by calling the [Request a Test Notification](https://developer.apple.com/documentation/appstoreserverapi/request_a_test_notification) endpoint. Call that endpoint to test if your server is receiving notifications. You receive this notification only at your request.

Chargebee tests if a notification is received or not. No webhook gets triggered.

`SUBSCRIBED`

`INITIAL_BUY`

Indicates that the user purchased the subscription for the first time or that the user received access to the subscription through Family Sharing for the first time.

Chargebee does not take action as the initial purchase is recorded using [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API. However you can view these events in the "Sync events" page, if the subscription is present in the app store but wasn't created in Chargebee due to network failures. These events can be filtered by selecting "Pending" status in the Sync events page and then can be synced to Chargebee by invoking [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API for the associated receipt.

`RESUBSCRIBE`

Indicates that the user resubscribed or received access through Family Sharing to the same subscription or to another subscription within the same subscription group.

**Chargebee webhooks triggered:**  

[subscription\_reactivated](/docs/api/events), [subscription\_reactivated\_with\_backdating](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`RENEWAL_EXTENDED`

`Notification without any Subtype`

Indicates that the App Store extended the subscription renewal date that the developer requested. Learn more about [Extend a Subscription Renewal Date](https://developer.apple.com/documentation/appstoreserverapi/extend_a_subscription_renewal_date).

Chargebee can extend the current term end date based on the requested date. 

**Chargebee webhooks triggered:**  

[subscription\_changed](/docs/api/events)

`REFUND_DECLINED`

`Notification without any Subtype`

Indicates that the App Store declined a refund request initiated by the app developer.

The event will be recorded in the Sync events table if the refund request is declined. Chargebee will not take any action or trigger any webhook.

`REFUND`

`Notification without any Subtype`

Indicates that App Store successfully completed refund(Revocation Date and Revocation Reason will hold the date and reason for refund).

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events), [credit\_note\_created](/docs/api/events), [credit\_note\_updated](/docs/api/events), [subscription\_cancelled](/docs/api/events), and [payment\_refunded](/docs/api/events).

`GRACE_PERIOD_EXPIRED`

`Notification without any Subtype`

Indicates that the billing grace period has ended without renewing the subscription, so you can turn off access to service or content. The App Store continues to retry billing for 60 days, or until the user resolves their billing issue or cancels their subscription, whichever comes first.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events)

`EXPIRED`

`BILLING_RETRY`

Indicates that the subscription expired because the subscription failed to renew before the billing retry period ended.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`VOLUNTARY`

Indicates that the subscription expired after the user disabled subscription auto-renewal.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`PRICE_INCREASE`

Indicates that the subscription expired because the user didn't consent to a price increase.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`PRODUCT_NOT_FOR_SALE`

Indicates that the subscription expired because the product wasn't available for purchase at the time the subscription attempted to renew.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`Notification without any Subtype`

Indicates that the subscription expired for some other reason.

**Chargebee webhooks triggered:** 

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`DID_RENEW`

`Notification without any Subtype`

Indicates that the active subscription has successfully auto-renewed for a new transaction period. Provide the customer with access to the subscription's content or service.

**Chargebee webhooks triggered:** 

[subscription\_renewed](/docs/api/events), [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events)

`BILLING_RECOVERY`

Indicates that the expired subscription which previously failed to renew now successfully renewed.

**Chargebee webhooks triggered if the subscription is active:**

[subscription\_renewed](/docs/api/events), [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events)

**Chargebee webhooks triggered if the subscription is canceled:**

[subscription\_reactivated](/docs/api/events), [subscription\_reactivated\_with\_backdating](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events)

`DID_FAIL_TO_RENEW`

`GRACE_PERIOD`

Indicates that the subscription failed to renew due to a billing issue; continue to provide access to the subscription during the grace period.

**Chargebee webhooks triggered**:

[subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events)

`Notification without any Subtype`

Indicates that the grace period for subscription renewal is over and the service is stopped.

**Chargebee webhooks triggered**:

[subscription\_changed](/docs/api/events) and [subscription\_cancelled](/docs/api/events)

`DID_CHANGE_RENEWAL_STATUS`

`AUTO_RENEW_ENABLED`

Indicates that the user enabled subscription auto-renewal.

**Chargebee webhooks triggered**:

[subscription\_reactivated](/docs/api/events), [subscription\_reactivated\_with\_backdating](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events)

`AUTO_RENEW_DISABLED`

Indicates that the user disabled subscription auto-renewal, or the App Store disabled subscription auto-renewal after the user requested a refund.

**Chargebee webhooks triggered**:

[subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events)

`DID_CHANGE_RENEWAL_PREF`

`UPGRADE`

Indicates that the user upgraded their subscription. Upgrades take effect immediately.

**Chargebee webhooks triggered**: 

[subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events)

`DOWNGRADE`

Indicates that the user downgraded their subscription. Downgrades take effect at the next renewal.

In Chargebee cancellation will be scheduled at the end of the term. 

**Chargebee webhooks triggered**:

[subscription\_changed](/docs/api/events)

`Notification without any Subtype`

Indicates that the user canceled the downgrade which is scheduled.

**Chargebee webhooks triggered**:

[subscription\_changed](/docs/api/events)

`PRICE_INCREASE`

`PENDING`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`ACCEPTED`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`OFFER_REDEEMED`

`INITIAL_BUY`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`RESUBSCRIBE`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`UPGRADE`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`DOWNGRADE`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`Notification without any Subtype`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`REVOKE`

`Notification without any Subtype`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

`CONSUMPTION_REQUEST`

`Notification without any Subtype`

Chargebee does not support this notification. Therefore, this notification is not recorded in Chargebee.

#### App Store Server Notifications V1[](#app-store-server-notifications-v1)

**Notification type**

**Chargebee's response**

`DID_CHANGE_RENEWAL_STATUS`, `INTERACTIVE_RENEWAL`

This notification triggers when a subscription is active or the customer is upgraded to another SKU (stock-keeping unit). Chargebee checks relevant details in the receipt to detect an upgrade event. Once an upgrade event is detected, you can update the subscription with the new product details, and allow the update to take effect immediately.

**Chargebee webhooks triggered** For subscription cancellation, whether immediately or at the end of the term. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

For subscription upgrade with proration. [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

For subscription reactivation. [subscription\_reactivated](/docs/api/events), [subscription\_reactivated\_with\_backdating](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

For regular subscription renewal. [subscription\_renewed](/docs/api/events), [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`DID_CHANGE_RENEWAL_PREF`

This notification triggers when a subscription is active or the customer is downgraded to another SKU(stock-keeping unit). It indicates that the customer made a change in their subscription plan that takes effect at the next renewal. The currently active plan is not affected. Chargebee schedule downgrades to take effect at the end of the period. At the end of the billing period, confirm the downgrade at Apple's end before downgrading it in the Chargebee.

**Chargebee webhooks triggered** For subscription upgrade with proration. [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`DID_CHANGE_RENEWAL_STATUS`

This notification triggers when a subscription is expired or the customer resubscribes to the same SKU(stock-keeping unit). Chargebee re-activates subscription immediately.

**Chargebee webhooks triggered** For subscription cancellation. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

For subscription upgrade with proration. [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`INTERACTIVE_RENEWAL`, `DID_CHANGE_RENEWAL_STATUS`

This notification triggers when a subscription is expired or the customer resubscribed to another SKU (upgrade or downgrade). Chargebee immediately re-activates the subscription with the new product(plan or item).

**Chargebee webhooks triggered** For subscription upgrade with proration. [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

For subscription cancellation, whether immediately or at the end of the term. subscription\_changed, subscription\_cancellation\_scheduled, subscription\_cancellation\_reminder, and subscription\_cancelled.

`DID_CHANGE_RENEWAL_STATUS`

This notification triggers when the customer canceled the subscription from the App Store Subscriptions settings page. Their subscription will not auto-renew and will expire on the `expires_date`.

Chargebee sets subscription to cancel at `expires_date`.

**Chargebee webhooks triggered**

For subscription cancellation, whether immediately or at the end of the term. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

`DID_CHANGE_RENEWAL_STATUS`

This notification triggers when the customer previously canceled the subscription but now resubscribed to the same product before the subscription expired. The subscription will auto-renew on the `expires_date`.

Chargebee removes scheduled cancellation of subscription and allows it to auto-renew. If the dates have changed for the term start and end, change the same in the Chargebee subscription.

**Chargebee webhooks triggered**

For subscription reactivation. [subscription\_reactivated](/docs/api/events), [subscription\_reactivated\_with\_backdating](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`CANCEL`, `DID_CHANGE_RENEWAL_STATUS`

This notification triggers when AppleCare refunded a subscription. `CANCEL` indicates that Apple Support cancelled the auto-renewable subscription and the customer received a refund as of the timestamp in `cancellation_date_ms`.

Chargebee cancels the subscription on `cancellation_date_ms`. Record an offline refund and create a [refundable credit note](/docs/api/credit_notes/credit_note-object#type) for the full amount. Record cancellation comment on the refund transaction saying `canceled by Apple Support`.

**Chargebee webhooks triggered**

For subscription cancellation, whether immediately or at the end of the term. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

`DID_FAIL_TO_RENEW`

This notification triggers when the subscription failed to renew because of a billing issue. It Indicates a subscription that failed to renew due to a billing issue. Check `is_in_billing_retry_period` to know the current retry status of the subscription. Check `grace_period_expires_date` to know the new service expiration date if the subscription is in a billing grace period.

Chargebee takes the following actions.

-   When we receive this notification before a renewal invoice is created, schedule a cancellation at the end of the current term, if there is no grace period defined in the receipt.
-   When the notification is received, after the renewal invoice is generated, the subscription remains `active` while the invoice `status` becomes `not_paid`.
-   If `grace_period_expires_date` exists, schedule a subscription cancellation on that date.
-   If there is no recovery until the scheduled cancellation date, then the subscription will get cancelled as scheduled, and the `not_paid` invoice will get [written off](/docs/api/invoices/write-off-an-invoice).
-   If `grace_period_expires_date` does not exist, cancel the subscription and write off the invoice immediately.

**Chargebee webhooks triggered**

For subscription cancellation, whether immediately or at the end of the term. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

`DID_RECOVER`

This notification triggers when expired subscription recovered by App Store through a billing retry. It indicates a successful automatic renewal of an expired subscription that failed to renew in the past. Check `expires_date` to determine the next renewal date and time. Chargebee resumes the paused subscription with any changes in subscription term dates as per receipt data. Remove scheduled cancellation. If we are syncing dunning information, update it accordingly.

**Chargebee webhooks triggered** For regular subscription renewal. [subscription\_renewed](/docs/api/events), [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`DID_CHANGE_RENEWAL_STATUS`

This notification triggers when the subscription has churned after failed billing retry attempts. It indicates a change in the subscription renewal status. In the JSON response, check `auto_renew_status_change_date_ms` to know the date and time of the last status update. Check `auto_renew_status` to know the current renewal status. Chargebee cancels the subscription at the end of the current term.

**Chargebee webhooks triggered** For subscription cancellation, whether immediately or at the end of the term. [subscription\_changed](/docs/api/events), [subscription\_cancellation\_scheduled](/docs/api/events), [subscription\_cancellation\_reminder](/docs/api/events), and [subscription\_cancelled](/docs/api/events).

`REFUND`

This notification triggers when AppleCare successfully refunded the transaction for a consumable, non-consumable, or non-renewing subscription. Here, the `cancellation_date_ms` contains the timestamp of the refunded transaction. The `original_transaction_id` and `product_id` identify the original transaction and product. The `cancellation_reason` contains the reason.

Chargebee cancels the subscription on a specified date and records an offline refund for the full amount as `canceled by Apple Support`.

**Chargebee webhooks triggered**

[subscription\_changed](/docs/api/events), [credit\_note\_created](/docs/api/events), [credit\_note\_updated](/docs/api/events), [subscription\_cancelled](/docs/api/events), and [payment\_refunded](/docs/api/events).

`PRICE_INCREASE_CONSENT`

This notification triggers when the subscription price is increased, and the customer must agree to the increase before the subscription auto-renews. It indicates that App Store has started asking the customer to consent to your app's subscription price increase. In the [unified\_receipt.Pending\_renewal\_info](https://developer.apple.com/documentation/appstoreservernotifications/unified_receipt/pending_renewal_info) object, the `price_consent_status` value is `0`, indicating that App Store is asking for the customer's consent, and hasn't received it. The subscription won't auto-renew unless the user agrees to the new price. When the customer agrees to the price increase, the system sets `price_consent_status` to `1`. Check the receipt using [verifyReceipt](https://developer.apple.com/documentation/appstorereceipts/verifyreceipt) to view the updated price-consent status. Chargebee updates the subscription overriding subscription price. When consent is not received and renewal date is reached, pause the subscription. If possible, add a comment on the subscription saying "Paused because price increase consent not received from the customer".

`DID_RENEW`

This notification triggers when a customer's subscription is successfully auto-renewed for a new transaction period. Chargebee renews the subscription if not already auto-renewed.

**Chargebee webhooks triggered** For regular subscription renewal. [subscription\_renewed](/docs/api/events), [subscription\_changed](/docs/api/events), [invoice\_generated](/docs/api/events), [payment\_succeeded](/docs/api/events), and [invoice\_updated](/docs/api/events).

`REVOKE`

This notification triggers when a purchaser disabled Family Sharing for a product, the purchaser (or family member) left the family group, or the purchaser asked for and received a refund. Your app will also receive a `paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:)` call. For more information about Family Sharing, see [Supporting Family Sharing in Your App](https://developer.apple.com/documentation/storekit/in-app_purchase/supporting_family_sharing_in_your_app).

`CONSUMPTION_REQUEST`

The customer initiated a refund request for a consumable in-app purchase. Chargebee does not support this notification.

`INITIAL_BUY`

Indicates that the user purchased the subscription for the first time or that the user received access to the subscription through Family Sharing for the first time.

Chargebee does not take action as the initial purchase is recorded using [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API. However you can view these events in the "Sync events" page, if the subscription is present in the app store but wasn't created in Chargebee due to network failures. These events can be filtered by selecting "Pending" status in the Sync events page and then can be synced to Chargebee by invoking [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API for the associated receipt.

##### Webhook events triggered for creating an Apple subscription[](#webhook-events-triggered-for-creating-an-apple-subscription)

When an `in-app subscription` is created in Chargebee, the following webhook events get generated in sequence.

-   Creates a plan created or Item (`plan_created` or `item_created`)
-   Creates a customer (`customer_created`)
-   Creates a subscription (`subscription_created`)
-   Updates a subscription (`subscription_changed`)
-   Generates an invoice (`invoice_generated`)
-   Successful payments (`payment_succeeded`)
-   Updates an invoice (`invoice_updated`)

#### Troubleshooting apple's webhook processing errors[](#troubleshooting-apples-webhook-processing-errors)

Since Apple notifications do not provide any price information, processing a webhook fails in the following scenarios:

**Issue**

**Solution**

A new purchase (`INITIAL_BUY`) server notification is received.

Always use the process purchase command API to record a new purchase. Chargebee requires the amount paid and the currency to create a subscription.

A notification is received for an SKU (plan) change but the plan-item price is unavailable in Chargebee.

Create the plan-item price in Chargebee [via API](/docs/api/item_prices/create-an-item-price) or admin console, then [retry processing](https://www.chargebee.com/docs/webhook_settings.html#automatic-retries) the webhook.

#### Google Play Store notifications with use case[](#google-play-store-notifications-with-use-case)

Chargebee acts upon certain [notifications from Google](https://developer.android.com/google/play/billing/rtdn-reference#sub). On receiving any of the notifications listed in the table below, Chargebee checks whether the subscription is present. If present, it carries out certain actions as described in the table. The webhooks triggered due to these actions are also listed here for convenience.

**Google notification**

**Chargebee's response**

`SUBSCRIPTION_RECOVERED`

When the subscription is in the paused state, Chargebee [resumes](/docs/api/subscriptions/resume-a-subscription) the subscription or schedules it for resumption.

**Chargebee webhooks triggered**

For in-term resumption. [`subscription_resumed`](/docs/api/events)

For out-of-term resumption. [`subscription_resumed`](/docs/api/events) and [`invoice_generated`](/docs/api/events)

For scheduled resumption. [`subscription_resumption_scheduled`](/docs/api/events)

`SUBSCRIPTION_RENEWED`

Chargebee updates the subscription with the next renewal date. After receiving this notification if the subscription is in the canceled state, Chargebee [reactivates](/docs/api/subscriptions/reactivate-a-subscription) the subscription.

**Chargebee webhooks triggered**

For subscription reactivation. [`subscription_reactivated`](/docs/api/events), [`subscription_reactivated_with_backdating`](/docs/api/events), [`payment_succeeded`](/docs/api/events), and [`invoice_updated`](/docs/api/events).

For regular subscription renewal.

[`subscription_renewed`](/docs/api/events), [`subscription_changed`](/docs/api/events), [`invoice_generated`](/docs/api/events), [`payment_succeeded`](/docs/api/events), and [`invoice_updated`](/docs/api/events).

`SUBSCRIPTION_RESTARTED`

Chargebee [reactivates](/docs/api/subscriptions/reactivate-a-subscription) the canceled subscription.

**Chargebee webhooks triggered** [`subscription_reactivated`](/docs/api/events), [`subscription_reactivated_with_backdating`](/docs/api/events), [`payment_succeeded`](/docs/api/events), and [`invoice_updated`](/docs/api/events).

`SUBSCRIPTION_IN_GRACE_PERIOD`

Chargebee [extends](/docs/api/subscriptions/change-term-end) the current subscription term.

**Chargebee webhooks triggered**

[`subscription_changed`](/docs/api/events)

`SUBSCRIPTION_ON_HOLD`

Chargebee [pauses](/docs/api/subscriptions/pause-a-subscription) the subscription and keeps it on hold.

**Chargebee webhooks triggered**

[`subscription_paused`](/docs/api/events)

`SUBSCRIPTION_PAUSED`

If the subscription is not already paused, Chargebee [pauses](/docs/api/subscriptions/pause-a-subscription) the subscription.

**Chargebee webhooks triggered**

[`subscription_paused`](/docs/api/events)

`SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED`

If the subscription is not already paused, Chargebee schedules the subscription [pause](/docs/api/subscriptions/pause-a-subscription) on the pause\_date.

**Chargebee webhooks triggered**

[`subscription_pause_scheduled`](/docs/api/events)

`SUBSCRIPTION_REVOKED`

Chargebee [cancels](/docs/api/subscriptions/cancel-subscription-for-items) the subscription immediately.

**Chargebee webhooks triggered**

[`invoice_updated`](/docs/api/events) and [`subscription_cancelled`](/docs/api/events)

`SUBSCRIPTION_CANCELED`

Chargebee [cancels](/docs/api/subscriptions/cancel-subscription-for-items) the subscription or schedules it for cancellation.

**Chargebee webhooks triggered**

For subscription cancellation, whether immediately or at the end of the term. [`subscription_changed`](/docs/api/events), [`subscription_cancellation_scheduled`](/docs/api/events), [`subscription_cancellation_reminder`](/docs/api/events), and [`subscription_cancelled`](/docs/api/events).

`SUBSCRIPTION_EXPIRED`

Chargebee [cancels](/docs/api/subscriptions/cancel-subscription-for-items) the subscription immediately.

**Chargebee webhooks triggered**

[`subscription_cancelled`](/docs/api/events)

`SUBSCRIPTION_PURCHASED`

Indicates that the user purchased the subscription for the first time. Chargebee does not take action as the initial purchase is recorded using [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API.

However, you can view these events in the "Sync events" page, if the subscription is present in the play store but wasn't created in Chargebee due to network failures. These events can be filtered by selecting "Pending" status in the Sync events page and then can be synced to Chargebee by invoking [Process Purchase Command](/docs/api/in_app_subscriptions/process-purchase-command) API for the associated receipt.

`SUBSCRIPTION_PRICE_CHANGE_CONFIRMED`

Chargebee does not support this notification.

`SUBSCRIPTION_DEFERRED`

Chargebee does not support this notification.