This document lists the Google Play Developer APIs and the related features which are in a deprecation period.
Deprecation timeline - May 21, 2025 to August 31, 2027
The features and APIs in this section are deprecated as of May 21, 2025, and will be shut down on August 31, 2027. However, you can avail an extension for the deprecated items up to November 1, 2027.
Deprecated subscription APIs
This section lists the API deprecations.
API | Available replacement |
---|---|
subscriptions.get | subscriptionsv2.get |
subscriptions.refund | Call subscriptionsv2.get to get SubscriptionPurchaseLineItem. latest_successful_order_id, and then call Orders.refund to refund the orders. |
subscriptions.revoke | subscriptionsv2.revoke |
SubscriptionPurchaseV2. latestOrderId | SubscriptionPurchaseLineItem. latest_successful_order_id |
RealTimeDeveloperNotification. SubscriptionNotification.subscriptionId | No replacement |
RealTimeDeveloperNotification. SubscriptionNotification. notificationType SUBSCRIPTION_PRICE_CHANGE_CONFIRMED | SUBSCRIPTION_PRICE _CHANGE_UPDATED |
SubscriptionPurchaseV2 fields for recurring subscriptions
purchases.subscriptionv2
contains new fields that provide more detail
about new subscription objects. The following table shows how fields from
the legacy subscription endpoint map to corresponding fields in
purchases.subscriptionv2
.
SubscriptionPurchase | SubscriptionPurchaseV2 |
---|---|
countryCode |
regionCode |
orderId |
SubscriptionPurchaseLineItem.latest_successful_order_id |
(no equivalent field) | lineItems (list of
SubscriptionPurchaseLineItem)
that represents the products acquired with the purchase |
(no equivalent field) | lineItems.offerDetails.basePlanId |
(no equivalent field) | lineItems.offerDetails.offerId |
(no equivalent field) | lineItems.offerDetails.offerTags |
startTimeMillis |
startTime |
expiryTimeMillis |
lineItems.expiryTime (each subscription acquired
in the purchase has its own expiryTime ) |
(no equivalent field) | subscriptionState (indicates the
state of the subscription) |
(no equivalent field) | pausedStateContext (only present if the subscription
status is SUBSCRIPTION_STATE_PAUSED ) |
autoResumeTimeMillis |
pausedStateContext.autoResumeTime |
(no equivalent field) | canceledStateContext (only present if the
subscription status is SUBSCRIPTION_STATE_CANCELED ) |
(no equivalent field) | testPurchase (only present in licensed tester
purchases) |
autoRenewing |
lineItems.autoRenewingPlan.autoRenewEnabled |
priceCurrenceCode ,
priceAmountMicros |
lineItems.autoRenewingPlan.recurringPrice |
introductoryPriceInfo |
(no equivalent field) This information can be found in the offer for
each of the subscriptions purchased. |
developerPayload | (no equivalent field) developer payload has been deprecated |
paymentState | (no equivalent field) You can infer the payment state from subscriptionState :
|
cancelReason ,
userCancellationTimeMillis ,
cancelSurveyResult |
canceledStateContext |
linkedPurchaseToken |
linkedPurchaseToken (no change) |
purchaseType |
Test: through testPurchase Promotion: signupPromotion |
priceChange |
lineItems.autoRenewingPlan.priceChangeDetails |
profileName ,
emailAddress ,
givenName ,
familyName ,
profileId |
subscribeWithGoogleInfo |
acknowledgementState |
acknowledgementState (no change) |
promotionType ,
promotionCode |
signupPromotion |
externalAccountId ,
obfuscatedExternalAccountId ,
obfuscatedExteranlProfileId |
externalAccountIdentifiers |
Other subscription management functions
While
purchases.subscriptions:get
has been upgraded to
purchases.subscriptionsv2:get
,
the rest of the developer subscription management functions remain
unchanged for now in the purchases.subscriptions
endpoint,
so you can continue using
purchases.subscriptions:acknowledge
,
purchases.subscriptions:cancel
,
purchases.subscriptions:defer
,
purchases.subscriptions:refund
,
and
purchases.subscriptions:revoke
as you did before.