Home | History | Annotate | Download | only in billing
      1 page.title=In-app Billing Overview
      2 parent.title=In-app Billing
      3 parent.link=index.html
      4 @jd:body
      5 
      6 <div id="qv-wrapper">
      7 <div id="qv">
      8   <h2>Quickview</h2>
      9   <ul>
     10     <li>Use In-app Billing to sell digital goods, including one-time items and
     11 recurring subscriptions.</li>
     12     <li>Supported for any app published on Google Play. You only need a Google
     13 Play Developer Console account and a Google Wallet merchant account.</li>
     14     <li>Checkout processing is automatically handled by Google Play, with the
     15 same look-and-feel as for app purchases.</li>
     16   </ul>
     17   <h2>In this document</h2>
     18   <ol>
     19     <li><a href="#api">In-app Billing API</a></li>
     20     <li><a href="#products">In-app Products</a>
     21        <ol>
     22        <li><a href="#prodtypes">Product Types</a>
     23        </ol>
     24     </li>
     25     <li><a href="#console">Google Play Developer Console</a></li>
     26     <li><a href="#checkout">Google Play Purchase Flow</a></li>
     27     <li><a href="#samples">Sample App</a></li>
     28     <li><a href="#migration">Migration Considerations</a></li>
     29   </ol>
     30    <h2>Related Samples</h2>
     31   <ol>
     32     <li><a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">Sample Application (V3)</a></li>
     33   </ol>
     34 </div>
     35 </div>
     36 
     37 <p>This documentation describes the fundamental In-app Billing components and
     38 features that you need to understand in order to add In-app
     39 Billing features into your application.</p>
     40 
     41 <p class="note"><b>Note</b>: Ensure that you comply with applicable laws in the countries where you
     42 distribute apps. For example, in EU countries, laws based on the
     43 <a href="http://ec.europa.eu/justice/consumer-marketing/unfair-trade/unfair-practices/">Unfair
     44 Commercial Practices Directive</a> prohibit direct exhortations to children to buy advertised
     45 products or to persuade their parents or other adults to buy advertised products for them.
     46 See the
     47 <a href="http://ec.europa.eu/consumers/enforcement/docs/common_position_on_online_games_en.pdf">position
     48 of the EU consumer protection authorities</a> for more information on this and other topics.
     49 </p>
     50 
     51 <h2 id="api">In-app Billing API</h2>
     52 <p>Your application accesses the In-app Billing service using an API that is
     53 exposed by the Google Play app that is installed on the device. The Google Play
     54 app then conveys billing requests and responses between your
     55 application and the Google Play server. In practice, your application never
     56 directly communicates with the Google Play server. Instead, your application
     57 sends billing requests to the Google Play application over interprocess
     58 communication (IPC) and receives responses from the Google Play app.
     59 Your application does not manage any network connections between itself and
     60 the Google Play server.</p>
     61 <p>In-app Billing can be implemented only in applications that you publish
     62 through Google Play. To complete in-app purchase requests, the Google Play app
     63 must be able to access the Google Play server over the network.</p>
     64 
     65 <p>In-app billing Version 3 is the latest version, and maintains very broad
     66 compatibility across the range of Android devices. In-app Billing Version 3 is
     67 supported on devices running Android 2.2 or higher that have the latest version
     68 of the Google Play store installed (<a href="{@docRoot}about/dashboards/index.html">a vast majority</a> of active devices).</p>
     69 
     70 <h4>Version 3 features</h4>
     71 <ul>
     72 <li>Requests are sent through a streamlined API that allows you to easily request
     73 product details from Google Play, order in-app products, and quickly restore
     74 items based on users' product ownership</li>
     75 <li>Order information is synchronously propagated to the device on purchase
     76 completion</li>
     77 <li>All purchases are managed (that is, Google Play keeps track of the user's
     78 ownership of in-app products). The user cannot own multiple copies of an in-app
     79 item; only one copy can be owned at any point in time</li>
     80 <li>Purchased items can be consumed. When consumed, the item reverts to the
     81 "unowned" state and can be purchased again from Google Play</li>
     82 <li>Provides support for <a
     83   href="{@docRoot}google/play/billing/billing_subscriptions.html">subscriptions</a></li>
     84 </ul>
     85 <p>For details about other versions of In-app Billing, see the
     86 <a href="{@docRoot}google/play/billing/versions.html">Version Notes</a>.</p>
     87 
     88 <h2 id="products">In-app Products</h2>
     89 <p>In-app products are the digital goods that you offer for sale from inside your
     90 application to users. Examples of digital goods includes in-game currency,
     91 application feature upgrades that enhance the user experience, and new content
     92 for your application.</p>
     93 <p>You can use In-app Billing to sell only digital content.
     94 You cannot use In-app Billing to sell physical goods, personal services, or
     95 anything that requires physical delivery. Unlike with priced applications, once
     96 the user has purchased an in-app product there is no refund window.</p>
     97 <p>Google Play does not provide any form of content delivery. You are
     98 responsible for delivering the digital content that you sell in your
     99 applications. In-app products are always explicitly associated with one and
    100 only one app. That is, one application cannot purchase an in-app product
    101 published for another app, even if they are from the same developer.</p>
    102 
    103 <h3 id="prodtypes">Product types</h3>
    104 <p>In-app Billing supports different product types to give you flexibility in
    105 how you monetize your application. In all cases, you define your products using
    106 the Google Play Developer Console.</p>
    107 <p>You can specify these types of products for your In-app Billing application
    108  <em>managed in-app products</em> and <em>subscriptions</em>. Google Play
    109 handles and tracks ownership for in-app products and subscriptions on your
    110 application on a per user account basis. <a href="{@docRoot}google/play/billing/api.html#producttypes">Learn more about the product types supported by In-app Billing Version 3</a>.</p>
    111 
    112 <h2 id="console">Google Play Developer Console</h2>
    113 <p>The Developer Console is where you can publish your
    114 In-app Billing application, and manage the various in-app products that are
    115 available for purchase from your application.</p>
    116 <p>You can create a product list of
    117 digital goods that are associated with your application, including items for
    118 one-time purchase and recurring subscriptions. For each item, you can define
    119 information such as the items unique product ID (also called its SKU), product
    120 type, pricing, description, and how Google Play should handle and track
    121 purchases for that product.</p>
    122 <p>You can also create test accounts to authorize
    123 access for testing applications that are unpublished.</p>
    124 <p>To learn how to use the Developer Console to configure your in-app
    125 products and product list, see
    126 <a href="{@docRoot}google/play/billing/billing_admin.html">Administering
    127 In-app Billing</a>.</p>
    128 
    129 <h2 id="checkout">Google Play Purchase Flow</h2>
    130 <p>Google Play uses the same checkout backend service as is used for application
    131 purchases, so your users experience a consistent and familiar purchase flow.</p>
    132 <p class="note"><strong>Important:</strong> You must have a Google Wallet
    133 merchant account to use the In-app Billing service on Google Play.</p>
    134 <p>To initiate a purchase, your application sends a billing request for a
    135 specific in-app product. Google Play then handles all of the checkout details for
    136 the transaction, including requesting and validating the form of payment and
    137 processing the financial transaction.</p>
    138 <p>When the checkout process is complete,
    139 Google Play sends your application the purchase details, such as the order
    140 number, the order date and time, and the price paid. At no point does your
    141 application have to handle any financial transactions; that role is provided by
    142 Google Play.</p>
    143 
    144 <h2 id="samples">Sample Application</h2>
    145 <p>To help you integrate In-app Billing into your application, the Android SDK
    146 provides a sample application that demonstrates how to sell in-app products and subscriptions
    147 from inside an app.</p>
    148 
    149 <p>The <a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">TrivialDrive sample for the Version 3 API</a> sample shows how to use the In-app Billing Version 3 API
    150 to implement in-app product and subscription purchases for a driving game. The
    151 application demonstrates how to send In-app Billing requests, and handle
    152 synchronous responses from Google Play. The application also shows how to record
    153 item consumption with the API. The Version 3 sample includes convenience classes
    154 for processing In-app Billing operations as well as perform automatic signature
    155 verification.</p>
    156 
    157 <p class="caution"><strong>Recommendation</strong>: Make sure to obfuscate the
    158 code in your application before you publish it. For more information, see
    159 <a href="{@docRoot}google/play/billing/billing_best_practices.html">Security
    160 and Design</a>.</p>
    161 
    162 <h2 id="migration">Migration Considerations</h2>
    163 <p>The In-app Billing Version 2 API is deprecated and will be discontinued in January 2015.
    164 If you have an existing In-app Billing implementation that uses API Version 2 or
    165 earlier, you must migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version
    166 3</a>.</p>
    167 
    168 <p>If you have published apps selling in-app products, note that:</p>
    169 <ul>
    170 <li>Managed items and subscriptions that you have previously defined in the Developer Console will
    171 work with Version 3 as before.</li>
    172 <li>Unmanaged items that you have defined for existing applications will be
    173 treated as managed products if you make a purchase request for these items using
    174 the Version 3 API. You do not need to create a new product entry in Developer
    175 Console for these items, and you can use the same product IDs to purchase these
    176 items. They will still continue to be treated as unmanaged items if you make a
    177 purchase request for them using the Version 2 or earlier API.
    178 </ul>
    179 
    180 
    181 
    182 
    183 
    184