page.title=Purchase Status API
page.tags=In-app Billing,Google Play,inapp billing,in app billing,iab,billing

@jd:body

<div id="qv-wrapper">
<div id="qv">
  <h2>In this document</h2>
  <ol>
    <li><a href="#overview">Overview</a></li>
    <li><a href="#using">Using the API</a></li>
        <li><a href="#strategies">Verification Strategies</a></li>
            <li><a href="#practices">Using the API Efficiently</a></li>
  </ol>
  <h2>See also</h2>
  <ol>
    <li><a href="https://developers.google.com/android-publisher/v1_1/">Google Play Android Developer API</a></li>
  </ol>
</div>
</div>

<p>Google Play provides an HTTP-based Purchase Status API that lets
you remotely query the status of a specific in-app product or subscription,
or cancel an active subscription. The API is designed to be used from your
backend servers as a way of securely managing in-app products and
subscriptions, as well as extending and integrating them with other services.</p>

<h2 id="overview">Overview</h2>

<p>With the Purchase Status API you can quickly retrieve the details of any
purchase using a standard GET request. In the request you supply information
about the purchase &mdash; app package name, purchase or subscription ID,
and the purchase token. The server responds with a JSON object describing
the associated purchase details, order status, developer payload, and other
information.</p>

<p>You can use the Purchase Status API in several ways, such as for reporting
and reconciliation of individual orders and for verifying purchases and
subscription expirations. You can also use the API to learn about cancelled
orders and confirm whether in-app products have been consumed, including
whether they were consumed before being cancelled.</p>

<p>For subscriptions, in addition to querying for order status and expiration,
you can use the Purchase Status API to remotely cancel a subscription. This is a
convenient way to manage cancellations on behalf of customers, without
requiring them to manage the cancellation themselves on their Android devices.</p>

<p>If you plan to use the Purchase Status API, keep in mind that:</p>
<ul><li>You can use the API to check the status of individual items only
&mdash; bulk requests for order status are not supported at this time.</li>
<li>You can query for the details of orders placed on or after 12 June 2013,
but not for orders placed earlier.</li>
<li>You can query purchases of any item type made with the In-app
Billing v3 API, or purchases of managed items made with In-app Billing v1 and
v2. You can not use the Purchase Status API to query purchases of unmanaged items
made with In-app Billing v1 or v2.</li>
</ul>

<p>The Purchase Status API is part of the <a
href="https://developers.google.com/android-publisher/v1_1/">Google Play Android
Developer API v1.1</a>, available through the Google Developers Console. The new version
of the API supersedes the v1 API, which is deprecated. If you are using the v1
API, please migrate your operations to the v1.1 API as soon as possible.</p>


<h2 id="using">Using the API</h2>

<p>To use the API, you must first register a project at the <a
href="https://cloud.google.com/console">Google Developers Console</a> and receive
a Client ID and shared secret that  your app will present when calling the
API. All calls are authenticated with OAuth 2.0.</p>

<p>Once your app is registered, you can access the API directly, using standard
HTTP methods to retrieve and manipulate resources. The API is built on a RESTful
design that uses HTTP and JSON. so any standard web stack can send requests and
parse the responses. However, if you don’t want to send HTTP requests and parse
responses manually, you can access the API using the Google APIs Client
Libraries, which provide better language integration, improved security,
and support for making calls that require user authorization.</p>

<p>For more information about the API and how to access it through the Google
APIs Client Libraries, see the documentation at:</p> 

<p style="margin-left:1.5em;"><a
href="https://developers.google.com/android-publisher/v1_1/">https://developers.
google.com/android-publisher/v1_1/</a></p>

<h3 id="quota">Quota</h3>

<p>Applications using the Google Play Android Developer API are limited to an
initial courtesy usage quota of <strong>200,000 requests per day</strong> (per
application). This should provide enough access for normal
subscription-validation needs, assuming that you follow the recommendation in
this section.</p>

<p>If you need to request a higher limit for your application, see the
instructions in the <a
href="https://developers.google.com/console/help/new/#trafficcontrols">Google Developers
Console Help</a>.
Also, please read the section below on design best practices for minimizing your
use of the API.</p>

<h3 id="auth">Authorization</h3>

<p>Calls to the Google Play Android Developer API require authorization. Google
uses the OAuth 2.0 protocol to allow authorized applications to access user
data. To learn more, see <a
href="https://developers.google.com/android-publisher/authorization">Authorization</a>
in the Google Play Android Developer API documentation.</p>

<h2 id="strategies">Purchase Verification Strategies</h2>

<p>In a typical scenario, your app verifies the order status for new purchases
to ensure that they are valid before granting access to the purchased content.</p>

<p>To verify a purchase, the app passes the purchase token and other details up
to your backend servers, which verifies them directly with Google Play using the
Purchase Status API. For security reasons, the app should not normally attempt to verify
the purchase itself using the Purchase Status API.</p>

<p>If the backend server determines that the purchase is valid, it notifies the
app and grants access to the content. For improved performance, the backend servers
should store the purchase details and order status in a local database, updated at
intervals or as-needed.</p>

<p>Keep in mind that users will want the ability to use your app at any time, including
when there may be no network connection available. Make sure that your approach to
purchase verification accounts for the offline use-case.</p>

<h2 id="practices">Using the API Efficiently</h2>

<p>Access to the Google Play Android Developer API is regulated to help ensure a
high-performance environment for all applications that use it. While you can
request a higher daily quota for your application, we highly recommend that you
minimize your access using the techniques below. </p>

<ul>
  <li><em>Query the Purchase Status API for new purchases only</em> &mdash; At
  purchase, your app can pass the purchase token and other details to your backend
  servers, which can use the Purchase Status API to verify the purchase.</li>
  <li><em>Cache purchase details on your servers</em> &mdash; To the extent possible,
  cache the purchase details for in-app products and subscriptions on your backend
  servers. If your app contacts your backend servers at runtime to verify purchase
  validity, your server can verify the purchase based on the cached details, to
  minimize use of the Purchase Status API and to provide the fastest possible response
  (and best experience) for the user.</li>
  <li><em>Store subscription expiry on your servers</em> &mdash; Your servers should
  use the Purchase Status API to query the expiration date for new subscription tokens,
  then store the expiration date locally. This allows you to check the status of
  subscriptions only at or after the expiration (see below).</li>
  <li><em>Query for subscription status only at expiration</em> &mdash; Once your
  server has retrieved the expiration date of subscription tokens, it should not query
  the Google Play servers for the subscription status again until the subscription is
  reaching or has passed the expiration date. Typically, your servers would run a batch
  query each day to check the status of expiring subscriptions, then update the database.
  Note that:
    <ul>
      <li>Your servers should not query all subscriptions every day.</li>
      <li>Your servers should never query subscription status dynamically, based on
      individual requests from your Android application.</li>
    </ul>
  </li>
</ul>

<p>By following those general guidelines, your implementation will offer the
best possible performance for users and minimize use of the <a
href="https://developers.google.com/android-publisher/v1_1/">Google Play Android
Developer API</a>.</p>
