Android Subscriptions API

Create, manage, and query subscription products and their base plans, offers, and purchase entitlements.

Operations 13

GET /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Get Subscription Purchase Status #
POST /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge Acknowledge a Subscription Purchase #
POST /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel Cancel a Subscription Purchase #
POST /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer Defer a Subscription Purchase #
POST /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke Revoke a Subscription Purchase #
GET /applications/{packageName}/purchases/subscriptionsv2/tokens/{token} Get Subscription Purchase V2 #
GET /applications/{packageName}/monetization/subscriptions List Subscription Products #
POST /applications/{packageName}/monetization/subscriptions Create a Subscription Product #
GET /applications/{packageName}/monetization/subscriptions/{productId} Get a Subscription Product #
PATCH /applications/{packageName}/monetization/subscriptions/{productId} Update a Subscription Product #
DELETE /applications/{packageName}/monetization/subscriptions/{productId} Delete a Subscription Product #
GET /applications/{packageName}/monetization/subscriptions/{productId}/basePlans/{basePlanId}/offers List Subscription Offers #
POST /applications/{packageName}/monetization/subscriptions/{productId}/basePlans/{basePlanId}/offers Create a Subscription Offer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/android-subscriptions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

android-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Google Play Developer Orders Subscriptions API
  description: The Google Play Developer API allows you to perform a number of publishing and app-management tasks. It includes the Subscriptions and In-App Purchases API, which lets you manage in-app purchases and subscriptions, and the Reviews API for retrieving and replying to user reviews. This specification covers the purchases, reviews, and subscriptions resources of the Google Play Developer API v3.
  version: '3.0'
  termsOfService: https://developers.google.com/terms
  contact:
    name: Google Play Developer Support
    url: https://support.google.com/googleplay/android-developer
  license:
    name: Creative Commons Attribution 4.0
    url: https://creativecommons.org/licenses/by/4.0/
  x-logo:
    url: https://www.gstatic.com/android/market_images/web/favicon_v2.ico
    altText: Google Play
servers:
- url: https://androidpublisher.googleapis.com/androidpublisher/v3
  description: Google Play Developer API v3 production endpoint
security:
- oauth2:
  - androidpublisher
tags:
- name: Subscriptions
  description: Create, manage, and query subscription products and their base plans, offers, and purchase entitlements.
  externalDocs:
    url: https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.subscriptions
