There are two flows: standard and custom
The below guide is only for custom ui implementation
https://razorpay.com/docs/payments/payment-gateway/react-native-integration/custom/build-integration
https://razorpay.com/docs/payments/payment-gateway/android-integration/custom/build-integration/#11-install-razorpay-android-custom-sdk
Install Package
npm install react-native-customui
Android specific native level changes
android/app/build.gradle
implementation project(':react-native-customui')
settings.gradle
include ':react-native-customui'
project(':react-native-customui').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-customui/android')
androidmanifest.xml
<!-- PhonePe and UPI Queries -->
<queries>
<package android:name="com.phonepe.app" />
<package android:name="com.phonepe.app.preprod" />
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/jpeg" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data
android:host="pay"
android:scheme="upi" />
</intent>
</queries>

Use real upi id for the method otherwise you won’t get razorpay_subscription_id
NOT UPDATED