# 17.1 Android Setup

## Setup Payment Profile

From your **Google Developer Console Account > Setup > Payment Profile**, you need to add your payment profile. Like adding your bank account. If you have already added that, you can ignore it.

## License Testing Setup

In this step, you need to add some **testers** who can test the IAP product in the app and purchase points without any real payment.

**From your Google Developer Console Account > Setup > License testing**, Add some email addresses.

<div align="left"><figure><img src="/files/Q1K8glDffSepeZL3cy9G" alt=""><figcaption></figcaption></figure></div>

## Upload Initial Build at Google Play Store

To activate **IAP** for your app in the Google Play Store, you need to add the **billing permission** in the code section and upload an initial build at the Google Play Store as **Internal/Close Testing**. (Only the testers you will assign in the upcoming step can test the app). You shouldn't upload it on production.

{% hint style="info" %}
Choosing Internal testing is easier. You don't have to go through the review process and don't have to provide app meta details.
{% endhint %}

#### Add the Billing Permission

From the App source code, Go to the **lms\_app/android/app/src/main/AndroidManifest.xml** file and **enable** the selected line shown in the picture below. This permission will enable the billing and IAP at the Google Play Store.

<figure><img src="/files/eFPP0VEbxKtXanVmsmE0" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you already uploaded your app in production and released it at the Google Play Store, you also need to follow the same step (Add billing permission and upload it as an Internal/Close Testing version).
{% endhint %}

Without uploading any new version in the **Internal/Closed Testing**, you won't see the IAP features.

{% hint style="info" %}
Before going to the next steps, make sure you have uploaded a new build in the Internal/Closed Testing and published it.
{% endhint %}

## Configure Subscriptions

After publishing a new version with Close testing, you will see the **Subscriptions** option on your app sidebar.

<figure><img src="/files/oJaTQC7oOmwWH9msyelp" alt=""><figcaption></figcaption></figure>

#### Create Subscriptions

From **Your App > Monetize >** **Subscriptions**, create a subscription by clicking on the **Create Subscription** button.&#x20;

* Add **Product ID**.

{% hint style="info" %}
Product ID can be anything but unique. You must add the duration in days in your product ID. For example,&#x20;

**myplan\_7** (for 7 days),

**myanotherplan\_30** (for 30 days)
{% endhint %}

{% hint style="danger" %}
You can't use any other number in your product ID except the days. Example,

**myplan1\_30, myplan2\_365**

This is not acceptable.
{% endhint %}

Look at the shown below, you will understand how to use product IDs.

<div align="left"><figure><img src="/files/JKdOjJ2BAeKrNtu3DIoq" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/rgaZiggmHfIUn8KdVxoi" alt=""><figcaption></figcaption></figure>

* Add **Product Name** which will be shown on the app.
* After creating the product, add subscription details > Description.

<figure><img src="/files/fV9W04k6z5MKCDDT7Eik" alt=""><figcaption></figcaption></figure>

* Add base plan ID.

{% hint style="info" %}
You have to create a **base plan** for your product. You can create many base plans but only one will be active. A base plan ID can be anything but unique. No extra requirements for that.
{% endhint %}

* Select Type > Prepaid and select the plan duration.

{% hint style="danger" %}
Plan duration must be aligned with your product\_id. For example, if you select 1 week then your product ID must contain 7. If you select 1 month then your product ID must contain 30.
{% endhint %}

<figure><img src="/files/UVJljjrVpfqGnFOhOoDG" alt=""><figcaption></figcaption></figure>

* Now save the base plan.

{% hint style="success" %}
That's it. Your first subscription plan has been created. This way you can create as many plans as you want. We have used 3 plans for our demo app.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.newshour.mrb-lab.com/in-app-purchase-setup/17.-subscriptions-setup/17.1-android-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
