• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=Administering In-app Billing
2parent.title=In-app Billing
3parent.link=index.html
4@jd:body
5
6<div id="qv-wrapper">
7<div id="qv">
8  <h2>In this document</h2>
9  <ol>
10    <li><a href="#billing-list-setup">Creating a Product List</a></li>
11    <li><a href="#billing-purchase-type">Choosing a Product Type</a></li>
12    <li><a href="#billing-testing-setup">Setting up Test Accounts</a></li>
13    <li><a href="#billing-refunds">Handling Refunds</a></li>
14    <li><a href="#billing-refunds">Working with Order Numbers</a></li>
15    <li><a href="#billing-support">Where to Get Support</a></li>
16  </ol>
17
18  </ol>
19  <h2>See also</h2>
20  <ol>
21    <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app
22    Billing</a></li>
23  </ol>
24</div>
25</div>
26
27<p>In-app billing frees you from processing financial transactions, but you still need to perform a
28few administrative tasks, including setting up and maintaining your product list on the Google Play
29Developer Console, registering test accounts, and handling refunds when necessary.</p>
30
31<p>You must have a Google Play publisher account to register test accounts. And you must have a
32Google Wallet merchant account to create a product list and issue refunds to your users. If you
33already have a publisher account on Google Play, you can use your existing account. You do not
34need to register for a new account to support in-app billing.</p>
35
36<p>If you do not have a publisher account, you can register as a Google Play
37developer and set up a publisher account at the <a
38href="http://play.google.com/apps/publish">Google Play Developer Console</a>. If you do not
39have a Google Wallet merchant account, you can register for one through the
40Developer Console.</p>
41
42<h2 id="billing-list-setup">Creating a Product List</h2>
43
44<p>The Google Play Developer Console provides a product list for each of your published
45applications. You can sell an item using Google Play's in-app billing feature only if the item is
46listed on an application's product list. Each application has its own product list; you cannot sell
47items that are listed in another application's product list.</p>
48
49<p>You can access an application's product list by clicking the <strong>In-App Products</strong>
50link in applications listed in your developer account (see
51figure 1). The <strong>In-App Products</strong> link appears only if you have a Google Wallet
52merchant account and the application's manifest includes the <code>com.android.vending.BILLING</code>
53permission.</p>
54
55<p>A product list specifies items you are selling in an application &mdash; in-app products,
56subscriptions, or a combination of both. For each item, the product list contains information such as a product id,
57product description, and price. The product list stores only metadata about the items
58you are selling in your application. It does not store any digital content. You are responsible for
59storing and delivering the digital content that you sell in your applications.</p>
60
61<div style="margin:1em;">
62<img style="border:1px solid #ddd;padding-bottom:.5em" src="{@docRoot}images/in-app-billing/billing_product_list.png" xheight="548" id="figure1" />
63<p class="img-caption" style="padding-left:.5em;">
64  <strong>Figure 1.</strong> You can access an application's product list by clicking the
65  <strong>In-App Products</strong> link in the main Apps navigation.
66</p>
67</div>
68
69<p>You can create a product list for any published application or any draft application that's been
70uploaded and saved to the Developer Console. However, you must have a Google Wallet merchant
71account and the application's manifest must include the <code>com.android.vending.BILLING</code>
72permission. If an application's manifest does not include this permission, you will be able to edit
73existing items in the product list but you will not be able to add new items to the list. For more
74information about this permission, see
75<a href="{@docRoot}google/play/billing/billing_integrate.html#billing-permission">Updating Your
76Application's Manifest</a>.</p>
77
78<p>In addition, an application package can have only one product list. If you create a product
79list for an application, and you use the <a
80href="{@docRoot}google/play/publishing/multiple-apks.html">multiple APK feature</a> to distribute
81more than one APK for that application, the product list applies to all APK versions that are
82associated with the application listing. You cannot create individual product lists for each APK if
83you are using the multiple APK feature.</p>
84
85<p>You can add items to a product list two ways: you can add items one at a time by using the In-app
86Products UI (see figure 2), or you can add a batch of items by importing the items from a
87comma-separated values (CSV) file. Adding items one at a time is useful if your
88application has only a few in-app items or you are adding only a few items to a
89product list for testing purposes. The CSV file method is useful if your application has a large
90number of in-app items.</p>
91
92<p class="note"><strong>Note:</strong> Batch upload of product lists containing subscriptions is not yet supported.</p>
93
94<h3 id="billing-form-add">Adding items one at a time to a product list</h3>
95
96<p>To add an item to a product list using the In-app Products UI, follow these steps:</p>
97
98<ol>
99  <li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
100  <li>In the <strong>All Google Play listings</strong> panel, under the application name, click
101  <strong>In-app Products</strong>.</li>
102  <li>Click <strong>Add new product</strong> (see figure 2) and provide details about the item you are
103  selling and then click <strong>Save</strong> or <strong>Publish</strong>.</li>
104</ol>
105
106<div style="margin:1em;">
107<img style="border:1px solid #ddd;padding-bottom:.5em;" src="{@docRoot}images/in-app-billing/billing_add.png" height="300" id="figure2" />
108<p class="img-caption" style="padding-left:.5em;">
109  <strong>Figure 2.</strong> The Add New Product page lets you add items to an
110  application's product list.
111</p>
112</div>
113
114<p>You must enter the following information for each item in a product list:</p>
115<ul>
116  <li><strong>In-app Product ID</strong>
117    <p>Product IDs are unique across an application's namespace. A product ID must start with a
118    lowercase letter or a number, and must be composed using only lowercase letters (a-z), numbers
119    (0-9), underlines (_), and dots (.). The product ID "android.test" is reserved, as are all
120    product IDs that start with "android.test."</p>
121    <p>In addition, you cannot modify an item's product ID after it is created, and you cannot reuse
122    a product ID.</p>
123  </li>
124  <li><strong>Product Type</strong>
125    <p>The product type can be <strong>Managed per user account</strong>, <strong>Unmanaged</strong>,
126    or <strong>Subscription</strong>. You can never change an item's product type after you set it. For more
127    information, see <a href="#billing-purchase-type">Choosing a product type</a> later in this
128    document.</p>
129  </li>
130  <li><strong>Publishing State</strong>
131    <p>An item's publishing state can be <strong>Published</strong> or <strong>Unpublished
132    </strong>. To be visible to a user during checkout, an item's publishing state must be set to
133    <strong>Published</strong> and the item's application must be published on Google Play.</p>
134    <p class="note"><strong>Note:</strong> This is not true for test accounts. An item is visible to
135    a test account if the application is not published and the item is published. See <a
136    href="{@docRoot}google/play/billing/billing_testing.html#billing-testing-real">Testing In-app
137    Billing</a> for more information.</p>
138  </li>
139  <li><strong>Languages and Translations</strong>
140    <p>You can provide localized titles and descriptions for your in-app
141    products using the Add Translations button. If you want Google Play to translate
142    your title and description for you, based on the title and description in the
143    default language, just click the languages that you want to offer. If you want
144    to provide custom translations in specific languages, you can also do that. By
145    default, an in-app product inherits its default language from the parent
146    application.</p>
147  </li>
148  <li><strong>Title</strong>
149    <p>The title is a short descriptor for the item. For example, "Sleeping potion." Titles must be
150    unique across an application's namespace. Every item must have a title. The title is visible to
151    users during checkout. For optimum appearance, titles should be no longer than 25 characters;
152    however, titles can be up to 55 characters in length.</p>
153  </li>
154  <li><strong>Description</strong>
155    <p>The description is a long descriptor for the item. For example, "Instantly puts creatures to
156    sleep. Does not work on angry elves." Every item must have a description. The description is
157    visible to users during checkout. Descriptions can be up to 80 characters in length.</p>
158  </li>
159  <li><strong>Price</strong>
160    <p>You must provide a default price in your home currency. You can also provide prices in other
161    currencies, but you can do this only if a currency's corresponding country is listed as a
162    target country for your application. You can specify target countries on the Edit Application
163    page in the Google Play developer console.</p>
164    <p>To specify prices in other currencies, you can manually enter the price for each
165    currency or you can click <strong>Auto Fill</strong> and let Google Play do a one-time
166    conversion from your home currency to the currencies you are targeting (see figure 3).</p>
167    <p>For subscription items, note that you can not change the item's price once you have published it. </p>
168  </li>
169</ul>
170
171<div style="margin:1em;">
172<img style="border:1px solid #ddd;padding-bottom:.5em" src="{@docRoot}images/in-app-billing/billing_list_form_2.png" xheight="1226" id="figure3" />
173<p class="img-caption" style="padding-left:.5em;">
174  <strong>Figure 3.</strong> Specifying additional currencies for an in-app product.
175</p>
176</div>
177
178<p>For more information about product IDs and product lists, see <a
179href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1072599">Creating In-App Product
180IDs</a>. For more information about pricing, see <a
181href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1153485">In-App Billing
182Pricing</a>.</p>
183
184<p class="note"><strong>Note</strong>: Be sure to plan your product ID namespace. You cannot reuse
185or modify product IDs after you save them.</p>
186
187<h3 id="billing-bulk-add">Adding a batch of items to a product list</h3>
188
189<p>To add a batch of items to a product list using a CSV file, you first need to create your CSV
190file. The data values that you specify in the CSV file represent the same data values you specify
191manually through the In-app Products UI (see <a href="#billing-form-add">Adding items one at a time
192to a product list</a>).
193
194<p>If you are importing and exporting CSV files with in-app products, please
195keep tax-inclusive pricing in mind. If you use auto-fill, you can provide a
196tax-exclusive default price and tax-inclusive prices will be auto-filled. If you
197do not use auto-fill, prices you provide must include tax.</p>
198
199<p class="note"><strong>Note:</strong> Batch upload of product lists containing subscriptions is not yet supported.</p>
200
201The CSV file uses commas (,) and semi-colons (;) to separate data values.
202Commas are used to separate primary data values, and semi-colons are used to separate subvalues. For
203example, the syntax for the CSV file is as follows:</p>
204
205<p>"<em>product_id</em>","<em>publish_state</em>","<em>purchase_type</em>","<em>autotranslate</em>
206","<em>locale</em>; <em>title</em>; <em>description</em>","<em>autofill</em>","<em>country</em>;
207<em>price</em>"
208</p>
209
210<p>Descriptions and usage details are provided below.</p>
211
212<ul>
213  <li><em>product_id</em>
214    <p>This is equivalent to the In-app Product ID setting in the In-app Products UI. If you specify
215    a <em>product_id</em> that already exists in a product list, and you choose to overwrite
216    the product list while importing the CSV file, the data for the existing item is overwritten with
217    the values specified in the CSV file. The overwrite feature does not delete items that are on a
218    product list but not present in the CSV file.</p>
219  </li>
220  <li><em>publish_state</em>
221    <p>This is equivalent to the Publishing State setting in the In-app Products UI. Can be <code>
222    published</code> or <code>unpublished</code>.</p>
223  </li>
224  <li><em>purchase_type</em>
225    <p>This is equivalent to the Product Type setting in the In-app Products UI. Can be <code>
226    managed_by_android</code>, which is equivalent to <strong>Managed per user account
227    </strong> in the In-app Products UI, or <code>managed_by_publisher</code>, which is equivalent
228    to <strong>Unmanaged</strong> in the In-app Products UI.</p>
229  </li>
230  <li><em>autotranslate</em>
231    <p>This is equivalent to selecting the <strong>Fill fields with auto translation</strong>
232    checkbox in the In-app Products UI. Can be <code>true</code> or <code>false</code>.</p>
233  </li>
234  <li><em>locale</em>
235    <p>This is equivalent to the Language setting in the In-app Products UI. You must have an entry
236    for the default locale. The default locale must be the first entry in the list of
237    locales, and it must include a <em>title</em> and <em>description</em>. If you want to provide
238    translated versions of the <em>title</em> and <em>description</em> in addition to the default,
239    you must use the following syntax rules:</p>
240    <p>If <em>autotranslate</em> is <code>true</code>, you must specify the default locale,
241    default title, default description, and other locales using the following format:</p>
242    <p>"true,"<em>default_locale</em>; <em>default_locale_title</em>;
243    <em>default_locale_description</em>; <em>locale_2</em>;    <em>locale_3</em>, ..."</p>
244    <p>If <em>autotranslate</em> is <code>false</code>, you must specify the default locale,
245    default title, and default description as well as the translated titles and descriptions using
246    the following format:</p>
247    <p>"false,"<em>default_locale</em>; <em>default_locale_title</em>;
248    <em>default_locale_description</em>; <em>locale_2</em>; <em>locale_2_title</em>;
249    <em>local_2_description</em>; <em>locale_3</em>; <em>locale_3_title</em>;
250     <em>locale_3_description</em>; ..."</p>
251    <p>See table 1 for a list of the language codes you can use with the <em>locale</em> field.</p>
252  </li>
253  <li><em>title</em>
254    <p>This is equivalent to the Title setting in the In-app Products UI. If the <em>title</em>
255    contains a semicolon, it must be escaped with a backslash (for example, "\;"). A backslash
256    should also be escaped with a backslash (for example, "\\">.</p>
257  </li>
258  <li><em>description</em>
259    <p>This is equivalent to the Description in the In-app Products UI. If the <em>description</em>
260    contains a semicolon, it must be escaped with a backslash (for example, "\;"). A backslash
261    should also be escaped with a backslash (for example, "\\">.</p>
262  </li>
263  <li><em>autofill</em>
264    <p>This is equivalent to clicking <strong>Auto Fill</strong> in the In-app Products UI. Can be
265    <code>true</code> or <code>false</code>. The syntax for specifying the <em>country</em>
266    and <em>price</em> varies depending on which <em>autofill</em> setting you use.</p>
267    <p>If <em>autofill</em> is set to <code>true</code>, you need to specify only the default
268    price in your home currency and you must use this syntax:</p>
269    <p>"true","<em>default_price_in_home_currency</em>"
270    <p>If <em>autofill</em> is set to <code>false</code>, you need to specify a <em>country</em>
271    and a <em>price</em> for each currency and you must use the following syntax:</p>
272    <p>"false", "<em>home_country</em>; <em>default_price_in_home_currency</em>; <em>country_2</em>;
273    <em>country_2_price</em>; <em>country_3</em>; <em>country_3_price</em>; ..."</p>
274  </li>
275  <li><em>country</em>
276    <p>The country for which you are specifying a price. You can only list countries that your
277    application is targeting. The country codes are two-letter uppercase
278    ISO country codes (such as "US") as defined by
279    <a href="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-2</a>.</p>
280  </li>
281  <li><em>price</em>
282    <p>This is equivalent to the Price in the In-app Products UI. The price must be specified in
283    micro-units. To convert a currency value to micro-units, you multiply the real value by 1,000,000.
284    For example, if you want to sell an in-app item for $1.99 you specify 1990000 in the
285    <em>price</em> field.</p>
286  </li>
287</ul>
288
289<p class="table-caption" id="language-table"><strong>Table 1.</strong> Language codes you can use
290with the <em>locale</em> field.</p>
291
292<table>
293
294<tr>
295<th>Language</th>
296<th>Code</th>
297<th>Language</th>
298<th>Code</th>
299</tr>
300<tr>
301<td>Chinese</td>
302<td>zh_TW</td>
303<td>Italian</td>
304<td>it_IT</td>
305</tr>
306<tr>
307<td>Czech</td>
308<td>cs_CZ</td>
309<td>Japanese</td>
310<td>ja_JP</td>
311</tr>
312<tr>
313<td>Danish</td>
314<td>da_DK</td>
315<td>Korean</td>
316<td>ko_KR</td>
317</tr>
318<tr>
319<td>Dutch</td>
320<td>nl_NL</td>
321<td>Norwegian</td>
322<td>no_NO</td>
323</tr>
324<tr>
325<td>English</td>
326<td>en_US</td>
327<td>Polish</td>
328<td>pl_PL</td>
329</tr>
330<tr>
331<td>French</td>
332<td>fr_FR</td>
333<td>Portuguese</td>
334<td>pt_PT</td>
335</tr>
336<tr>
337<td>Finnish</td>
338<td>fi_FI</td>
339<td>Russian</td>
340<td>ru_RU</td>
341</tr>
342<tr>
343<td>German</td>
344<td>de_DE</td>
345<td>Spanish</td>
346<td>es_ES</td>
347</tr>
348<tr>
349<td>Hebrew</td>
350<td>iw_IL</td>
351<td>Swedish</td>
352<td>sv_SE</td>
353</tr>
354<tr>
355<td>Hindi</td>
356<td>hi_IN</td>
357<td>--</td>
358<td>--</td>
359</tr>
360</table>
361
362<p>To import the items that are specified in your CSV file, do the following:</p>
363
364<ol>
365  <li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
366  <li>In the <strong>All Google Play listings</strong> panel, under the application name, click
367  <strong>In-app Products</strong>.</li>
368  <li>On the In-app Products List page, click <strong>Choose File</strong> and select your CSV
369file.
370    <p>The CSV file must be on your local computer or on a local disk that is connected to your
371    computer.</p>
372  </li>
373  <li>Select the <strong>Overwrite</strong> checkbox if you want to overwrite existing items in
374  your product list.
375    <p>This option overwrites values of existing items only if the value of the <em>product_id</em>
376    in the CSV file matches the In-app Product ID for an existing item in the product list.
377    Overwriting does not delete items that are on a product list but not present in the CSV
378    file.</p>
379  </li>
380  <li>On the In-app Products List page, click <strong>Import from CSV</strong>.</li>
381</ol>
382
383<p>You can also export an existing product list to a CSV file by clicking <strong>Export to CSV
384</strong> on the In-app Product List page. This is useful if you have manually added items to
385a product list and you want to start managing the product list through a CSV file.</p>
386
387<h3 id="billing-purchase-type">Choosing a Product Type</h3>
388
389<p>An item's product type controls how Google Play manages the purchase of the item. There are
390several product types, including "managed per user account", "unmanaged," and "subscription." However,
391note that the product types supported vary
392across In-app Billing Version, so you should always choose a product type that's valid for the
393version of In-app BIlling that your app uses. </p>
394
395<p>For details, refer to the documentation for <a
396href="{@docRoot}google/play/billing/api.html#producttype">In-app Billing Version
3973</a> or <a href="{@docRoot}google/play/billing/v2/api.html#producttype">In-app
398Billing Version 2</a>.
399
400<h2 id="billing-refunds">Handling Refunds</h2>
401
402<p>In-app billing does not allow users to send a refund request to Google Play. Refunds for
403in-app purchases must be directed to you (the application developer). You can then process the
404refund through your Google Wallet merchant account. When you do this, Google Play receives a
405refund notification from Google Wallet, and Google Play sends a refund message to your
406application. For more information, see <a
407href="{@docRoot}google/play/billing/v2/api.html#billing-action-notify">Handling
408IN_APP_NOTIFY messages</a> and <a
409href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1153485">In-app Billing
410Pricing</a>.</p>
411
412<p class="caution"><strong>Important:</strong> You cannot use the Google Wallet API to issue
413refunds or cancel In-app Billing transactions. You must do this manually through your Google
414Wallet merchant account. However, you can use the Google Wallet API to retrieve order
415information.</p>
416
417<h2 id="orderId">Working with Order Numbers</h2>
418
419<p>When a user purchases an in-app item, Google Wallet assigns the transaction
420a unique and permanent order number. Google Play provides that order number to
421you at the conclusion of the purchase flow, as the value of the
422<code>orderId</code> field of the <code>PURCHASE_STATE_CHANGED</code>
423intent.</p>
424
425<p>In your app, you can use the order number as a general-purpose identifier for
426the in-app purchase transaction. After the purchase, you can use the order
427number as a means of tracking the transaction in reconciliation reports and for
428customer support.</p>
429
430<p>The order number itself is a string consisting of numbers only, with a format
431assigned and managed by Google Wallet.</p>
432
433<p>For transactions dated 5 December 2012 or later, Google Wallet assigns a
434Merchant Order Number (rather than a Google Order Number) and reports the Merchant
435Order Number as the value of <code>orderID</code>. Here's an
436example:</p>
437
438<pre>"orderId" : "12999556515565155651.5565135565155651"</pre>
439
440<p>For transactions dated previous to 5 December 2012, Google checkout assigned
441a Google Order Number and reported that number as the value of
442<code>orderID</code>. Here's an example of an <code>orderID</code> holding a
443Google Order Number:</p>
444
445<pre>"orderId" : "556515565155651"</pre>
446
447<h2 id="billing-testing-setup">Setting Up Test Accounts</h2>
448
449<p>The Google Play Developer Console lets you set up one or more test accounts. A test account is a
450regular Google account that you register on the Developer Console as a test account. Test accounts are
451authorized to make in-app purchases from applications that you have uploaded to the Google Play
452Developer Console but have not yet published.</p>
453
454<p>You can use any Google account as a test account. Test accounts are useful if you want to let
455multiple people test In-app Billing on applications without giving them access to your publisher
456account's sign-in credentials. If you want to own and control the test accounts, you can create the
457accounts yourself and distribute the credentials to your developers or testers.</p>
458
459<p>Test accounts have three limitations:</p>
460
461<ul>
462  <li>Test account users can make purchase requests only within applications that are already
463  uploaded to your publisher account (although the application doesn't need to be published).</li>
464  <li>Test accounts can only be used to purchase items that are listed (and published) in an
465  application's product list.</li>
466  <li>Test account users do not have access to your publisher account and cannot upload applications
467  to your publisher account.</li>
468</ul>
469
470<p>To add test accounts to your publisher account, follow these steps:</p>
471
472<ol>
473  <li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
474  <li>Click the <strong>Settings</strong> icon. (If you are using the old Developer Console UI, click
475  <strong>Edit profile</strong> in the upper left part of the page, under your name,)</li>
476  <li>Locate the License Testing panel. (In the old UI, scroll down to the Licensing &amp; In-app Billing panel.)</li>
477  <li>Add the email addresses for the test accounts you want to register,
478  separating each account with a comma.</li>
479  <li>Click <strong>Save</strong> to save your profile changes.</li>
480</ol>
481
482<h3 id="license_key">Getting an app's license key</h3>
483
484<p>The Google Play Developer Console provides a public licensing key for each app. To get the key for an app,
485load the app's publishing details in the Developer Console and click the <strong>Settings</strong> icon. The key
486for the app is available for copy/paste in License Key for this Application field, as shown in the figure below.</p>
487
488<p>Previously, the Developer Console provided a single public key per developer account. To transition apps to the
489new per-app public key, the Developer Console set the app-specific key as the former developer key. This ensures
490compatibility for apps that depend on the (former) developer key. </p>
491
492<div style="margin:1em;">
493<img style="border:1px solid #ddd;padding-bottom:.5em" src="{@docRoot}images/in-app-billing/billing_app_key.png" xheight="510" id="figure4" />
494<p class="img-caption" style="padding-left:.5em;">
495  <strong>Figure 4.</strong> You can find the license key for each app in the <strong>Services &amp; APIs</strong> panel.
496</p>
497</div>
498
499<h2 id="billing-support">Where to Get Support</h2>
500
501<p>If you have questions or encounter problems while implementing In-app Billing, contact the
502support resources listed in the following table (see table 2). By directing your queries to the
503correct forum, you can get the support you need more quickly.</p>
504
505<p class="table-caption" id="support-table"><strong>Table 2.</strong> Developer support resources
506for Google Play In-app Billing.</p>
507
508<table>
509
510<tr>
511<th>Support Type</th>
512<th>Resource</th>
513<th>Range of Topics</th>
514</tr>
515<tr>
516<td rowspan="2">Development and testing issues</td>
517<td>Google Groups: <a
518href="http://groups.google.com/group/android-developers">android-developers</a> </td>
519<td rowspan="2">In-app billing integration questions, user experience ideas, handling of responses,
520obfuscating code, IPC, test environment setup.</td>
521</tr>
522<tr>
523<td>Stack Overflow: <a
524href="http://stackoverflow.com/questions/tagged/android">http://stackoverflow.com/questions/tagged/
525android</a></td>
526</tr>
527<tr>
528<td>Billing issue tracker</td>
529<td><a href="http://code.google.com/p/marketbilling/issues/">Billing
530project issue tracker</a></td>
531<td>Bug and issue reports related specifically to In-app Billing sample code.</td>
532</tr>
533</table>
534
535<p>For general information about how to post to the groups listed above, see <a
536href="{@docRoot}resources/community-groups.html">Developer Forums</a> document in the Resources
537tab.</p>
538
539
540
541