# com.android.billingclient.api

## Annotations

|---|---|
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.BillingProgram` | Possible billing programs. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.BillingResponseCode` | Possible response codes. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.ConnectionState` | Connection state of billing client. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType` | Features/capabilities supported by `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#isFeatureSupported(java.lang.String)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.OnPurchasesUpdatedSubResponseCode` | Sub response codes further qualifying errors returned in `https://developer.android.com/reference/com/android/billingclient/api/PurchasesUpdatedListener#onPurchasesUpdated(com.android.billingclient.api.BillingResult,java.util.List<com.android.billingclient.api.Purchase>)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.ProductType` | Supported Product types. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams.SubscriptionProductReplacementParams.ReplacementMode` | Supported replacement modes to replace an existing product with a new one. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams.ReplacementMode` | Supported replacement modes to replace an existing subscription with a new one. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramAvailabilityDetails.BillingChoiceAvailabilityDetails.ChoiceScreenType` | The type of choice screen to be rendered. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsParams.DeveloperBillingType` | The type for a developer-provided billing option. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperBillingOptionParams.LaunchMode` | The launch mode for a developer-provided billing option. |
| `https://developer.android.com/reference/com/android/billingclient/api/GetBillingChoiceInfoParams.ImageLayout` | Supported image layouts. |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageParams.InAppMessageCategoryId` | A high-level category of the in-app message. |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageResult.InAppMessageResponseCode` | Possible response codes. |
| `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkParams.LaunchMode` | The mode in which the external link flow should be launched. |
| `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkParams.LinkType` | The type of the external link. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.RecurrenceMode` | Recurrence mode of the pricing phase. |
| `https://developer.android.com/reference/com/android/billingclient/api/Purchase.PurchaseState` | Possible purchase states. |
| `https://developer.android.com/reference/com/android/billingclient/api/UnfetchedProduct.StatusCode` | Possible Status codes. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/com/android/billingclient/api/AcknowledgePurchaseResponseListener` | Listener for the result of an acknowledge purchase request. |
| `https://developer.android.com/reference/com/android/billingclient/api/AlternativeBillingOnlyAvailabilityListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#isAlternativeBillingOnlyAvailableAsync(com.android.billingclient.api.AlternativeBillingOnlyAvailabilityListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/AlternativeBillingOnlyInformationDialogListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#showAlternativeBillingOnlyInformationDialog(android.app.Activity,com.android.billingclient.api.AlternativeBillingOnlyInformationDialogListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/AlternativeBillingOnlyReportingDetailsListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#createAlternativeBillingOnlyReportingDetailsAsync(com.android.billingclient.api.AlternativeBillingOnlyReportingDetailsListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingChoiceInfoResponseListener` | Listener for `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#getBillingChoiceInfoAsync(com.android.billingclient.api.GetBillingChoiceInfoParams,com.android.billingclient.api.BillingChoiceInfoResponseListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClientStateListener` | Callback for setup process. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingConfigResponseListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#getBillingConfigAsync(com.android.billingclient.api.GetBillingConfigParams,com.android.billingclient.api.BillingConfigResponseListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramAvailabilityListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#isBillingProgramAvailableAsync(int,com.android.billingclient.api.BillingProgramAvailabilityListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramInformationDialogListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#showBillingProgramInformationDialog(android.app.Activity,com.android.billingclient.api.BillingProgramInformationDialogParams,com.android.billingclient.api.BillingProgramInformationDialogListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#createBillingProgramReportingDetailsAsync(com.android.billingclient.api.BillingProgramReportingDetailsParams,com.android.billingclient.api.BillingProgramReportingDetailsListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/ConsumeResponseListener` | Callback that notifies when a consumption operation finishes. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperProvidedBillingListener` | Interface for listening to developer-provided billing events. |
| `https://developer.android.com/reference/com/android/billingclient/api/ExternalOfferAvailabilityListener` | **This interface is deprecated.** Use `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#isBillingProgramAvailableAsync(int,com.android.billingclient.api.BillingProgramAvailabilityListener)` with `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramAvailabilityListener` instead. <br /> |
| `https://developer.android.com/reference/com/android/billingclient/api/ExternalOfferInformationDialogListener` | **This interface is deprecated.** Use `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#launchExternalLink(android.app.Activity,com.android.billingclient.api.LaunchExternalLinkParams,com.android.billingclient.api.LaunchExternalLinkResponseListener)` with `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkResponseListener` instead. <br /> |
| `https://developer.android.com/reference/com/android/billingclient/api/ExternalOfferReportingDetailsListener` | **This interface is deprecated.** Use `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#createBillingProgramReportingDetailsAsync(com.android.billingclient.api.BillingProgramReportingDetailsParams,com.android.billingclient.api.BillingProgramReportingDetailsListener)` with `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsListener` instead. <br /> |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageResponseListener` | Listener for the result of the in-app messaging flow. |
| `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkResponseListener` | Listener for the result of the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#launchExternalLink(android.app.Activity,com.android.billingclient.api.LaunchExternalLinkParams,com.android.billingclient.api.LaunchExternalLinkResponseListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetailsResponseListener` | Listener to a result of product details query. |
| `https://developer.android.com/reference/com/android/billingclient/api/PurchaseHistoryResponseListener` | Listener to a result of purchase history query. |
| `https://developer.android.com/reference/com/android/billingclient/api/PurchasesResponseListener` | Listener to a result of purchases query. |
| `https://developer.android.com/reference/com/android/billingclient/api/PurchasesUpdatedListener` | Listener interface for purchase updates which happen when, for example, the user buys something within the app or by initiating a purchase from Google Play Store. |
| `https://developer.android.com/reference/com/android/billingclient/api/UserChoiceBillingListener` | Listener interface for the developer-managed alternative billing flow, when it is chosen by the user when initiating a purchase. |

