How does India’s π”ππˆ (Unified Payments Interface) work?

UPI has gone through 𝐞𝐱𝐩π₯𝐨𝐬𝐒𝐯𝐞 𝐚𝐝𝐨𝐩𝐭𝐒𝐨𝐧 since its inception in 2016. It builds a digital payments ecosystem with payment apps, banks, and NPCI (National Payments Corporation of India). 

It now takes up 60% of digital retail transactions in India. 

It is estimated that the digital payments market in India will grow by 3 times in 2026.

So, What exactly is UPI?

UPI is a payment markup language and a standard for interoperable payments in India.

To make the process of transacting money simple, UPI introduced the concept of human friendly unique IDs called UPI Virtual Payment Addresses (or VPAs). The VPAs are usually of the form <unique_identifier>@<address_provider>.

The UPI VPAs are similar to email addresses. They are interoperable. A gmail user can send an email to a yahoo user.

Some simple examples UPI VPAs are alice@ybl and bob@axis. Here, ybl and axis are two banks that provide virtual payment addresses. And, alice and bob are the unique identifiers in respective address providers.

Just like how domains get resolved to IP addresses, every VPA needs to be linked to a bank account. The UPI handles get resolved to bank accounts and IFSC during the payment

The Actors

The Banks

Banks hold your money. UPI works directly with the bank accounts, unlike Paytm, Venmo, or CashApp. The bank account will be debited from or credited to whenever you send money or receive money.

The banks that hold your money are also called Issuing Banks.

The Payment Apps

Payment Apps are consumer-centric products that can be used to link a bank account and transact in the real world. Some major apps are Google Pay, PhonePe, BHIM, etc. Almost all the banks have their own versions of UPI Apps. There is a wide variety of options to choose from.

Payment Apps allow users to create handles to make everyday transactions easier. However, not everyone can start creating UPI handles. Reserve Bank of India (RBI) regulates who can create UPI handles. Currently, only the member banks of the UPI ecosystem are allowed to do so.

That’s why all the payment apps will have to tie up with banks. These banks not only allow payment apps to create and manage UPI handles for their users, but they are also the interface to the UPI ecosystem.

These banks are called Acquiring Banks.

Google Pay has tied up with HDFC Bank, Axis Bank, and SBI. PhonePe has a tie-up with Yes Bank and ICICI Bank.

Banks provide separate APIs to allow payment apps to create and manage the UPI handles.


National Payments Corporation of India (NPCI) is a non-profit set up by the Government of India to facilitate digital payments. They facilitate many payment schemes (like IMPS, BBPS, FASTag, etc.)

If we reflect back on the original objective of UPI, it was to build an interoperable system. An interoperable means anyone could download a payment app, link any bank (that they own), and transact with anyone else from any other bank.

The UPI creators made NPCI as the trusted switch and they standardized the protocol. NPCI makes sure that data flow between banks and payment apps are routed to the correct and verified destinations.

The end result, the payment apps, and banks talk just to NPCI and can be assured by NPCI that they are really interacting with who they intend to.


Apart from being the trusted router, NPCI also hosts non-financial meta APIs to serve everyone in the ecosystem.

Some examples of meta API areΒ listAccountProviders (returns all details of all banks), validateAddress (helps in validating VPAs), requestOtp (for 2FA), etc.

We will now see how these actors work together for the registration and account linking process

And how the flow of a transaction works

Hope this helped you understand what goes on behind the scenes when you are transferring money to your friend in a matter of seconds! πŸ™‚

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: