Skip to content

Most visited

Recently visited


In-app Billing Overview


  • Use In-app Billing to sell digital products, including one-time products and recurring subscriptions.
  • In-app Billing is supported for any app published on Google Play. You need only a Google Play Console account and a Google payments merchant account.
  • Google Play automatically handles checkout processing with the same look and feel as app purchases.

In this document

  1. In-app Billing API
  2. In-app Products
    1. Product types
  3. Google Play Console
  4. Google Play Purchase Flow
  5. Sample App

Related samples

  1. Trivial Drive v2

Related videos

  1. Implementing Freemium

This document describes the fundamental In-app Billing components and features that you need to understand in order to add In-app Billing features into your application.

Note: Ensure that you comply with applicable laws in the countries where you distribute apps. For example, in EU countries, laws based on the Unfair Commercial Practices Directive prohibit direct exhortations to children to buy advertised products or to persuade their parents or other adults to buy advertised products for them. See the position of the EU consumer protection authorities for more information on this and other topics.

In-app Billing API

Your application accesses the In-app Billing service using an API that is exposed by the Google Play app that is installed on the device. The Google Play app then conveys billing requests and responses between your application and the Google Play server. In practice, your application never directly communicates with the Google Play server. Instead, your application sends billing requests to the Google Play app over interprocess communication (IPC) and receives responses from the Google Play app. Your application does not manage any network connections between itself and the Google Play server.

You can implement In-app Billing only in applications that you publish through Google Play. To complete in-app purchase requests, the Google Play app must be able to access the Google Play server over the network.

In-app Billing maintains very broad compatibility across the range of Android-powered devices. In-app Billing is supported on devices running Android 2.2 (API level 8) or higher that have the latest version of the Google Play app installed (a vast majority of active devices).

In-app Billing API features

The In-app Billing API provides the following features:

For details about specific versions of the In-app Billing API, see the Version Notes.

In-app Products

In-app products are the digital products that you offer for sale to users from inside your application. Examples of digital products include in-game currency, application feature upgrades that enhance the user experience, and new content for your application.

You can use In-app Billing to sell only digital content. You can't use In-app Billing to sell physical products, personal services, or anything that requires physical delivery. Unlike with priced applications, there is no refund window after the user has purchased an in-app product.

Google Play does not provide any form of content delivery. You are responsible for delivering the digital content that you sell in your applications. In-app products are always explicitly associated with only one app. That is, one application can't purchase an in-app product that is published for another app, even if they are from the same developer.

Product types

In-app Billing supports different product types to give you flexibility in how you monetize your application. In all cases, you define your products using the Google Play Console.

You can specify two product types for your In-app Billing application: managed in-app products and subscriptions. Google Play handles and tracks ownership for in-app products and subscriptions for your application on a per-user basis. Learn more about the product types supported by the In-app Billing API.

Google Play Console

The Play Console is where you can publish your In-app Billing application and manage the various in-app products that are available for purchase from your application.

You can create a product list of digital products that are associated with your application, including products for one-time purchase and recurring subscriptions. You can define information for each product such as the following:

If you sell several of your apps or in-app products at the same price, you can add pricing templates to manage these price points from a centralized location. When using pricing templates, you can include local taxes within the prices you provide, or you can provide prices and have the system add local taxes to these prices. You can make changes to the prices in your pricing templates, such as refreshing the exchange rates for certain countries, and your changes are applied to the apps and in-app products that you link to the template.

You can also create test accounts to authorize access for testing applications that are unpublished.

To learn how to use the Play Console to configure your in-app products and product list, see Administering In-app Billing.

Google Play Purchase Flow

Google Play uses the same backend checkout service that is used for application purchases, so your users experience a consistent and familiar purchase flow.

Important: You must have a Google payments merchant account to use the In-app Billing service on Google Play.

To initiate a purchase, your application sends a billing request for a specific in-app product. Google Play then handles all of the checkout details for the transaction, including requesting and validating the form of payment and processing the financial transaction.

When the checkout process is complete, Google Play sends your application the purchase details, such as the order number, the order date and time, and the price paid. At no point does your application have to handle any financial transactions; that role belongs to Google Play.

Play Billing Library

To simplify development with the In-app Billing API, you can use the Play Billing Library. This library is an in-app billing client developed as a wrapper on top of the Android Interface Definition Language file that interacts with the In-app Billing API. You can use the Play Billing Library to help you focus your development effort on app logic, such as listing products, displaying product details, or launching purchase flows. The Play Billing Library provides an easier to use alternative to developing with the Android Interface Definition Language file.

To learn how to setup and integrate the Play Billing Library client in your app, see Play Billing Library.

Sample Application

Review the TrivialDrive v2 sample app to learn how to integrate In-app Billing into your app. This sample shows how to use Play Billing Library to implement in-app product and subscription purchases for a driving game. The app demonstrates how to list the available products, start a purchase flow, record product consumption, and everything else you need to know to use the In-app Billing API with Play Billing Library.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)