|
|
|
@@ -0,0 +1,94 @@ |
|
|
|
+++ |
|
|
|
title = "PaisaVasool - HackInOut 2019" |
|
|
|
date = 2019-10-25T15:30:03+05:30 |
|
|
|
draft = false |
|
|
|
categories = ["projects"] |
|
|
|
type = "post" |
|
|
|
url = "blog/2019/10/25/paisavasool-hackinout-2019" |
|
|
|
author = "Rohan Verma" |
|
|
|
+++ |
|
|
|
|
|
|
|
Last weekend I attended a hackathon after a long time. HackInOut, which is |
|
|
|
India's biggest community hackathon, was happening very close to where I live. I |
|
|
|
went with my office colleagues [Vivek](https://vivekr.dev) and [Karan](https://mrkaran.dev) and we had discussed a lot of ideas before reaching the venue, |
|
|
|
but we were not sure what we will finally end up building. |
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
After discussing our ideas with Siddharth Shetty, an iSpirit fellow |
|
|
|
and one of the mentors at the hackathon, we finally decided to build |
|
|
|
PaisaVasool. |
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
## What is PaisaVasool |
|
|
|
|
|
|
|
Split subscriptions and collect money automatically and instantly over UPI seamlessly. |
|
|
|
|
|
|
|
<iframe width="100%" height="480" src="https://www.youtube.com/embed/QyaZFz8StoQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
|
|
|
|
|
|
|
## The problem it solves |
|
|
|
|
|
|
|
Sharing subscriptions like Netflix friends is not seamless. Collect payments |
|
|
|
online and reconciling them manually using Apps still requires us |
|
|
|
to manually confirm payments, and APIs/SDKs by PSPs are expensive. |
|
|
|
|
|
|
|
## The hack |
|
|
|
|
|
|
|
We piggyback on paisa values in the UPI request amount as the transaction ID, |
|
|
|
and reconcile the payment seamlessly and automatically into the subscriptions. |
|
|
|
|
|
|
|
## The app |
|
|
|
|
|
|
|
To demonstrate the hack for this hackathon, we decided to concentrate our efforts |
|
|
|
to Splitting Recurring Payments such as those for |
|
|
|
Netflix/Amazon Prime/Hotstar/Spotify etc. Although, our |
|
|
|
hack can be extended to any kind of collect requests. |
|
|
|
|
|
|
|
A user can create groups on our app and enter his friends contact details |
|
|
|
and instantly get reconciliations from our app when he receives payments. |
|
|
|
|
|
|
|
### Our hack allows you to consolidate your UPI requests for free! |
|
|
|
- Daily UPI requests are limited by PSP apps like Google Pay. |
|
|
|
- You can request upto 5 times on Google Pay a day |
|
|
|
- New users can't be requested more than once a day |
|
|
|
- Payment API's are expensive |
|
|
|
- Costs (2% per transaction) are added onto the consumers |
|
|
|
- You need to check your Bank transaction details and reconcile manually without a PSP |
|
|
|
- Apps like Paisa Vasool are impossible on top of UPI as of today |
|
|
|
|
|
|
|
### Our hack allows payers to pay with any VPA. |
|
|
|
- No need to ask your user to be on a specific UPI app |
|
|
|
- No need for payee to pay from his own account (parents/friends can pay on behalf) |
|
|
|
|
|
|
|
### Instant reconcilation |
|
|
|
- We process the transacation as soon as we get the bank SMS |
|
|
|
- Users don't need to check their bank details |
|
|
|
|
|
|
|
## Challenges we ran into |
|
|
|
|
|
|
|
The biggest challenge was to figure out a way to solve these issues: |
|
|
|
|
|
|
|
- How to identify a transaction |
|
|
|
- How to not need the payers VPA |
|
|
|
|
|
|
|
We figured out that: |
|
|
|
|
|
|
|
- The identifier can be embedded in the paisa value |
|
|
|
- We can read SMS to get the amount and parse the transaction ID. |
|
|
|
|
|
|
|
### Detailed technical flow |
|
|
|
- User installs our app and gives read permission for SMS to our app. |
|
|
|
- Our app is open source and only sends SMS with UPI VPAs to our server |
|
|
|
- They create a collect request in the UI with the amount and users, and create a group for recurring weekly/monthly transactions. |
|
|
|
- User adds his clients/friends to the group using mobile number and/or email |
|
|
|
- These are saved for the future |
|
|
|
- The collect request is then processed by the server |
|
|
|
- UPI link (which can be embedded in SMS/Whatsapp/Telegram) is created using [https://upi.link/](https://upi.link/) API - It is sent to all the clients/friends with appropriate amount that has been hacked to include the transaction identifier in the amount paisa value. |
|
|
|
- The app waits for SMS from the bank of the User, which includes the amount (plus paisa value identifier) inside it. |
|
|
|
- On receiving the SMS, we change the state of the pending transaction to complete. |
|
|
|
- The user can check the state and see all his transactions from our app. |
|
|
|
|
|
|
|
## Future |
|
|
|
- The [Sahamati framework](http://www.sahamati.org/) in the future will allow users to share their bank transaction ledger details with apps directly in a standardized format via Aggregators. |
|
|
|
- UPI roadmap has split requests planned for the future. |