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