Home | History | Annotate | Download | only in billing
      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 &mdash; 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&mdash;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 &amp; 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