UPI Deep Linking Configuration Guide
iOS
The LSApplicationQueriesSchemes array in Info.plist allows your app to check if specific URL schemes are available (i.e., if other apps are installed). This is required before initiating app-to-app communications with UPI payment apps.
Steps
Open your project’s Info.plist file
Add the following configuration under the root <dict> element:
<!-- Required for UPI app integrations --><key>LSApplicationQueriesSchemes</key><array> <!-- Standard web protocols --> <string>https</string> <string>http</string>
<!-- UPI Payment Apps --> <string>phonepe</string> <string>paytm</string> <string>paytmmp</string> <string>tez</string> <string>credpay</string> <string>upi</string> <string>BHIM</string> <string>ppesim</string>
<!-- TestFlight beta testing --> <string>itms-beta</string></array>
Android
The <queries> element declares which apps you intend to interact with, required for Android 11 (API 30) and higher to maintain package visibility.
Steps
Add this configuration in your AndroidManifest.xml:
<manifest> ... <queries> <!-- UPI Payment Apps --> <package android:name="com.phonepe.app" /> <!-- PhonePe --> <package android:name="net.one97.paytm" /> <!-- Paytm --> <package android:name="com.google.android.apps.nbu.paisa.user" /> <!-- Google Pay --> <package android:name="in.org.npci.upiapp" /> <!-- BHIM UPI --> <package android:name="in.amazon.mShop.android.shopping" /> <!-- Amazon Pay --> <package android:name="com.dreamplug.androidapp" /> <!-- CRED -->
<!-- Add additional packages below --> </queries> ...</manifest>
Notes
- Place the <queries> element directly under the root <manifest> tag
- Required for Android 11+ (API 30+) compatibility
- No impact on devices running Android 10 and below