> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Refresh Google Play subscription

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Re-reads your workspace's Google Play subscription from Google Play and applies its current state, such as a renewal, a plan change, or a cancellation. Use it when the workspace pays through the Base44 Android app and its plan looks out of date. Check the result with [Get mobile subscription status](/api-reference/get-mobile-subscription-status).

A workspace that isn't billed through Google Play gets `synchronized: true` and `changed: false`, and nothing is read. Refreshing fails, and keeps failing when you retry, while the workspace also has a web subscription, an App Store purchase on record, or an open payment dispute, or when its Google Play purchase is tied to another workspace. Resolve that instead of retrying.

Only the workspace owner can refresh. Errors from this endpoint have the body `{"error": {"code": ..., "message": ..., "details": {}}, "detail": ...}`, and a read-only token gets a 403 with `error.code` `forbidden`. Workspace API keys aren't accepted. Limited to 120 requests an hour per user, shared with the Base44 mobile app. Some workspaces have a different limit.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/billing/mobile/google-play/refresh
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/billing/mobile/google-play/refresh:
    post:
      summary: Refresh Google Play subscription
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Re-reads your workspace's Google Play subscription from Google Play and
        applies its current state, such as a renewal, a plan change, or a
        cancellation. Use it when the workspace pays through the Base44 Android
        app and its plan looks out of date. Check the result with [Get mobile
        subscription status](/api-reference/get-mobile-subscription-status).


        A workspace that isn't billed through Google Play gets `synchronized:
        true` and `changed: false`, and nothing is read. Refreshing fails, and
        keeps failing when you retry, while the workspace also has a web
        subscription, an App Store purchase on record, or an open payment
        dispute, or when its Google Play purchase is tied to another workspace.
        Resolve that instead of retrying.


        Only the workspace owner can refresh. Errors from this endpoint have the
        body `{"error": {"code": ..., "message": ..., "details": {}}, "detail":
        ...}`, and a read-only token gets a 403 with `error.code` `forbidden`.
        Workspace API keys aren't accepted. Limited to 120 requests an hour per
        user, shared with the Base44 mobile app. Some workspaces have a
        different limit.


        <Warning>The response includes fields beyond the ones documented here.
        Don't rely on undocumented response fields, as they can change at any
        time.</Warning>
      operationId: refresh_api_billing_mobile_google_play_refresh_post
      responses:
        '200':
          description: The refresh result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GooglePlayRefresh'
              example:
                synchronized: true
                changed: false
        '401':
          description: Missing or invalid credentials.
        '403':
          description: You aren't the workspace owner, or your token is read-only.
        '429':
          description: Rate limit reached. Retry later.
      security:
        - PersonalAccessTokenAuth:
            - full_access
components:
  schemas:
    GooglePlayRefresh:
      properties:
        synchronized:
          type: boolean
          title: Synchronized
          description: >-
            `true` when the workspace's plan now matches Google Play, or when
            the workspace isn't billed through Google Play. `false` when the
            purchase is pending, was replaced by a newer one, or Base44 no
            longer holds it.
          example: true
        changed:
          type: boolean
          title: Changed
          description: >-
            `true` when the refresh changed the workspace's plan or billing
            period. Absent when `requires_restore` is `true`.
          example: false
        requires_restore:
          type: boolean
          title: Requires Restore
          description: >-
            Present and `true` when Base44 no longer holds the purchase. Restore
            purchases from the Base44 Android app to reconnect it.
          example: true
      type: object
      required:
        - synchronized
      title: GooglePlayRefresh
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.