The Unified Payments Interface (UPI) and BHIM (Bharat Interface for Money) are significant interventions by the government to promote digital payments in our country.
Many app developers have been asking about how they might include the option to have their users pay with UPI. You might think that the only way to do so is to tie up with a bank or a payment gateway. While that’s one way to go, there is another way. National Payments Corporation of India (NPCI) has smartly integrated what’s called deep linking into all UPI payment apps. This feature enables any app developer to integrate with the User’s UPI payment app such as BHIM and make a payment. If we look deeper, it opens up huge avenues for developers to solve payments for their users.
How can an App Developer enable this?
If you want to receive payments from your users on your app, you would first need a UPI payment address. Following the below steps would allow you to implement UPI payments in your app easily.
· Generate a deep link with the necessary parameters to let the user pay through UPI. All the specifications, as well as guidelines of the mandatory, conditional and optional parameters for deep linking, are mentioned in this NPCI UPI Linking Specification.
· Your payment address (payee) and name are mandatory for a successful transaction. To create one, download the BHIM app and register your bank account as a payee. You’ll get a payment address that looks like <mobile number>@upi. If you don’t have one, the destination account number and IFSC code can also work as a payment address in the format: AccountNumber@IFSCcode.ifsc.npci, it will allow you to receive money in possibly any bank account.
Developers can also offer a standard share option which can be used for sharing the UPI link to anyone through chats or email.
You can either use a hyperlink or a QR code to initiate UPI payments by the user. We’ll take a closer look at how this is done with the help of a hyperlink for use in your app.
When your user intends to pay, she would just need to click on the UPI payment link in your app, confirm the details and complete the payment. This link would contain essential parameters mentioned in the specifications by NPCI. On clicking the link the user is automatically redirected to her UPI payment app such as BHIM on her phone. If there are multiple apps that are listening to the UPI intent, she’ll get to pick the app she wants to pay with.
Inside her UPI payment app, she can once again review who she’s paying to and the amount. On entering her UPI pin, mpin to complete the payment, the transaction success / failure is shared back to your app. Your app can now show it’s own success, or failure message.
We’ve found that the 1.2 version of the BHIM app (25/01/2017) will share a success / failure message but won’t share the unique transaction reference number back with your app.
Future Possibilities and Opportunities
Deep linking and proximity-based payments open up an interesting opportunity for easy payments for your users. We’ve tried this method out with different UPI payment apps for Android and it works well. Try using deAzzle to make a UPI payment in this manner. We’d like to caution you to use a strong whitelisting technique if you do intend to implement this in your own app. This’ll help ensure your app only redirects into an authentic UPI payment app. Do give it a try and let us know if you’re facing any issues we can help with.
An investigation into how Bank (PSP) apps have implemented UPI deep linking.