Reminder: By Aug 31, 2025, all new apps and updates to existing apps must use Billing Library version 7 or newer. If you need more time to update your app, you can request an extension until Nov 1, 2025. Learn about Play Billing Library version deprecation.
Stay organized with collections
Save and categorize content based on your preferences.
Google Play's billing system is a service that enables you to sell digital products
and content in your Android app, whether you want to monetize through one-time
purchases or offer subscriptions to your services. Google Play offers a full set
of APIs for integration with both your Android app and your server backend that
unlock the familiarity and safety of Google Play purchases for your users.
Integration architecture
This section introduces the different functional modules that you can build and
the APIs and libraries available to simplify the process.
Figure 1. Diagram of a typical Google Play billing
integration.
You can integrate Google Play's billing system with your Android app using the Play
Billing Library. This library
enables communication with the Google Play Services layer that provides the
localized product offering available to each user in your app, as well as
methods to handle other necessary user operations, like launching the purchase
flow and handling its outcome.
You should also integrate Google Play's billing system with your server backend to
create the necessary developer flows. This is essential to guarantee that your
purchase management and cross-platform entitlements are efficient and secure.
You can create this integration with the Subscriptions and in-app purchases
API provided by
the Google Play Developer API. The backend integration also leverages some
Google Cloud platform tools.
Figure 2. APIs and services provided by the Google Play
Developer API.
Terminology
This section lists and describes the high-level technologies and concepts that
you might encounter when integrating Google Play's billing system into your app.
Reference this list as you proceed through the integration guidance.
Technologies
Google Play. An online store where users can
download apps and other digital products.
Google Play Console. A platform
that provides an interface where you can publish your app to Google Play. The
Google Play Console also shows details about your app, including any
products or content that you sell with Google Play.
Google Cloud Console. A
platform that manages backend APIs, such as the Google Play Developer API.
Google Play Billing Library. An API that
you can use to integrate Google Play's billing system into your app.
Google Play Developer API.
A REST API that you can use to programmatically handle publishing and app
management tasks.
Cloud Pub/Sub. A fully managed
real-time messaging service that enables you to send and receive messages
between independent applications. Google Play uses Cloud Pub/Sub to deliver
Real-time developer notifications. To use Cloud
Pub/Sub, you must have a project on the
Google Cloud Platform (GCP) with the Cloud
Pub/Sub API enabled. If you aren't familiar with GCP and Cloud Pub/Sub, see the
Quickstart guide.
Secure backend server. As part of integrating Google Play's billing system
into your app, we strongly recommend that you use a secure backend server to
implement billing-related tasks such as purchase verification,
subscription-specific features, and handling Real-time developer
notifications.
Google Play Store app. An app that manages all operations related to
Google Play. All requests made by your app are handled by the Google Play
Store app.
Concepts
Flow. A flow shows the typical steps involved in a billing-related
task. For example, a purchase flow outlines the steps
involved when a user purchases your product. A subscription flow might show
how a subscription transitions between states.
Entitlement. When a user purchases an in-app product, they are then
entitled to that product within your app. For one-time products, this
means that the user should now have permanent access to the product.
For subscriptions, this means that the user should have access while
the subscription is active.
Product ID. The ID of a specific product type.
Purchase token. A string that represents a buyer's entitlement to a
product on Google Play. It indicates that a Google user has paid for a
specific product.
Order ID. A string that represents a financial transaction on Google Play.
An order ID is created every time a financial transaction occurs. This string
is included in a receipt that is emailed to the buyer. You can use the order
ID to manage refunds in the Order Management section of the
Google Play Console. Order IDs are also used in sales and payout
reports.
Next steps
To begin integrating Google Play's billing system with your app and server backend,
see the setup guide.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-07 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-07 UTC."],[],[],null,["# Google Play's billing system is a service that enables you to sell digital products\nand content in your Android app, whether you want to monetize through one-time\npurchases or offer subscriptions to your services. Google Play offers a full set\nof APIs for integration with both your Android app and your server backend that\nunlock the familiarity and safety of Google Play purchases for your users.\n| **Note:** Google Play's billing system is only for digital items. For physical goods and services, or other non-digital content, see the [Google Pay SDK](https://developers.google.com/pay/api/android/overview).\n\nIntegration architecture\n------------------------\n\nThis section introduces the different functional modules that you can build and\nthe APIs and libraries available to simplify the process.\n**Figure 1.** Diagram of a typical Google Play billing integration.\n\nYou can integrate Google Play's billing system with your Android app using the [Play\nBilling Library](/reference/com/android/billingclient/classes). This library\nenables communication with the Google Play Services layer that provides the\nlocalized product offering available to each user in your app, as well as\nmethods to handle other necessary user operations, like launching the purchase\nflow and handling its outcome.\n\nYou should also integrate Google Play's billing system with your server backend to\ncreate the necessary developer flows. This is essential to guarantee that your\npurchase management and cross-platform entitlements are efficient and secure.\nYou can create this integration with the [Subscriptions and in-app purchases\nAPI](https://developers.google.com/android-publisher#subscriptions) provided by\nthe Google Play Developer API. The backend integration also leverages some\nGoogle Cloud platform tools.\n**Figure 2.** APIs and services provided by the Google Play Developer API.\n\nTerminology\n-----------\n\nThis section lists and describes the high-level technologies and concepts that\nyou might encounter when integrating Google Play's billing system into your app.\nReference this list as you proceed through the integration guidance.\n\n### Technologies\n\n- [**Google Play**](https://play.google.com). An online store where users can download apps and other digital products.\n- [**Google Play Console**](https://play.google.com/console). A platform that provides an interface where you can publish your app to Google Play. The Google Play Console also shows details about your app, including any products or content that you sell with Google Play.\n- [**Google Cloud Console**](https://console.developers.google.com/). A platform that manages backend APIs, such as the Google Play Developer API.\n- [**Google Play Billing Library**](/google/play/billing/integrate). An API that you can use to integrate Google Play's billing system into your app.\n- [**Google Play Developer API**](https://developers.google.com/android-publisher/). A REST API that you can use to programmatically handle publishing and app management tasks.\n- [**Cloud Pub/Sub**](https://cloud.google.com/pubsub/). A fully managed real-time messaging service that enables you to send and receive messages between independent applications. Google Play uses Cloud Pub/Sub to deliver Real-time developer notifications. To use [Cloud\n Pub/Sub](https://cloud.google.com/pubsub/), you must have a project on the [Google Cloud Platform (GCP)](https://cloud.google.com/) with the Cloud Pub/Sub API enabled. If you aren't familiar with GCP and Cloud Pub/Sub, see the [Quickstart guide](https://cloud.google.com/pubsub/docs/quickstart-console).\n- [**Real-time developer notifications**](/google/play/billing/getting-ready#configure-rtdn). A mechanism that lets you monitor state changes for Google Play-managed subscriptions in real time by leveraging [Cloud\n Pub/Sub](https://cloud.google.com/pubsub).\n- **Secure backend server**. As part of integrating Google Play's billing system into your app, we strongly recommend that you use a secure backend server to implement billing-related tasks such as purchase verification, subscription-specific features, and handling Real-time developer notifications.\n- **Google Play Store app**. An app that manages all operations related to Google Play. All requests made by your app are handled by the Google Play Store app.\n\n### Concepts\n\n- **Flow** . A flow shows the typical steps involved in a billing-related task. For example, a *purchase flow* outlines the steps involved when a user purchases your product. A *subscription flow* might show how a subscription transitions between states.\n- **Entitlement** . When a user purchases an in-app product, they are then *entitled* to that product within your app. For one-time products, this means that the user should now have permanent access to the product. For subscriptions, this means that the user should have access while the subscription is active.\n- **Product ID**. The ID of a specific product type.\n- **Purchase token**. A string that represents a buyer's entitlement to a product on Google Play. It indicates that a Google user has paid for a specific product.\n- **Order ID** . A string that represents a financial transaction on Google Play. An order ID is created every time a financial transaction occurs. This string is included in a receipt that is emailed to the buyer. You can use the order ID to manage refunds in the **Order Management** section of the Google Play Console. Order IDs are also used in sales and payout reports.\n\nNext steps\n----------\n\nTo begin integrating Google Play's billing system with your app and server backend,\nsee the [setup guide](/google/play/billing/getting-ready)."]]