page.title=In-app Billing Overview parent.title=In-app Billing parent.link=index.html @jd:body
This documentation 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.
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 application 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.
In-app Billing can be implemented 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 Version 3 is the latest version, and maintains very broad compatibility across the range of Android devices. In-app Billing Version 3 is supported on devices running Android 2.2 or higher that have the latest version of the Google Play store installed (a vast majority of active devices).
For details about other versions of In-app Billing, see the Version Notes.
In-app products are the digital goods that you offer for sale from inside your application to users. Examples of digital goods includes 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 cannot use In-app Billing to sell physical goods, personal services, or anything that requires physical delivery. Unlike with priced applications, once the user has purchased an in-app product there is no refund window.
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 one and only one app. That is, one application cannot purchase an in-app product published for another app, even if they are from the same developer.
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 Developer Console.
You can specify these types of products for your In-app Billing application — managed in-app products and subscriptions. Google Play handles and tracks ownership for in-app products and subscriptions on your application on a per user account basis. Learn more about the product types supported by In-app Billing Version 3.
The Developer 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 goods that are associated with your application, including items for one-time purchase and recurring subscriptions. For each item, you can define information such as the item’s unique product ID (also called its SKU), product type, pricing, description, and how Google Play should handle and track purchases for that product.
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 Developer Console to configure your in-app products and product list, see Administering In-app Billing.
Google Play uses the same checkout backend service as 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 is provided by Google Play.
To help you integrate In-app Billing into your application, the Android SDK provides a sample application that demonstrates how to sell in-app products and subscriptions from inside an app.
The TrivialDrive sample for the Version 3 API sample shows how to use the In-app Billing Version 3 API to implement in-app product and subscription purchases for a driving game. The application demonstrates how to send In-app Billing requests, and handle synchronous responses from Google Play. The application also shows how to record item consumption with the API. The Version 3 sample includes convenience classes for processing In-app Billing operations as well as perform automatic signature verification.
Recommendation: Make sure to obfuscate the code in your application before you publish it. For more information, see Security and Design.
The In-app Billing Version 2 API was discontinued in January 2015. If you have an existing In-app Billing implementation that uses API Version 2 or earlier, you must migrate to In-app Billing Version 3.
If you have published apps selling in-app products, note that: