Fun Fact: UPI also allows certain other interesting kinds of transactions based on "special VPAs". These include:
- IFSC code and account number combination, resolved directly by NPCI, is
represented as account-no@ifsc-code.ifsc.npci (e.g. 12345@HDFC0000001.ifsc.npci)
- RuPay card number, resolved directly by NPCI, is represented as card-no@rupay.npci
(e.g. 1234123412341234@rupay.npci)
The following were proposed, but didn't take off
- Aadhaar number, resolved directly by NPCI using existing Aadhaar to bank mapper,
is represented as aadhaar-no@aadhaar.npci (e.g. 234567890123@aadhaar.npci)
- Mobile number, resolved directly by NPCI using proposed mobile to account
mapper, is represented as mobile-no@mobile.npci (e.g. 9800011111@mobile.npci). Instead of this, many PSPs (PhonePe/BHIM most notably) ended up using mobilenumber@psp by default because of the usability benefit, and this "centralized mobile mapper" was never built afaik.
The following are implemented at some banks:
- When bank itself is the PSP, any account identifier, resolved directly by bank as the
PSP, is represented as account-id@bank-psp-code (e.g. 12345678@icici)
- A one time or time/amount limited tokens issued by a PSP, resolved directly by that
PSP, is represented as token@psp-code (e.g. ot123456@mypsp)
PPIs (Prepaid Payment Instrument - wallets in India) were added to the UPI system quite late, but there's very few who've actually started working. This was also in the original plan:
- A PPI provider issued card number, resolved directly by PPI provider, is represented
as ppi-card-no@ppi-psp-code (e.g. 000012346789@myppi)
There's also some credit card providers that let you pay off your card by using a special VPA (cardnumber@card-issuer). See https://www.wishfin.com/credit-card-payment/how-to-pay-credi... for a list of supported issuers. Unfortunately, this makes compliance a huge hassle because every one must treat VPAs as hazardous (because they can now contain complete card numbers).
> Mobile number, resolved directly by NPCI using proposed mobile to account mapper, is represented as mobile-no@mobile.npci (e.g. 9800011111@mobile.npci). Instead of this, many PSPs (PhonePe/BHIM most notably) ended up using mobilenumber@psp by default because of the usability benefit, and this "centralized mobile mapper" was never built afaik.
There’s been a recent development on this front: interoperable mobile number payments are coming to UPI in the next few months. The special VPA format for it is mobile-no@mapper.npci.
- IFSC code and account number combination, resolved directly by NPCI, is represented as account-no@ifsc-code.ifsc.npci (e.g. 12345@HDFC0000001.ifsc.npci)
- RuPay card number, resolved directly by NPCI, is represented as card-no@rupay.npci (e.g. 1234123412341234@rupay.npci)
The following were proposed, but didn't take off
- Aadhaar number, resolved directly by NPCI using existing Aadhaar to bank mapper, is represented as aadhaar-no@aadhaar.npci (e.g. 234567890123@aadhaar.npci)
- Mobile number, resolved directly by NPCI using proposed mobile to account mapper, is represented as mobile-no@mobile.npci (e.g. 9800011111@mobile.npci). Instead of this, many PSPs (PhonePe/BHIM most notably) ended up using mobilenumber@psp by default because of the usability benefit, and this "centralized mobile mapper" was never built afaik.
The following are implemented at some banks:
- When bank itself is the PSP, any account identifier, resolved directly by bank as the PSP, is represented as account-id@bank-psp-code (e.g. 12345678@icici)
- A one time or time/amount limited tokens issued by a PSP, resolved directly by that PSP, is represented as token@psp-code (e.g. ot123456@mypsp)
PPIs (Prepaid Payment Instrument - wallets in India) were added to the UPI system quite late, but there's very few who've actually started working. This was also in the original plan:
- A PPI provider issued card number, resolved directly by PPI provider, is represented as ppi-card-no@ppi-psp-code (e.g. 000012346789@myppi)
There's also some credit card providers that let you pay off your card by using a special VPA (cardnumber@card-issuer). See https://www.wishfin.com/credit-card-payment/how-to-pay-credi... for a list of supported issuers. Unfortunately, this makes compliance a huge hassle because every one must treat VPAs as hazardous (because they can now contain complete card numbers).
Scroll to page 20 for the complete list: https://www.mygov.in/digidhan/pages/pdf/sbi/NPCI%20Unified%2...