> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.qonversion.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Make a Purchase — Android

Get the product using its ID from the Qonversion [Dashboard](https://dash.qonversion.io/entitlements/products).

<CodeGroup>
  ```kotlin Kotlin theme={null}
  Qonversion.shared.products(object : QonversionProductsCallback {
      override fun onSuccess(products: Map<String, QProduct>) {
          val product = products["your_product_id"]
          // Use product to make a purchase
      }

      override fun onError(error: QonversionError) {
          // Handle error
      }
  })
  ```

  ```java Java theme={null}
  Qonversion.getSharedInstance().products(new QonversionProductsCallback() {
      @Override
      public void onSuccess(@NonNull Map<String, QProduct> products) {
          QProduct product = products.get("your_product_id");
          // Use product to make a purchase
      }

      @Override
      public void onError(@NonNull QonversionError error) {
          // Handle error
      }
  });
  ```
</CodeGroup>

Then initiate the purchase where needed in your app.

<CodeGroup>
  ```kotlin Kotlin theme={null}
  Qonversion.shared.purchase(requireActivity(), product, object : QonversionPurchaseCallback {
      override fun onResult(result: QPurchaseResult) {
          when {
              result.isSuccessful -> {
                  val premium = result.entitlements["premium"]
                  if (premium != null && premium.isActive) {
                      // Grant user access to premium features
                  }
              }
              result.isCanceledByUser -> {
                  // Handle canceled purchase
              }
              result.isPending -> {
                  // Handle pending purchase
              }
              else -> {
                  // Handle errors
              }
          }
      }
  })
  ```

  ```java Java theme={null}
  Qonversion.getSharedInstance().purchase(this, product, new QonversionPurchaseCallback() {
      @Override
      public void onResult(@NonNull QPurchaseResult result) {
          if (result.isSuccessful()) {
              QEntitlement premium = result.getEntitlements().get("premium");
              if (premium != null && premium.isActive()) {
                  // Grant user access to premium features
              }
          } else if (result.isCanceledByUser()) {
              // Handle canceled purchase
          } else if (result.isPending()) {
              // Handle pending purchase
          } else {
              // Handle errors
          }
      }
  });
  ```
</CodeGroup>
