Skip to main content

Webhooks - Subscription product change

The product of the subscription has been changed, the subscription will be replaced with the new product at the next renewal date.

The new product sku is available in the subscriptionRenewalProductSku property.


This event is only triggered on IOS, currently Android does not offer any way to detect the next product sku from the receipt when a deferred subscription replace is performed.
It is triggered on IOS when having a subscription downgrade or a subscription crossgrade with a different duration.

Request body

ObjectThe latest data of the purchase related to the event, see the Get purchase API route response properties.
When receiving a webhook you can call the Get purchase API route in order to verify the purchase or refresh the data if your webhook processing got delayed and you're concerned the data might be outdated.


type: 'subscription_product_change',
version: '2.0.0',
data: {
id: '5da20ea9fbd92641ae8d0c04',
purchaseDate: '2030-10-14T17:34:33.256Z',
quantity: 1,
platform: 'ios',
country: 'US',
tags: {},
orderId: '9873637705964380',
app: '5d86507259e828b8fe321f7e',
user: '5d865c10c41280ba7f0ce9c2',
userId: '62785074-8f32-42a5-b86b-90dbd79ce212',
product: '5d86507259e828b8fe321f8a',
listing: '5d86507259e828b8fe321f32',
store: '5d86507259e828b8fe321f85',
currency: 'USD',
price: 29.99,
convertedCurrency: 'USD',
convertedPrice: 29.99,
isSandbox: false,
isRefunded: false,
isSubscription: true,
isSubscriptionActive: true,
isSubscriptionRenewable: true,
isTrialConversion: false,
subscriptionState: 'active',
subscriptionPeriodType: "normal",
expirationDate: '2030-11-12T17:34:33.256Z',
linkedPurchase: '5da20ea9fbd92641ae8d0c03',
originalPurchase: '2d865c10c41280ba7f0ce9c4',
productSku: 'membership2_pricing1',
productType: 'renewable_subscription',
productGroupName: 'subscription_group_1',
subscriptionRenewalProduct: '2d865c10c41280ba7f0ce9c3',
subscriptionRenewalProductSku: 'membership3_pricing1'