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.
| **Note:** [Client libraries](https://developers.google.com/android-publisher/libraries)released after November 1, 2025, will no longer include these features and APIs. However, existing libraries can still access them until the shutdown date.

### Deprecated subscription APIs

This section lists the API deprecations.

|                                                                                          API                                                                                          |                                                                                                                                                   Available replacement                                                                                                                                                   |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [subscriptions.get](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/get)                                                                      | [subscriptionsv2.get](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2/get)                                                                                                                                                                                                      |
| [subscriptions.refund](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/refund)                                                                | Call[subscriptionsv2.get](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2/get)to get SubscriptionPurchaseLineItem. latest_successful_order_id, and then call[Orders.refund](https://developers.google.com/android-publisher/api-ref/rest/v3/orders/refund)to refund the orders. |
| [subscriptions.revoke](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/revoke)                                                                | [subscriptionsv2.revoke](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2/revoke)                                                                                                                                                                                                |
| [SubscriptionPurchaseV2. latestOrderId](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2#resource:-subscriptionpurchasev2)                   | [SubscriptionPurchaseLineItem. latest_successful_order_id](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2#subscriptionpurchaselineitem)                                                                                                                                        |
| [RealTimeDeveloperNotification. SubscriptionNotification.subscriptionId]()                                                                                                            | No replacement                                                                                                                                                                                                                                                                                                            |
| [RealTimeDeveloperNotification. SubscriptionNotification. notificationType SUBSCRIPTION_PRICE_CHANGE_CONFIRMED](https://developer.android.com/google/play/billing/rtdn-reference#sub) | 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`: - Payment is pending: - `SUBSCRIPTION_STATE_PENDING`(new purchases with pending transaction) - `SUBSCRIPTION_STATE_IN_GRACE_PERIOD` - `SUBSCRIPTION_STATE_ON_HOLD` - Payment has been received: - `SUBSCRIPTION_STATE_ACTIVE` - Free trial: - Order.line_items.subscription_details.offer_phase field which you can fetch by the Orders.get API. - Deferred upgrade / downgrade: - `SUBSCRIPTION_STATE_PENDING` |
| `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`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/get)has been upgraded to[`purchases.subscriptionsv2:get`](https://developers.google.com/android-publisher/api-ref/rest/v3/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`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/acknowledge),[`purchases.subscriptions:cancel`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/cancel),[`purchases.subscriptions:defer`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/defer),[`purchases.subscriptions:refund`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/refund), and[`purchases.subscriptions:revoke`](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/revoke)as you did before.