Available in🇮🇳 India
With Razorpay Turbo UPI, businesses experience faster and simpler payments. It condenses the payment process from 5 steps to just 1, eliminating app redirections. Enjoy a seamless in-app payment experience, reduce dependencies on third-party UPI apps, and gain complete visibility of the payment journey.
Prerequisites
Prerequisites
-
Contact our integrations team to get your mobile number, app, and GitHub account whitelisted to get access to the
https://github.com/upi-turbo/android-turbo-sample-app- sample app repository. In this repository, you will find the AAR files (libraries for Turbo). The AARs on the main branch are for the UAT environment, and the ones on the prod branch are for the production environment.
These are the important files in the sample app repo:app/libs: All libraries (Bank, SecureComponent and Turbo) common for headless SDK.app/build.gradle: All transitive dependencies needed to integrate Turbo SDK.
- Integrate with Razorpay Flutter Custom Integration.
-
Import the following frameworks:
- Razorpay Turbo Wrapper Plugin SDK (maven)
- Razorpay Turbo Core SDK
- Razorpay SecureComponent SDK
- Bank SDK
-
Add the following lines to your Android project’s
gradle.propertiesfile:android.enableJetifier=trueandroid.useAndroidX=true
1. Integration Steps
- Use the code given below to initialise the SDK.
Import Package
- Use the following code to link the newly created UPI account with your app. This function can be called from anywhere in the application, providing multiple entry points for customers to link their UPI account with your app.
Link UPI Account
Request Parameter
Request Parameter
- Initialise the instance to handle the event using the code given below:
Instantiate
- Handle dynamic responses to perform specific actions, including error handling and interactions with the integration, based on ‘type’ and ‘action’ properties.
Attach Event Listeners
- If your customer has already linked the UPI account, use the following code to fetch it. If there are no linked UPI accounts, an empty list is returned.
Get Linked UPI Account
Request Parameter
Request Parameter
Response Parameters
Response Parameters
- To accept payments, call Custom Checkout’s
submitmethod with the following payload:
Submit Payment Details
Request Parameter
Request Parameter
Response Parameters
Response Parameters
- Initialise the instance to handle the event, using the code given below:
Instantiate
- Print payment success and error responses by attaching event listeners to payment events as given below:
Attach Event Listeners
Non-Transactional Flow
You can directly interact with the exposed methods of the Turbo Framework to perform the non-transactional flows listed below.Fetch Balance
Fetch Balance
Fetch the customer’s account balance. Call
getBalance() on the bank account object received from upiAccount.Fetch Balance
Request Parameter
Request Parameter
Response Parameters
Response Parameters
Change UPI PIN
Change UPI PIN
Provide the customer with the ability to change their UPI PIN. Call
changeUpiPin() on the bank account object received from UpiAccount.Change UPI PIN
Request Parameters
Request Parameters
Response Parameters
Response Parameters
Reset UPI
Reset UPI
Let your customers reset the PIN for their account.
Reset UPI
Request Parameters
Request Parameters
Response Parameters
Response Parameters
Delink
Delink
Let your customers delink, that is, remove a selected UPI account from your application.
Delink
Request Parameter
Request Parameter
Response Parameters
Response Parameters
Models Exposed from the SDKs
The SDKs given below provide access to exposed models for seamless integration.BankAccount
BankAccount
Bank
Bank
AccountBalance
AccountBalance
UpiAccount
UpiAccount
SIM
SIM
Card
Card
AllBanks
AllBanks
2. Test Integration
We recommend the following:- Complete the integration on UAT before using the prod builds.
- Perform the UAT using the Razorpay-provided API keys.
3. Go-live Checklist
Complete these steps to take your integration live:- You should get your app id whitelisted by Razorpay to test on prod.
Handy TipsContact our integrations team to get your mobile number and app whitelisted.
-
Import the prod library from the GitHub repository →
https://github.com/upi-turbo/android-turbo-sample-app/tree/prod/app/libsprod branch. -
Add Proguard rules:
keepclassmembers,allowobfuscation class * { @com.google.gson.annotations.SerializedName <fields>; }keepclassmembers enum * { *; }keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; }dontwarn com.razorpay.**keep class com.razorpay.** {*;}keep class com.olivelib.** {*;}keep class com.olive.** {*;}keep class org.apache.xml.security.** {*;}keep interface org.apache.xml.security.** {*;}keep class org.npci.** {*;}keep interface org.npci.** {*;}keep class retrofit2.** { *; }keep class okhttp3.** { *; }
- Replace the UAT credential with the Razorpay live keys for prod testing.