## Classes

|---|---|
| `https://developer.android.com/reference/com/android/billingclient/api/AccountIdentifiers` | Account identifiers that were specified when the purchase was made. |
| `https://developer.android.com/reference/com/android/billingclient/api/AcknowledgePurchaseParams` | Parameters to acknowledge a purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/AcknowledgePurchaseParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/AcknowledgePurchaseParams` that are used to acknowledge a purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/AlternativeBillingOnlyReportingDetails` | The details used to report transactions made via alternative billing without user choice to use Google Play billing. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingChoiceInfo` | Response for `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#getBillingChoiceInfoAsync(com.android.billingclient.api.GetBillingChoiceInfoParams,com.android.billingclient.api.BillingChoiceInfoResponseListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient` | Main interface for communication between the library and user application code. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingClient.Builder` | Builder to configure and create a `https://developer.android.com/reference/com/android/billingclient/api/BillingClient` instance. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingConfig` | BillingConfig stores configuration used to perform billing operations. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams` | Parameters to initiate a purchase flow. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder` | Helps to construct `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams` that are used to initiate a purchase flow. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams` | Params that describe the product to be purchased and the offer to purchase with. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams.Builder` | Helps to construct a `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams.SubscriptionProductReplacementParams` | Params that describe a subscription product replacement behavior. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProductDetailsParams.SubscriptionProductReplacementParams.Builder` | Helps to construct ReplacementParams. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams` | Params that describe a subscription update. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams.Builder` | Helps to construct `https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramAvailabilityDetails` | The details about the availability of a billing program. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramAvailabilityDetails.BillingChoiceAvailabilityDetails` | Details about the availability of billing choice. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramInformationDialogParams` | Parameters for launching the billing program information dialog via `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#showBillingProgramInformationDialog(android.app.Activity,com.android.billingclient.api.BillingProgramInformationDialogParams,com.android.billingclient.api.BillingProgramInformationDialogListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramInformationDialogParams.Builder` | Builder for `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramInformationDialogParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetails` | The details used to report transactions made outside of Google Play Billing. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsParams` | Parameters to create reporting details for the `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#createBillingProgramReportingDetailsAsync(com.android.billingclient.api.BillingProgramReportingDetailsParams,com.android.billingclient.api.BillingProgramReportingDetailsListener)` API. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/BillingProgramReportingDetailsParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingResult` | Params containing the response code and the debug message from In-app Billing API response. |
| `https://developer.android.com/reference/com/android/billingclient/api/BillingResult.Builder` | Helps to construct `https://developer.android.com/reference/com/android/billingclient/api/BillingResult` that are used to return response from In-app Billing API. |
| `https://developer.android.com/reference/com/android/billingclient/api/ConsumeParams` | Parameters to consume a purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/ConsumeParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/ConsumeParams` that are used to consume a purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperBillingOptionParams` | Parameters for enabling a developer-provided billing option for a purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperBillingOptionParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/DeveloperBillingOptionParams` that are used to initialize the developer-provided billing option. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperProvidedBillingDetails` | Details around a developer-provided billing selection event. |
| `https://developer.android.com/reference/com/android/billingclient/api/DeveloperProvidedBillingDetails.Product` | Details about a product being purchased. |
| `https://developer.android.com/reference/com/android/billingclient/api/EnableBillingProgramParams` | Params to enable a billing program. |
| `https://developer.android.com/reference/com/android/billingclient/api/EnableBillingProgramParams.Builder` | Builder for `https://developer.android.com/reference/com/android/billingclient/api/EnableBillingProgramParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/ExternalOfferReportingDetails` | The details used to report transactions made via external offer. |
| `https://developer.android.com/reference/com/android/billingclient/api/GetBillingChoiceInfoParams` | Params for `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#getBillingChoiceInfoAsync(com.android.billingclient.api.GetBillingChoiceInfoParams,com.android.billingclient.api.BillingChoiceInfoResponseListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/GetBillingChoiceInfoParams.Builder` | Builder for `https://developer.android.com/reference/com/android/billingclient/api/GetBillingChoiceInfoParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/GetBillingConfigParams` | Parameters for get billing config flow `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#getBillingConfigAsync(com.android.billingclient.api.GetBillingConfigParams,com.android.billingclient.api.BillingConfigResponseListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/GetBillingConfigParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/GetBillingConfigParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageParams` | Parameters for in-app messaging. |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageParams`. |
| `https://developer.android.com/reference/com/android/billingclient/api/InAppMessageResult` | Results related to in-app messaging. |
| `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkParams` | Parameters to initiate the launching a link outside of the app. |
| `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/LaunchExternalLinkParams` that are used to initiate the installation of an external app. |
| `https://developer.android.com/reference/com/android/billingclient/api/PendingPurchasesParams` | Parameters to enable pending purchases. |
| `https://developer.android.com/reference/com/android/billingclient/api/PendingPurchasesParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/PendingPurchasesParams` that are used to enable pending purchases. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails` | Represents the details of a one time or subscription product. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.InstallmentPlanDetails` | Represents additional details of an installment subscription plan. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails` | Represents the offer details to buy an one-time purchase product. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.DiscountDisplayInfo` | Represents discount display information about a discounted one-time product offer. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.DiscountDisplayInfo.DiscountAmount` | Represents a discount amount. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.LimitedQuantityInfo` | Represents the limited quantity information. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.PreorderDetails` | Represents the preorder details about preorder offers. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.RentalDetails` | Represents the rental details about rental offers. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.OneTimePurchaseOfferDetails.ValidTimeWindow` | Represents offer valid time window for which users are eligible for a one-time product offer. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.PricingPhase` | Represents a pricing phase, describing how a user pays at a point in time. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.PricingPhases` | Pricing phases for purchasing an item through a offer. |
| `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.SubscriptionOfferDetails` | Represents the available purchase plans to buy a subscription product. |
| `https://developer.android.com/reference/com/android/billingclient/api/Purchase` | Represents an in-app billing purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/Purchase.PendingPurchaseUpdate` | Represents a pending change/update to the existing purchase. |
| `https://developer.android.com/reference/com/android/billingclient/api/PurchaseHistoryRecord` | Represents an in-app billing purchase history record. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams` | Parameters to initiate a query for Product details `https://developer.android.com/reference/com/android/billingclient/api/BillingClient#queryProductDetailsAsync(com.android.billingclient.api.QueryProductDetailsParams,com.android.billingclient.api.ProductDetailsResponseListener)`. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams` required to query `https://developer.android.com/reference/com/android/billingclient/api/ProductDetails`. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams.Product` | A Product identifier used for querying product details. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams.Product.Builder` | Builder that helps construct `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsParams.Product`. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryProductDetailsResult` | The product details query result. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryPurchasesParams` | Parameters to initiate a query for purchases. |
| `https://developer.android.com/reference/com/android/billingclient/api/QueryPurchasesParams.Builder` | Helps construct `https://developer.android.com/reference/com/android/billingclient/api/QueryPurchasesParams` required to query purchases. |
| `https://developer.android.com/reference/com/android/billingclient/api/UnfetchedProduct` | Represents a product that was unable to be fetched. |
| `https://developer.android.com/reference/com/android/billingclient/api/UserChoiceDetails` | Details related to a user's choice of alternative billing. |
| `https://developer.android.com/reference/com/android/billingclient/api/UserChoiceDetails.Product` | Details about a product being purchased. |