Skip to content

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