--- title: "Android Component" description: "Add UPI to your Components integration." url: "https://docs.adyen.com/payment-methods/upi/android-component" source_url: "https://docs.adyen.com/payment-methods/upi/android-component.md" canonical: "https://docs.adyen.com/payment-methods/upi/android-component" last_modified: "2026-05-24T12:54:31+02:00" language: "en" --- # Android Component Add UPI to your Components integration. [View source](/payment-methods/upi/android-component.md) How you add UPI depends on your integration. Choose the [server-side flow](/online-payments/build-your-integration) that your integration uses: ## Sessions flow Component ### Before-You-Begin ## Requirements | Requirement | Description | | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | - | | **Integration type** | Make sure that you have an existing Sessions flow [Android Components integration](/online-payments/build-your-integration/sessions-flow?platform=Android). | | | **Checkout API** | Make sure that you use Checkout API v68 or later. | | | **Setup steps** | Before you begin, [add UPI in your Customer Area](/payment-methods/add-payment-methods). | | ### Add-Parameters-Sessions-Request ## Add additional parameters to your /sessions request You do not need to add any parameters when you [create a payment session](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Components#create-a-payment-session). ### Import-Component ## Import the Component for UPI To [import the library](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Components#import) and include the module for UPI. ### Tab: With Jetpack Compose **Import the module with Compose** ```java implementation "com.adyen.checkout:UPI:YOUR_VERSION" implementation "com.adyen.checkout:components-compose:YOUR_VERSION" ``` ### Tab: Without Jetpack Compose **Import the module without Compose** ```java implementation "com.adyen.checkout:UPI:YOUR_VERSION" ``` ### Add-Configuration ## Add additional configuration for UPI [Add a configuration object](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Components#3-optional-add-a-configuration-object) with the following parameters: | Parameter | Required | Description | | ---------------------- | -------- | ------------------------------------------------ | | setSubmitButtonVisible | | Set if you want the submit button to be visible. | **Add a configuration object** ```kotlin { .setSubmitButtonVisible(value) } ``` ### Launch-And-Show ## Launch and show the Component for UPI To [create the Component](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Components#launch-and-show) for UPI, use the `UPI` class. ### Tab: With Jetpack Compose **Launch and show the Component** ```kotlin import com.adyen.checkout.components.compose.get // Get the payment method. val paymentMethod = checkoutSession.getPaymentMethod(PaymentMethodTypes.SCHEME) @Composable private fun ComposableUPI() { // Keep a reference to this Component in case you need to access it later. val UPIComponent = UPI.PROVIDER.get( checkoutSession = checkoutSession, paymentMethod = paymentMethod, configuration = checkoutConfiguration, componentCallback = callback, // This key is required to ensure a new Component gets created for each different screen or payment session. // Generate a new value for this key every time you need to reset the Component. key = "YOUR_UNIQUE_KEY_FOR_THIS_COMPONENT", ) // This is your composable, a wrapper around our xml view. AdyenComponent( component = UPIComponent, modifier = YOUR_MODIFIER, ) } ``` ### Tab: Without Jetpack Compose ```kotlin // Get the payment method. val paymentMethod = checkoutSession.getPaymentMethod(PaymentMethodTypes.SCHEME) val UPIComponent = UPI.PROVIDER.get( activity, // Your activity or fragment. checkoutSession, paymentMethod, checkoutConfiguration, componentCallback ) // Attach the Component to your view. binding.UPIView.attach(UPIComponent, activity) // Your activity or fragment. ``` ## Test and go live Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) if you have questions about the simulator. You can also use your personal account on a UPI app to test your integration by making live payments with a low value. ## Advanced flow Component ## Requirements | Requirement | Description | | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | | **Integration type** | Make sure that you have an existing Advanced flow [Android Components integration](/online-payments/build-your-integration/advanced-flow?platform=Android). | | | **Action handling** | Make sure that your existing integration is set up to [handle the additional action](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Components#handle-the-redirect). `action.type`: **await**. | | | **Setup steps** | Before you begin, [add UPI in your Customer Area](/payment-methods/add-payment-methods). | | ### Import ## Import the Component for UPI To [import the library](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Components#import) and include the module for UPI. ### Tab: With Jetpack Compose **Import the module with Compose** ```java implementation "com.adyen.checkout:UPI:YOUR_VERSION" implementation "com.adyen.checkout:components-compose:YOUR_VERSION" ``` ### Tab: Without Jetpack Compose **Import the module without Compose** ```java implementation "com.adyen.checkout:UPI:YOUR_VERSION" ``` ### Add Configuration ## Add additional configuration for UPI [Add a configuration object](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Components#3-optional-add-a-configuration-object) with the following parameters: | Parameter | Required | Description | | ---------------------- | -------- | ------------------------------------------------ | | setSubmitButtonVisible | | Set if you want the submit button to be visible. | **Add a configuration object** ```kotlin { .setSubmitButtonVisible(value) } ``` ### Launch And Show ## Launch and show the Component for UPI To [create the Component](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Components#launch-and-show) for UPI, use the `UPI` class. ### Tab: With Jetpack Compose **Launch and show the Component** ```kotlin import com.adyen.checkout.components.compose.get // Create the payment method object from the /paymentMethods response. val paymentMethod = paymentMethodsApiResponse?.paymentMethods.orEmpty().firstOrNull { it.type == PaymentMethodTypes.SCHEME } @Composable private fun ComposableUPI() { // Keep a reference to this Component in case you need to access it later. val UPIComponent = UPI.PROVIDER.get( paymentMethod = paymentMethod, configuration = checkoutConfiguration, componentCallback = callback, // This key is required to ensure a new Component gets created for each different screen or payment session. // Generate a new value for this key every time you need to reset the Component. key = "UNIQUE_KEY_PER_COMPONENT", ) // This is your composable, a wrapper around our xml view. AdyenComponent( component = UPIComponent, modifier = YOUR_MODIFIER, ) } ``` ### Tab: Without Jetpack Compose ```kotlin // Create the payment method object from the /paymentMethods response. val paymentMethod = paymentMethodsApiResponse?.paymentMethods.orEmpty().firstOrNull { it.type == PaymentMethodTypes.SCHEME } val UPIComponent = UPI.PROVIDER.get( activity, // Your activity or fragment. paymentMethod, checkoutConfiguration, componentCallback, ) //Attach the Component to your view. binding.UPIView.attach(UPIComponent, activity) // Your activity or fragment. ``` ### Add Parameters Payments Request ## Add additional parameters to your /payments request When you [make a payment](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Components#make-a-payment), add the following parameters to the [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request: | Parameter | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [paymentMethod.appId](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-paymentMethod-UpiIntentDetails-appId) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Required when the payment option is UPI Intent (`paymentMethod.type`: **upi\_intent**). The identifier of the Third Party Application Provider (TPAP) that the shopper uses to make the UPI payment. Possible values: - **gpay**: Google Pay - **phonepe**: PhonePe - **bhim**: BHIM (Bharat Interface for Money) - **paytm**: Paytm - **amazonpay**: Amazon Pay - **cred**: Cred - **wapay**: WhatsApp Pay - **jupiter**: Jupiter - **navi**: navi - **supermoney**: Super.money - **mobikwik**: MobiKwik - **freecharge**: Freecharge | **Example request for UPI intent** ```bash curl https://checkout-test.adyen.com/v72/payments \ -H "x-API-key: ADYEN_API_KEY" \ -H "content-type: application/json" \ -d '{ "amount": { "currency": "INR", "value": 15100 }, "countryCode": "IN", "merchantAccount": "ADYEN_MERCHANT_ACCOUNT", "reference": "YOUR_ORDER_NUMBER", "paymentMethod": { "type": "upi_intent", "appId": "gpay" }, "returnUrl": "https://your-company.example.com/checkout?shopperOrder=12xy.." }' ``` ## Test and go live Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) if you have questions about the simulator. You can also use your personal account on a UPI app to test your integration by making live payments with a low value.