NCMC design and technical limitations
I was in Mumbai a few months ago for the Equinix India Peering forum. The event happened to be very near the airport & I found that the airport, conference venue, hotel, and a few other locations I was visiting were all near the newly built Mumbai Line 3 (Aqua Line). To save on hassle with regular tickets, I went for an NCMC (National Common Mobility Card). Most people travelling in the Delhi metro would be aware of it by now, thanks to a bit of marketing push inside the metro train with announcements. Mumbai line 3 has a tie-up with SBI for the card, and thus, I got the SBI card. Ended up using it in Mumbai, Delhi and Chennai over the last few months.
Lately, I have been reading about way NCMC works, the limitations of the Indian NCMC design compared to other mass transit systems. In many countries, mass transit systems simply use MasterCard/Visa/Apple Pay tap and charge directly from the respective card (credit/debit card, etc.), like the London tube, Stockholm metro, HK airport express, Singapore, etc. Indian deployment is bit different.
Indian NCMC offline wallet concept
The whole idea of NCMC is to have a single card which can make payment for public transport, including metro, buses etc across the country digitally. It has to be fast and reliable, and this is where the whole tech differs from systems like UPI or Visa/MasterCard/Rupay POS payments. In case of UPI as well as credit/debit card payments on POS machines - entire transaction runs online. Money goes from the person paying the amount to the receiver as part of a settlement facilitated by NPCI. I don’t need to go in detailed steps involved there, but the key idea is that there’s an active involvement of 1) Payer’s APP 2) Payer’s bank 3) Receiver’s PSP 4) Receiver’s bank 5) NPCI UPI switch, etc. All these have to work and most important - internet has to work. 😀
All this largely works well for casual payments across the vendors, but not for transit payments, especially at metro stations. It easily takes 2-3 seconds in best case scenario for these online payments, which can result in a massive queue at the metro station gate, besides the risk of it not working at all if “the internet goes down” or the app freezes and whatnot. To deal with these issues, most of the mass transit systems work in hybrid mode, where the money is collected locally offline, and details of such transactions are uploaded in bulk transactions (which, if delayed, do not cause any major issue). A regular Delhi (or any other) metro card follows that. When money is added to the card, it is literally added to the card via an NFC operation with cryptography in place. One can add money to that card online but it won’t reflect unless a sync operation is performed at the metro station where online balance is literally written to the card. While there is of course UPI support where tickets can be bought online using UPI & processed by the gate via QR code but anyone who has used that would know it’s very slow. There has been some development at the UPI front with UPI Lite X supporting local on-device wallet with the option of offline transaction, but yet to see it in action. NCMC is much ahead compared to UPI Lite X for now.
NPCI seems to have taken these same concepts of offline wallet into a rupay card. So one can have a prepaid/debit/credit Rupay card from any (supported) bank and can request the creation of a “service area” in the card, and then an offline wallet balance can be stored in that service area. So while this ensures there remains a single card for transit across India (which I personally find very useful) but it’s not a simple “you can use your Rupay card to tap and pay” concept that exists in some countries, etc. To pay for transit, existing debit/credit card one must have support on the card itself, the bank, metro station (to create a service area). That’s quite a lot of moving parts and feels a bit fragile. Adding insulting to injury - NCMC is often markted as card which can pay outside of transit systems as well on the POS machines. Credit/Debit could anyway do that but this projection is often made for the prepaid cards & all this adds to chaos KYC & extra steps.
Direct use of Visa/MasterCard/Apple Pay
While the Indian system doesn’t support Visa/MasterCard/Apple Pay for transit payments and rightfully so as the early days of Russia-Ukriane conflict have taught us, with Visa/Mastercard suspending their operations in Russia, besides the high MDR rates. But concept-wise, these implementation are interesting. No special service account, no special permissions - just directly tap the card & go. And ofcourse they are not processing these payments in real time either (same latency/uptime/performance challenge). What they do instead is that their system records each tap, and at the end of the day they do a batch settlement with the card issuer. The fun part implementation comes in how they detect fraud. Imagine someone tapping a debit card with no balance in a bank account or a credit card with no credit limit - they would let such a card pass initially, but once the system detects it during the batch settlement, they will simply block it and upload the blocked card data in batch operation across all terminals. Thus frauds can happen, but is largely contained. Unsure why NPCI didn’t go for a similar design with Rupay cards.
NCMC is the default new card
Due to the “service account creation” process, use of Rupay debit/credit didn’t really picked up at metro stations, but prepaid NCMC with pre-created service area has become de-facto for the newly issued cards. Logically, that makes sense as that removes the metro operator from payment handling & puts an RBI authorized full fledged bank or payments bank to deal with the balance money. Delhi Metro went with Paytm initially and later moved to Airtel NCMC as RBI imposed restrictions on Paytm. Mumbai metro went for SBI, and many state transport systems did their own partership for issuing these cards.
Offline balance limitations
Since these NCMCs are holding an offline balance, there are some interesting and weird limitations in the way they work.
- Similar to older non-NCMC metro cards, these can be recharged online but a “sync” operation has to be performed either by metro station staff or newly installed machines or with the limited support in the Android app (Apple’s NFC is still closed & yet not supported). This adds a bottleneck at busy stations.
- If a card is lost, the bank either cannot refund the balance at all or can only do so after the card actually expires. This is because the card has an offline balance & there’s no way for the bank to claim & credit it back unless the card cryptographically expires.
- For a credit/debit card, this is an entirely different account unrelated to their primary “online” balance. Money can be moved from an online balance to an offline balance, but again would require a sync operation by an NFC terminal.
- The apps/websites connected to an NCMC gets updated with a delay of days as the payments are processed.
- While the app/websites take time to update, card themselves hold recent transactions locally. I noticed this when I paid via NCMC in Chennai for a bus to the airport, that same transaction was visible at the DMRC terminal in Delhi metro, but not one the bank portal for the next few days.
This talk from Sandesh Kunder (NCPI) at Global Fintech Fest 23 covers the concept as well as ideas from NPCI’s point of view.
Fragile system
While there is a conceptual idea of full compatibility across NCMC - cards, terminals, etc., it’s not smooth. E.g initially I got “ECH_0007” error on DMRC terminals when doing a sync operation on the Mumbai metro-issued SBI card. It’s hard to know what went wrong since so many people were involved. Thus I could not move “online balance” which I paid via an UPI app to the card’s offline balance.

I think at some point, NPCI will ditch this overly complicated system and will bring NCMC version 2 with a direct charge option for the Rupay card. That, along with a mix of tech like UPI Lite X with NFC, will act as a reliable, fast option for transit payments. Remember there are over 600 million rupay debit cards alone. Making them directly compatible while keeping single “online” balance which can be settled in batch operations.