codema.in

UPI Payments

G Guido Sun 15 Dec 2024 12:54PM Public Seen by 6

Is UPI payment support (https://en.wikipedia.org/wiki/Unified_Payments_Interface) a show stopper for broad use of Phosh / LinuxMobile in India? I've heard people saying so while it seems others are doing just fine without it? Are any solutions or workarounds known to get this going?

BS

Badri Sunderarajan Wed 18 Dec 2024 11:53AM

There's a USSD based service that lets you make payments and do other basic things by dialing `*99#`. However it's more cumbersome and the service is not well maintained, meaning it frequently goes down.

Makers of UPI apps are usually supposed to register with the NPCI (National Payments Corporation of India) and use their proprietary SDK. I think there's also a requirement to be affiliated to some bank, but not sure of the details. The SDK is presumably for Android and iOS, but Jio has somehow got UPI working on KaiOS devices (unfortunately only the ones branded by them) so we know other platforms are possible.

The "good" news is that UPI apps tend tro be very strict and don't work on LineageOS devices either. So we are not alone in wanting a solution 🙃️

As an interim solution, perhaps a USSD-based client could be written that streamlines some of the process. For example, many UPI payments are made by scanning a (often static) QR code. With the current USSD-based setup, this involves scanning the QR code as text, then manually copying the relevant part (the UPI ID), navigating through USSD to the payments section, and pasting the copied information (the UPI ID) into the appropriate place.

I think even a "scan QR code and copy the extracted UPI ID to the clipboard" script would help streamline the process. If we have an app that can navigate the USSD menus too (along with "try again" as it often fails requiring several retries to get it right) that'd be even better.

The social problem with using the USSD-based approach is that it takes more time than people expect, so this helps to quicken that. Of course, slow UPI sometimes incentivises people to open up and accept more cash payments instead!

I'm running a Poco F1 which doesn't even have complete camera drivers yet so I'm a bit far from the UPI stage 🫠️ but I'd be happy to help draft any solutions to help with this.

BS

Badri Sunderarajan Wed 18 Dec 2024 12:02PM

I realised I forgot to answer the social side. Others feel free to correct/detail, but I think some cities expect UPI payments all the time, to the extent of not giving change for cash (in my personal experience, Bangalore is one of the worst in this regard). On the other hand, many other cities are as open to cash as they always were. So it depends a lot on where you are (or if you travel around a lot)

Card payments are also an option, but not everywhere.

Another thing to consider is that cash payments are anonymous, whereas UPI (and cards) open you up to surveillance by the government and other agencies. I don't think the general population is very concerned about this, but many in Free Software circles tend to be, which means they may not be interested in using UPI even if they could 🙃️

I'm not sure of the actual stats though (how many actually don't have UPI at all vs. those who keep it around as a backup, etc.)

PP

Pirate Praveen Mon 13 Jan 2025 6:17PM

I don't have UPI, but I depend on others in some situations. I can receive payments via UPI (this option is no longer provided by any bank), so in extreme situations I ask them to pay me the balance after giving a bigger note, if they don't have change. But I'm an exception and for wider adoption of GNU/Linux Mobile, I think we have to get UPI working. As suggested by @Badri Sunderarajan even automating USSD based option would go a long way. There is now a voice based option (IVR)as well (but only limited number of banks support this). You call a number and speak, but this is limited to phone number based payments (not QR scanning). https://www.npci.org.in/what-we-do/upi-123pay/product-overview

They also mention an app based approach for feature phones there, which could be an option for phone manufacturers (Furilabs, Purism or Pinelabs could try this route).

PP

Pirate Praveen Thu 1 Jan 2026 8:15AM

I recently started using *99# ussd based payments. It is still very limited option as it works only on Airtel, with some banks and in some cities as documented in https://wiki.fsci.in/NUUP For me, Federal Bank and my city Mumbai works. Default camera app on Librem 5 (PureOS Crimson) can read QR codes, but we still need to manually extract the UPI id from URL to paste into ussd prompt. Ability to copy the upi id would simplify the process further (https://source.puri.sm/Librem5/millipixels/-/issues/98)I recently started using *99# ussd based payments. It is still very limited option as it works only on Airtel, with some banks and in some cities as documented in https://wiki.fsci.in/NUUP For me, Federal Bank and my city Mumbai works. Default camera app on Librem 5 (PureOS Crimson) can read QR codes, but we still need to manually extract the UPI id from URL to paste into ussd prompt. Ability to copy the upi id would simplify the process further (https://source.puri.sm/Librem5/millipixels/-/issues/98)

On FLX1 I have Vi + ICICI combination, which offers only very limited functionality - only pay by phone number as UPI id fails with an error. FuriOS camera app don't work with UPI QR (but other QR codes works, possibly due to upi:// in URL) so I have to use android QR apps (https://github.com/FuriLabs/furios-camera/issues/22).

Collect requests will also work for business accounts - a business can request money and we can accept the request by diasling *99#.

Additionally if camera app itself could add a pay button when detecting a upi:// url and then dial 991*3# (short cut for send money -> upi id choices) and fill the UPI id, so we can emulate the scan and pay - then people will only have to enter pin manually!

GNOME calls should accept a way to enter values directly in USSD screen. With these two tweaks we can fill the missing UPI app gap to a large extend in places where *99# works already.

PP

Pirate Praveen Thu 1 Jan 2026 2:02PM

We can write an app that scans the QR code, extracts what it needs from it, and does the dialing for the user. You could also register the mime type so that a upi:// url opens the app. To avoid duplication, both camera and USSD apps should expose an API that the UPI app could use.

PP

Pirate Praveen Tue 6 Jan 2026 8:15AM

Noticed another annoyance which unnecessarily adds many key strokes to paste upi id (Switch to full keyboard > terminal layout > Press Control V) as touch based paste menu is missing. https://gitlab.gnome.org/GNOME/calls/-/issues/736

G

Guido Tue 6 Jan 2026 9:20AM

@Pirate Praveen Just use the keyboards paste button

PP

Pirate Praveen Tue 6 Jan 2026 10:09AM

@Guido as discussed in the issue, it adds two more key strokes and less intuitive. in text box, long press and paste is more intuitive from android experience.

G

Guido Tue 6 Jan 2026 10:34AM

@Pirate Praveen please don't say intuitive and Android ☺️, it's really hard to discover, buttons are better and there's enough horizontal space.

PP

Pirate Praveen Wed 7 Jan 2026 4:42PM

@Guido then may be just "familiar", many apps do this already - firefox, gnome contacts etc, but it is kind of inconsistent as some apps don't have a long press pop up menu - for example dino - so I have to really go out of the way to copy - paste, select text -> manually pop out the keyboard by long pressing -> switch to terminal layout -> control + C. I think a copy icon next to paste would also help make the experience more consistent. I often have to copy text from Dino and it is really painful.

Load More