Skip to main content

Webhooks - Subscription restore

An expired subscription has been restored, it is now active.
It happens rarely on iOS when a revoked family sharing subscription is active again or when a subscription refund is cancelled.

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.

Example

{
id:"5e7fdfe22a3cff5084466e76",
type: 'subscription_restore',
version: '2.0.0',
createdDate:"2030-10-12T17:34:35.256Z",
data: {
id: '5da20ea9fbd92641ae8d0c03',
purchaseDate: '2030-10-12T17: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: 19.99,
convertedCurrency: 'USD',
convertedPrice: 19.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: '2d865c10c41280ba7f0ce9c4',
originalPurchase: '2d865c10c41280ba7f0ce9c4',
productSku: 'membership_pricing1',
productType: 'renewable_subscription',
productGroupName: 'subscription_group_1'
}
}