paths:
  /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:
    get:
      operationId: getPurchaseSubscription
      summary: Get Subscription Purchase Status
      description: Checks whether a user's subscription purchase is valid and returns its expiry time. Includes information about auto-renewal status, payment state, cancellation reason, and linked purchase token.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/subscriptionId'
      - $ref: '#/components/parameters/purchaseToken'
      responses:
        '200':
          description: Successful response with subscription purchase details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchase'
              examples:
                Getpurchasesubscription200Example:
                  summary: Default getPurchaseSubscription 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    startTimeMillis: example_value
                    expiryTimeMillis: example_value
                    userCancellationTimeMillis: example_value
                    autoRenewing: true
                    priceCurrencyCode: example_value
                    priceAmountMicros: example_value
                    introductoryPriceInfo:
                      introductoryPriceCurrencyCode: example_value
                      introductoryPriceAmountMicros: example_value
                      introductoryPricePeriod: example_value
                      introductoryPriceCycles: 10
                    countryCode: example_value
                    developerPayload: example_value
                    paymentState: 0
                    cancelReason: 0
                    linkedPurchaseToken: example_value
                    purchaseType: 0
                    orderId: '500123'
                    acknowledgementState: 0
                    externalAccountId: '500123'
                    promotionType: 0
                    promotionCode: example_value
                    obfuscatedExternalAccountId: '500123'
                    obfuscatedExternalProfileId: '500123'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge:
    post:
      operationId: acknowledgePurchaseSubscription
      summary: Acknowledge a Subscription Purchase
      description: Acknowledges a subscription purchase. Subscriptions that are not acknowledged within three days are automatically refunded.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/subscriptionId'
      - $ref: '#/components/parameters/purchaseToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionPurchasesAcknowledgeRequest'
            examples:
              AcknowledgepurchasesubscriptionRequestExample:
                summary: Default acknowledgePurchaseSubscription request
                x-microcks-default: true
                value:
                  developerPayload: example_value
      responses:
        '204':
          description: Subscription purchase acknowledged successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel:
    post:
      operationId: cancelPurchaseSubscription
      summary: Cancel a Subscription Purchase
      description: Cancels a user's subscription purchase. The subscription remains valid until its expiration time and will not be auto-renewed.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/subscriptionId'
      - $ref: '#/components/parameters/purchaseToken'
      responses:
        '204':
          description: Subscription cancelled successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer:
    post:
      operationId: deferPurchaseSubscription
      summary: Defer a Subscription Purchase
      description: Defers a user's subscription purchase until a specified future expiration time. The user retains access to the subscription content during the deferral period.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/subscriptionId'
      - $ref: '#/components/parameters/purchaseToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionPurchasesDeferRequest'
            examples:
              DeferpurchasesubscriptionRequestExample:
                summary: Default deferPurchaseSubscription request
                x-microcks-default: true
                value:
                  deferralInfo:
                    expectedExpiryTimeMillis: example_value
                    desiredExpiryTimeMillis: example_value
      responses:
        '200':
          description: Subscription deferred successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchasesDeferResponse'
              examples:
                Deferpurchasesubscription200Example:
                  summary: Default deferPurchaseSubscription 200 response
                  x-microcks-default: true
                  value:
                    newExpiryTimeMillis: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke:
    post:
      operationId: revokePurchaseSubscription
      summary: Revoke a Subscription Purchase
      description: Refunds and immediately revokes a user's subscription purchase. Access to the subscription is terminated immediately and a refund is issued. This cannot be undone.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/subscriptionId'
      - $ref: '#/components/parameters/purchaseToken'
      responses:
        '204':
          description: Subscription revoked and refunded successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/purchases/subscriptionsv2/tokens/{token}:
    get:
      operationId: getSubscriptionPurchaseV2
      summary: Get Subscription Purchase V2
      description: Gets the latest subscription purchase state using the Purchases Subscriptions v2 API. Returns detailed information about the subscription including line items, external account identifiers, and subscription state.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/purchaseToken'
      responses:
        '200':
          description: Successful response with subscription purchase v2 details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchaseV2'
              examples:
                Getsubscriptionpurchasev2200Example:
                  summary: Default getSubscriptionPurchaseV2 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    regionCode: example_value
                    latestOrderId: '500123'
                    lineItems:
                    - productId: '500123'
                      expiryTime: '2026-01-15T10:30:00Z'
                      autoRenewingPlan: {}
                      prepaidPlan: {}
                      offerDetails: {}
                    startTime: '2026-01-15T10:30:00Z'
                    subscriptionState: SUBSCRIPTION_STATE_UNSPECIFIED
                    linkedPurchaseToken: example_value
                    pausedStateContext:
                      autoResumeTime: '2026-01-15T10:30:00Z'
                    canceledStateContext:
                      userInitiatedCancellation:
                        finishTime: '2026-01-15T10:30:00Z'
                      systemInitiatedCancellation: example_value
                      developerInitiatedCancellation: example_value
                      replacementCancellation: example_value
                    acknowledgementState: ACKNOWLEDGEMENT_STATE_UNSPECIFIED
                    externalAccountIdentifiers:
                      externalAccountId: '500123'
                      obfuscatedExternalAccountId: '500123'
                      obfuscatedExternalProfileId: '500123'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/monetization/subscriptions:
    get:
      operationId: listSubscriptions
      summary: List Subscription Products
      description: Lists all subscriptions defined for the specified application. Returns subscription metadata including product IDs, listings, and base plans.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - name: pageSize
        in: query
        description: Maximum number of subscriptions to return.
        schema:
          type: integer
          maximum: 100
        example: 10
      - name: pageToken
        in: query
        description: Page token for pagination.
        schema:
          type: string
        example: example_value
      - name: showArchived
        in: query
        description: Whether to include archived subscriptions in the response.
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: Successful response with list of subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSubscriptionsResponse'
              examples:
                Listsubscriptions200Example:
                  summary: Default listSubscriptions 200 response
                  x-microcks-default: true
                  value:
                    subscriptions:
                    - packageName: example_value
                      productId: '500123'
                      basePlans: {}
                      listings: {}
                      archived: true
                    nextPageToken: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createSubscription
      summary: Create a Subscription Product
      description: Creates a new subscription for an application. The subscription must include at least one base plan and listing.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - name: productId
        in: query
        required: true
        description: The ID to use for the subscription. Must be unique within the app.
        schema:
          type: string
        example: '500123'
      - name: regionsVersion.version
        in: query
        description: The version of the available regions being used.
        schema:
          type: string
        example: example_value
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Subscription'
            examples:
              CreatesubscriptionRequestExample:
                summary: Default createSubscription request
                x-microcks-default: true
                value:
                  packageName: example_value
                  productId: '500123'
                  basePlans:
                  - basePlanId: '500123'
                    state: STATE_UNSPECIFIED
                    regionalConfigs: {}
                    autoRenewingBasePlanType: {}
                    prepaidBasePlanType: {}
                    offerTags: {}
                  listings:
                  - languageCode: example_value
                    title: Example Title
                    benefits: {}
                    description: A sample description.
                  archived: true
                  taxAndComplianceSettings:
                    eeaWithdrawalRightType: WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED
                    taxRateInfoByRegionCode: example_value
                    isTokenizedDigitalAsset: true
      responses:
        '200':
          description: Subscription created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              examples:
                Createsubscription200Example:
                  summary: Default createSubscription 200 response
                  x-microcks-default: true
                  value:
                    packageName: example_value
                    productId: '500123'
                    basePlans:
                    - basePlanId: '500123'
                      state: STATE_UNSPECIFIED
                      regionalConfigs: {}
                      autoRenewingBasePlanType: {}
                      prepaidBasePlanType: {}
                      offerTags: {}
                    listings:
                    - languageCode: example_value
                      title: Example Title
                      benefits: {}
                      description: A sample description.
                    archived: true
                    taxAndComplianceSettings:
                      eeaWithdrawalRightType: WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED
                      taxRateInfoByRegionCode: example_value
                      isTokenizedDigitalAsset: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          description: Conflict - subscription with this ID already exists
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/monetization/subscriptions/{productId}:
    get:
      operationId: getSubscription
      summary: Get a Subscription Product
      description: Reads a single subscription product configuration, including its base plans, offers, and regional pricing.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/productId'
      responses:
        '200':
          description: Successful response with subscription details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              examples:
                Getsubscription200Example:
                  summary: Default getSubscription 200 response
                  x-microcks-default: true
                  value:
                    packageName: example_value
                    productId: '500123'
                    basePlans:
                    - basePlanId: '500123'
                      state: STATE_UNSPECIFIED
                      regionalConfigs: {}
                      autoRenewingBasePlanType: {}
                      prepaidBasePlanType: {}
                      offerTags: {}
                    listings:
                    - languageCode: example_value
                      title: Example Title
                      benefits: {}
                      description: A sample description.
                    archived: true
                    taxAndComplianceSettings:
                      eeaWithdrawalRightType: WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED
                      taxRateInfoByRegionCode: example_value
                      isTokenizedDigitalAsset: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateSubscription
      summary: Update a Subscription Product
      description: Updates an existing subscription product configuration. Supports partial updates via the updateMask field.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/productId'
      - name: updateMask
        in: query
        description: The list of fields to update in this subscription. Uses FieldMask format.
        schema:
          type: string
        example: example_value
      - name: regionsVersion.version
        in: query
        description: The version of the available regions being used.
        schema:
          type: string
        example: example_value
      - name: latencyTolerance
        in: query
        description: Tolerance for propagation latency. PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE or PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT.
        schema:
          type: string
          enum:
          - PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE
          - PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
        example: PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Subscription'
            examples:
              UpdatesubscriptionRequestExample:
                summary: Default updateSubscription request
                x-microcks-default: true
                value:
                  packageName: example_value
                  productId: '500123'
                  basePlans:
                  - basePlanId: '500123'
                    state: STATE_UNSPECIFIED
                    regionalConfigs: {}
                    autoRenewingBasePlanType: {}
                    prepaidBasePlanType: {}
                    offerTags: {}
                  listings:
                  - languageCode: example_value
                    title: Example Title
                    benefits: {}
                    description: A sample description.
                  archived: true
                  taxAndComplianceSettings:
                    eeaWithdrawalRightType: WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED
                    taxRateInfoByRegionCode: example_value
                    isTokenizedDigitalAsset: true
      responses:
        '200':
          description: Subscription updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              examples:
                Updatesubscription200Example:
                  summary: Default updateSubscription 200 response
                  x-microcks-default: true
                  value:
                    packageName: example_value
                    productId: '500123'
                    basePlans:
                    - basePlanId: '500123'
                      state: STATE_UNSPECIFIED
                      regionalConfigs: {}
                      autoRenewingBasePlanType: {}
                      prepaidBasePlanType: {}
                      offerTags: {}
                    listings:
                    - languageCode: example_value
                      title: Example Title
                      benefits: {}
                      description: A sample description.
                    archived: true
                    taxAndComplianceSettings:
                      eeaWithdrawalRightType: WITHDRAWAL_RIGHT_TYPE_UNSPECIFIED
                      taxRateInfoByRegionCode: example_value
                      isTokenizedDigitalAsset: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteSubscription
      summary: Delete a Subscription Product
      description: Deletes a subscription. A subscription can only be deleted if it has never had a base plan published.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/productId'
      responses:
        '204':
          description: Subscription deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{packageName}/monetization/subscriptions/{productId}/basePlans/{basePlanId}/offers:
    get:
      operationId: listSubscriptionOffers
      summary: List Subscription Offers
      description: Lists all offers for a given subscription's base plan. Returns offer details including eligibility criteria and pricing phases.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/productId'
      - $ref: '#/components/parameters/basePlanId'
      - name: pageSize
        in: query
        description: Maximum number of offers to return.
        schema:
          type: integer
        example: 10
      - name: pageToken
        in: query
        description: Page token for pagination.
        schema:
          type: string
        example: example_value
      responses:
        '200':
          description: Successful response with list of subscription offers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSubscriptionOffersResponse'
              examples:
                Listsubscriptionoffers200Example:
                  summary: Default listSubscriptionOffers 200 response
                  x-microcks-default: true
                  value:
                    subscriptionOffers:
                    - packageName: example_value
                      productId: '500123'
                      basePlanId: '500123'
                      offerId: '500123'
                      state: STATE_UNSPECIFIED
                      phases: {}
                      targeting: {}
                      regionalConfigs: {}
                      offerTags: {}
                    nextPageToken: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createSubscriptionOffer
      summary: Create a Subscription Offer
      description: Creates a new subscription offer. An offer represents special pricing or a free trial for a base plan.
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/productId'
      - $ref: '#/components/parameters/basePlanId'
      - name: offerId
        in: query
        required: true
        description: The ID to use for the offer. Must be unique within the base plan.
        schema:
          type: string
        example: '500123'
      - name: regionsVersion.version
        in: query
        description: The version of the available regions being used.
        schema:
          type: string
        example: example_value
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionOffer'
            examples:
              CreatesubscriptionofferRequestExample:
                summary: Default createSubscriptionOffer request
                x-microcks-default: true
                value:
                  packageName: example_value
                  productId: '500123'
                  basePlanId: '500123'
                  offerId: '500123'
                  state: STATE_UNSPECIFIED
                  phases:
                  - recurrenceCount: 10
                    duration: example_value
                    regionalConfigs: {}
                  targeting:
                    acquisitionRule:
                      scope:
                        anySubscriptionInApp: example_value
                        specificSubscriptionInApp: example_value
                    upgradeRule:
                      billingPeriodDuration: example_value
                      oncePerUser: true
                  regionalConfigs:
                  - regionCode: example_value
                    newSubscriberAvailability: true
                  offerTags:
                  - tag: example_value
      responses:
        '200':
          description: Subscription offer created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOffer'
              examples:
                Createsubscriptionoffer200Example:
                  summary: Default createSubscriptionOffer 200 response
                  x-microcks-default: true
                  value:
                    packageName: example_value
                    productId: '500123'
                    basePlanId: '500123'
                    offerId: '500123'
                    state: STATE_UNSPECIFIED
                    phases:
                    - recurrenceCount: 10
                      duration: example_value
                      regionalConfigs: {}
                    targeting:
                      acquisitionRule:
                        scope:
                          anySubscriptionInApp: example_value
                          specificSubscriptionInApp: example_value
                      upgradeRule:
                        billingPeriodDuration: example_value
                        oncePerUser: true
                    regionalConfigs:
                    - regionCode: example_value
                      newSubscriberAvailability: true
                    offerTags:
                    - tag: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    SubscriptionPurchasesDeferResponse:
      type: object
      description: Response from deferring a subscription purchase.
      properties:
        newExpiryTimeMillis:
          type: string
          format: int64
          description: The new expiry time for the subscription.
          example: example_value
    BasePlan:
      type: object
      description: A base plan specifies the billing period and renewal type for a subscription. A subscription must have at least one base plan.
      properties:
        basePlanId:
          type: string
          description: The unique identifier for this base plan.
          example: '500123'
        state:
          type: string
          description: The state of the base plan.
          enum:
          - STATE_UNSPECIFIED
          - DRAFT
          - ACTIVE
          - INACTIVE
          readOnly: true
          example: STATE_UNSPECIFIED
        regionalConfigs:
          type: array
          description: Regional pricing configurations.
          items:
            type: object
            properties:
              regionCode:
                type: string
                description: ISO 3166-1 alpha-2 region code.
              price:
                $ref: '#/components/schemas/Money'
          example: []
        autoRenewingBasePlanType:
          type: object
          description: Details for auto-renewing base plans.
          properties:
            billingPeriodDuration:
              type: string
              description: Subscription period in ISO 8601 format (e.g., P1M for monthly, P1Y for yearly, P3M for quarterly).
            gracePeriodDuration:
              type: string
              description: Grace period after a failed payment in ISO 8601 format.
            accountHoldDuration:
              type: string
              description: Account hold duration in ISO 8601 format.
            resubscribeState:
              type: string
              enum:
              - RESUBSCRIBE_STATE_UNSPECIFIED
              - RESUBSCRIBE_STATE_ACTIVE
              - RESUBSCRIBE_STATE_INACTIVE
            prorationMode:
              type: string
              description: Proration mode for mid-cycle price changes.
              enum:
              - SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED
              - SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE
              - SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY
          example: example_value
        prepaidBasePlanType:
          type: object
          description: Details for prepaid base plans.
          properties:
            billingPeriodDuration:
              type: string
              description: Subscription period in ISO 8601 format.
            timeExtension:
              type: string
              enum:
              - TIME_EXTENSION_UNSPECIFIED
              - TIME_EXTENSION_ACTIVE
              - TIME_EXTENSION_INACTIVE
          example: example_value
        offerTags:
          type: array
          description: List of up to 20 custom tags for this base plan.
          items:
            type: object
            properties:
              tag:
                type: string
          example: []
    SubscriptionPurchasesDeferRequest:
      type: object
      description: Request body for deferring a subscription purchase.
      properties:
        deferralInfo:
          $ref: '#/components/schemas/SubscriptionDeferralInfo'
      required:
      - deferralInfo
    Error:
      type: object
      description: Error response from the API.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP status code.
            message:
              type: string
              description: A human-readable error message.
            status:
              type: string
              description: The status of the error (e.g., NOT_FOUND, UNAUTHENTICATED).
            errors:
              type: arr

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/android/refs/heads/main/openapi/android-subscriptions-api-openapi.yml