Making payments using Free Software
As the digital payment landscape moves towards proprietary and centralised solutions, the options are somewhat limited for people running Free Software on their devices. Most payment services require installing an "app", and furthermore such apps are usually only available for Android and iOS devices. Furthermore, payment providers often add additional restrictions preventing their app from running on other Android-compatible OSes like LineageOS.
This page documents the available payment options in India for people using LineageOS, GrapheneOS, Mobian, or other non-Android and -iOS platforms.
Unified Payments Interface (UPI)
UPI is a payments platform run by the National Payments Corporation of India (NPCI), a private grouping of financial institutions backed by the Reserve Bank of India. The NPCI allows third-party providers to make UPI based payment apps, which facilitate money transfers between banks. By promoting the use of QR codes instead of manually entering account identifiers, UPI has made digital payments convenient enough that has become widely popular in parts of the country.
You can make a UPI payment using one of the following identifiers:
- A UPI ID of the form `username@provider`
- A UPI number which can be either the 10-digit mobile number linked to your bank, or any unique 8- or 9-digit number of your choosing
- Your account number and IFSC code (usually the most cumbersome if you want to make a quick payment at a store)
Most UPI apps are proprietary and run a mandatory set of core SDK code provided by the NPCI. However, there are other ways to interact with the system as well, including NUUP, LibreFin, and 123Pay.
National Unified USSD Platform (NUUP, also known an *99#)
Main article: NUUP
NUUP is a service by the NCPI that allows you to make UPI transactions on any 2G capable phone, by dialling *99# from the number linked to your bank account.
While NUUP is theoretically supposed to work on all USSD supporting carriers in India (all the provider apart from Jio), the service is not very well maintained and keeps going down, or, in some cases, doesn't work at all. Specifically, it has never been observed to work with BSNL, is often down with Airtel, and works reasonably well with Vi but with a bug preventing one from entering new UPI IDs (so one has to always pay using a phone number)
123PAY
123PAY[1] is a service similar to NUUP, but where you dial a phone number and interact through IVRS (Interactive Voice Responder Service) instead of through a USSD menu. Some banks provide their own bank-specific numbers for a similar service.
LibreFin
The LibreFin project (under construction) aims to create a Free Software UPI app using reverse-engineered APIs. It is expected to be demoed at the IndiaFOSS 2025 conference in Bengaluru[2].
Immediate Payment Service (IMPS)
An alternative to UPI is to use IMPS with phone number beneficiary. IMPS is actually the base layer on which UPI is built, and can be accessed in a platform-independent manner through Net Banking. Due to this, people who have activated UPI on their bank account would have automatically activated IMPS as well.
IMPS used to require a full bank account number and IFSC code to make a transfer. However, in February 2024 [3], they added the option to pay using a phone number and bank name instead. This makes it more suitable for quick payments as people are more likely to remember their phone number than their account number (let alone IFSC code!). Now, if we know someone's phone number and their bank name, we can transfer using IMPS over Net Banking.
It appears that not all Net Banking interfaces support the "phone number + bank name" option, possibly because the option is relatively new and banks may not have got around to upgrading their Net Banking interfaces yet. Additionally, some banks require adding a beneficiary first and waiting for four hours to be added, or have additional restrictions for IMPS Net Banking that are not present when using IMPS via their proprietary mobile app.
Supported banks
Banks where instant payment using phone number + bank name is known to be working through Net Banking:
- Federal Bank
- Bank of Baroda
- Indian Bank - they have both normal IMPS where you wait to add beneficiary, and "IMPS 24x7 - without adding beneficiary" that works instantly
Unsupported banks
Banks where instant payments using phone number + bank name is not possible through Net Banking:
- ICICI Bank - they still ask for MMID in addition to phone number.
- HDFC
- State Bank of India (SBI)
- City Union Bank (CUB) - they present a large form with lots of details. Specifically, IFSC code and account number seems to be mandatory (mobile number field also there, along with email, but there was no option to enter just the bank name)