Skip to main content
Merchants integrating the Cashfree Web checkout using Cashfree JS SDK. But they are unable to see the UPI intent option on the checkout page as the Cashfree checkout page is opening on Webview. This document provides guidance for merchants developing their applications on platforms such as Android, React Native, Flutter, Cordova who have integrated the Cashfree JS SDK.
If you are using Cashfree Mobile SDK, refer to Mobile SDK.
Before testing UPI Intent, ensure you are testing on a device that has the relevant UPI apps installed and SIM binding is completed in the UPI PSP app (such as PhonePe, GPay, or Paytm) on that device. A UPI app that is installed but not SIM-bound does not appear as a payment option on the checkout page.

Feature flag based solution Client-side

Our checkout page provides the capability to display default UPI apps, including PhonePe, GPay, and Paytm, along with an option to pay via any UPI app. This feature ensures that these UPI apps are visible on the checkout page, regardless of whether they are installed on the user’s device. When a user selects a UPI app, merchants are responsible for handling the redirection. Only a minimal code snippet is required on the merchant’s side to handle the UPI app click and manage the subsequent redirection process.
iOS requires every scheme checked with canOpenURL to be declared upfront in your app’s info.plist, otherwise the check silently returns false. For the full iOS SDK v4 UPI Intent configuration, see the iOS SDK v4 UPI Intent documentation.
Info.plist
On Android 11 and later (API level 30+), apps must declare which packages they intend to query before they can detect installed UPI applications. Add the following <queries> block to your AndroidManifest.xml:
AndroidManifest.xml
Without this declaration, queryIntentActivities returns an empty list on Android 11 and later, and UPI apps do not appear.
To enable this feature flag on your account, submit a request through the Support Form, and our team will enable it for you. Once enabled, it may take 30–40 minutes for the supported UPI apps to reflect on the checkout.

Code based solution Client-side

You have to write some custom logic in your mobile app while opening Cashfree checkout page. When you are loading Webview, Please register JS bridge with name Android and implement few of its method.
In this case, you have to write android native module Native ModuleUse these native module in you JS/TS code JS codeSample Usage
In this case, you have to write android native module Native ModuleUse these native module in you Dart code Dart CodeSample Usage
When loading WebView, register JS bridge with name nativeProcess and implement the required methods.Sample code