1 points par GN⁺ 3 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Entre le scan du QR code et la notification de confirmation, il ne se passe que 2 à 3 secondes, mais en arrière-plan, des acteurs distincts — l’app, la banque sponsor PSP, le switch central de la NPCI, ainsi que la banque émettrice et la banque bénéficiaire — se relaient requêtes et réponses
  • Des apps comme PhonePe ou Google Pay ne font que recueillir l’intention de paiement et ne manipulent ni l’argent ni le PIN directement ; c’est la banque sponsor PSP qui se charge de l’émission de l’adresse UPI et de la connexion à la NPCI
  • Le switch de la NPCI ne demande le crédit à la banque bénéficiaire qu’après vérification du PIN, du solde et du débit par la banque émettrice ; le résultat du traitement revient ensuite à l’app en repassant par les banques sponsor des deux côtés
  • En juin 2026, l’UPI a traité plus de 2 272 crore de transactions ; récemment, environ 1 paiement sur 11 est rejeté, mais les échecs techniques du système lui-même représentent moins de 1 cas sur 400, la plupart des rejets provenant d’un PIN erroné, d’un solde insuffisant ou d’un dépassement de plafond
  • Les transactions deemed où la confirmation du crédit tarde après le débit sont résolues via une consultation d’état et un rapprochement automatique par la NPCI, pour aboutir soit à une confirmation du crédit, soit à une annulation du débit ; en cas de retard du remboursement, des délais réglementaires et une pénalité bancaire de ₹100 par jour s’appliquent

Les cinq moments visibles pour l’utilisateur

  • L’expérience d’un paiement UPI se compose de cinq moments : scan du QR code, vérification du nom du bénéficiaire et du montant, saisie du PIN, affichage du paiement réussi, puis notification de réception chez l’autre partie
  • L’ensemble se termine généralement en 2 à 3 secondes, mais entre la saisie du PIN et l’affichage du résultat, plusieurs organisations effectuent chacune les contrôles nécessaires avant de transmettre le résultat au maillon suivant
  • L’application mobile n’est que le premier point d’accès au réseau de paiement et ne manipule pas directement l’argent de l’utilisateur
  • En juin 2026, l’UPI a traité plus de 2 272 crore de paiements, soit davantage de transactions que n’importe quel autre système de paiement en temps réel dans le monde
  • Un seul paiement mobilise l’app de l’utilisateur, son PSP, la banque émettrice, la NPCI, la banque bénéficiaire, le PSP du bénéficiaire et l’app du bénéficiaire ; côté réception, l’architecture reflète symétriquement le côté émission

L’app ne recueille que l’intention de paiement

  • Des apps comme PhonePe, Google Pay ou Paytm agissent comme fournisseurs d’applications tiers (TPAP) : elles recueillent le destinataire et le montant, affichent le bénéficiaire et reçoivent le PIN via un clavier sécurisé
    • l’app ne peut pas voir le PIN
    • elle ne détient pas les fonds de l’utilisateur
    • elle ne possède pas de licence bancaire
  • La concurrence côté utilisateur dans l’UPI se concentre sur la couche applicative, mais le marché est très déséquilibré
    • PhonePe et Google Pay traitent à elles deux environ quatre cinquièmes de l’ensemble des paiements UPI
    • si leur domination dure depuis plusieurs années, le classement des apps derrière elles continue de changer
  • Lancée en 2024 par Flipkart, super.money a attiré les utilisateurs avec un cashback garanti et est passée d’au-delà du top 50 au top 5 en environ un an
  • Comme les apps n’ont ni licence bancaire ni connexion directe au réseau de paiement, elles doivent nécessairement s’appuyer sur une banque sponsor

Les banques sponsor PSP et les adresses UPI

  • Le rôle de licence et de connexion au réseau de paiement pour l’app est assuré par la banque sponsor, c’est-à-dire le prestataire de services de paiement (PSP)
    • elle se connecte au système central
    • elle émet l’adresse UPI qui représente l’utilisateur
    • elle relie le téléphone mobile et le compte bancaire lors de la configuration initiale de l’UPI
  • Dans un identifiant UPI, le suffixe après @ ne désigne pas l’app utilisée mais la banque sponsor
    • @ybl appartient à Yes Bank
    • @okaxis appartient à Axis
    • les handles PhonePe sont exploités par Yes Bank, Axis et ICICI
    • les handles Google Pay sont exploités par Axis, HDFC, ICICI et State Bank
  • La plupart des grandes apps s’appuient sur plusieurs banques sponsor plutôt que sur une seule
    • cela améliore la résilience afin qu’une panne dans une banque n’arrête pas toute l’app
    • cela évite aussi qu’un seul sponsor doive absorber l’ensemble du volume de transactions de l’app
  • Si l’émetteur et le bénéficiaire relèvent du même sponsor, cette banque peut vérifier les deux adresses dans ses propres registres et éviter de passer par le répertoire central
    • le traitement est plus rapide
    • cela économise environ 1 paisa de frais de vérification d’adresse
  • Ce qui sort du téléphone n’est pas de l’argent, mais une requête construite par l’app et signée par la banque sponsor
    • avant le paiement, cela permet de confirmer le vrai nom du propriétaire de l’adresse scannée et de détecter un mauvais bénéficiaire
    • le PIN est capturé et chiffré par un composant commun certifié du téléphone, et l’app n’en connaît pas le contenu, même pendant sa transmission
    • dans la bibliothèque commune de l’API UPI de la NPCI, le PIN est transmis comme Creds type="MPIN"

L’ordre de traitement dans le switch central de la NPCI

  • Tous les paiements UPI convergent vers un unique switch central géré par la NPCI, un organisme d’exploitation à but non lucratif
  • Le switch envoie d’abord la requête à la banque sponsor qui gère l’adresse UPI du bénéficiaire, laquelle traduit alors le handle en compte réel
  • L’ordre du mouvement des fonds est fixe
    1. la NPCI demande le débit à la banque émettrice
    2. seule la banque émettrice peut déchiffrer le PIN chiffré venant du téléphone, et c’est donc à cette étape qu’elle le vérifie
    3. la banque émettrice vérifie le solde, débite l’argent, puis renvoie le résultat
    4. ce n’est qu’après confirmation du débit que la NPCI demande le crédit à la banque bénéficiaire
    5. elle attend ensuite la confirmation du crédit par la banque bénéficiaire
  • L’argent est toujours d’abord débité puis crédité, jamais dans l’ordre inverse
  • Le résultat n’est pas transmis directement de la NPCI à l’app, mais via les PSP des deux côtés
    • quand le PSP de l’émetteur transmet le succès à l’app, l’indicateur de confirmation vert s’affiche
    • quand le PSP du bénéficiaire transmet le résultat à l’app de l’autre partie, la notification de réception apparaît
  • Il n’existe qu’un seul switch central ; il y a donc très peu de données comparatives publiques sur son fonctionnement interne, mais son échelle apparaît dans les volumes traités
    • depuis son lancement en 2016, l’UPI est passé de quelques millions de transactions mensuelles à 2 272 crore en juin 2026

Pourquoi les classements diffèrent entre banque émettrice et banque bénéficiaire

  • Le classement des banques les plus sollicitées côté émission diffère de celui observé côté réception
  • Côté émission, le classement ressemble à la répartition du nombre de clients
    • State Bank of India arrive largement en tête
    • d’autres grandes banques grand public suivent derrière
  • Côté réception, Yes Bank devance nettement les autres banques
    • sa part côté réception a approximativement doublé en deux ans
    • elle émet peu, mais reçoit le plus de volume
  • Cette différence est liée à l’évolution de l’UPI, devenu davantage un outil de paiement de particuliers vers des commerçants que de paiements entre particuliers
    • la part des paiements commerçants a dépassé celle des paiements entre particuliers en 2022
    • en nombre de transactions, ce basculement s’est produit en août 2022
  • Les QR codes UPI des commerçants sont eux aussi émis par des banques sponsor, comme les handles personnels, et le sponsor de la plupart des grandes apps marchandes est Yes Bank
  • Quand on scanne un QR PhonePe en magasin, le crédit arrive d’abord chez Yes Bank, sponsor derrière le QR, puis est reversé au commerçant depuis le compte mutualisé de l’app marchande
  • Ici, beneficiary bank ne désigne pas la banque personnelle du commerçant, mais la banque qui sponsorise le QR

Les deux raisons pour lesquelles un paiement est rejeté

  • L’UPI distingue dans ses registres les paiements échoués entre rejets métier et rejets techniques
  • Les rejets métier proviennent de l’utilisateur ou des règles de paiement
    • PIN erroné
    • solde insuffisant
    • dépassement du plafond quotidien
    • l’app affiche immédiatement la raison précise, ce qui permet à l’utilisateur d’identifier la cause
  • Les rejets techniques surviennent lorsque le système bancaire ou une étape de traitement du switch central ne parvient pas à se terminer
    • Bank server down
    • your bank’s server didn’t respond, please try again
    • sur l’écran de l’utilisateur, il est difficile de savoir plus précisément ce qui a échoué au-delà d’une absence de réponse serveur
  • Récemment, environ 1 paiement sur 11 a été rejeté, mais les échecs techniques du réseau lui-même représentent moins de 1 sur 400
  • Le taux de rejets techniques a diminué chaque année, passant de plus de 1 sur 100 à moins de 1 sur 400 à mesure que les banques et le switch se stabilisaient
  • Le taux de rejets métier, lui, ne baisse pas et augmente même, de sorte que les échecs courants relèvent davantage de l’application des règles de PIN, de solde ou de plafond que d’une panne du système
  • Il est déjà arrivé que l’UPI connaisse des interruptions nationales de plusieurs heures, mais cela reste rare ; au quotidien, les causes principales d’échec sont le dépassement de plafond, le manque de solde ou un chiffre mal saisi

Les transactions deemed, ni confirmées comme réussies ni comme échouées

  • Si l’argent est débité du compte émetteur mais que la confirmation de la banque bénéficiaire n’arrive pas à temps, le réseau ne peut pas déterminer immédiatement si le crédit a eu lieu
    • le crédit a peut-être bien été effectué, mais la banque bénéficiaire n’a pas pu en signaler le résultat
    • il est aussi possible que le crédit lui-même n’ait pas eu lieu
  • Une transaction dont le crédit ne peut pas être confirmé est dite en état deemed, et l’app affiche alors un paiement en cours de traitement au lieu de l’indicateur vert de confirmation
  • L’app ne devine pas le résultat et peut interroger le réseau sur l’état réel environ 90 secondes plus tard
    • le nombre de consultations est limité
    • il est déjà arrivé que des apps provoquent des perturbations UPI en envoyant trop de demandes de consultation d’état
    • l’app effectue cette consultation même sans action directe de l’utilisateur
  • La NPCI continue elle aussi d’interroger les deux banques et rapproche automatiquement la transaction
    • si le crédit a eu lieu, elle confirme le paiement
    • sinon, elle annule le débit et rembourse l’argent
  • Le moment du remboursement n’est pas laissé à la discrétion de la banque
    • un virement ordinaire doit être remboursé dans la journée
    • un paiement commerçant doit être remboursé sous quelques jours
    • au-delà du délai, la banque encourt une pénalité de ₹100 par jour
  • Même si l’UPI ne peut pas confirmer instantanément tous les paiements, il est conçu pour qu’un rapprochement a posteriori permette soit de confirmer le crédit, soit de rendre l’argent à l’utilisateur
  • Ces transactions en attente étaient déjà peu fréquentes, et le dispositif de rapprochement qui les traite continue de se renforcer

Le relais caché du paiement

  • Entre le scan, le nom et le montant, le PIN, l’affichage de confirmation et la notification de réception, il existe un relais app → sponsor → hub NPCI → banque
  • Derrière un seul paiement, 7 entreprises et banques échangent des messages aller-retour tout en effectuant les contrôles nécessaires à chaque étape
  • Même en cas d’échec, les consultations d’état, le rapprochement automatique, les délais de remboursement et les pénalités de retard garantissent que les fonds de l’utilisateur aboutissent soit à un crédit confirmé, soit à un remboursement

1 commentaires

 
GN⁺ 3 시간 전
Avis sur Hacker News
  • Pour ceux qui vivent hors d’Inde ou n’utilisent pas souvent UPI, il est difficile de se rendre compte de l’ampleur des transactions. Il sert à presque tous les paiements, des virements entre proches aux petits achats comme des biscuits ou du thé, en passant par toutes sortes de services comme la réparation automobile ou la plomberie, le shopping en ligne, ainsi que le bus, l’avion, le tram, le taxi et le train
    On peut scanner le code QR UPI d’une web app avec son téléphone ou ouvrir directement l’écran de paiement UPI depuis une application mobile. Dans une ville comme Kolkata, mon épouse et moi effectuons 20 à 30 paiements par jour, et même dans un petit village de l’Himalaya, on en fait environ 6 à 8 par jour

    • Le principe qui consiste à utiliser des codes à usage unique au lieu d’identifiants permanents est fortement sous-estimé dans le monde anglophone. Il est bien plus sûr de transmettre un OTP pour une transaction unique, à approuver dans l’application, que de confier une carte de crédit à un enfant, un ami, son conjoint ou un subordonné
      Le Blik polonais utilise un code à 6 chiffres, ce qui permet par exemple de dicter le code par téléphone à une personne de confiance se trouvant à un distributeur
    • Ce n’est qu’après avoir ajouté le paiement UPI à un petit micro-SaaS que nous avons commencé à générer du chiffre d’affaires en Inde. Avant cela, il était presque impossible d’obtenir des inscriptions d’utilisateurs indiens
    • Y a-t-il un plan prévu au cas où le gouvernement interpréterait de petits paiements comme une activité terroriste et gèlerait des comptes bancaires ? Le rythme varie selon les pays, mais j’ai l’impression qu’après ce genre d’épisodes, on finit toujours par revenir au cash
  • J’ai un profond respect pour ceux qui font fonctionner UPI. Avoir fait basculer complètement jusqu’aux personnes âgées en Inde vers le paiement numérique est une réussite sans précédent à l’échelle mondiale

    • Le PIX brésilien et Swish en Suède ont eu un effet similaire, et il existe probablement beaucoup d’autres précédents
    • Cela a été possible parce que l’Inde ne disposait pas d’un grand réseau de paiement par carte de crédit. Le pays est en quelque sorte passé directement du cash au numérique
  • UPI fonctionne, certes, mais c’est un système terrible du point de vue de la protection de la vie privée et de l’autonomie. Il y a trop d’intermédiaires, il faut un numéro de téléphone, et tout est lié à l’identité personnelle, si bien qu’il est difficile d’appeler cela un système de paiement entre particuliers, quel que soit le sens donné au terme
    La seule différence est qu’au lieu d’être contrôlé par Visa ou Mastercard, c’est le gouvernement qui le contrôle

    • Visa et Mastercard fournissent eux aussi des informations de transaction au gouvernement américain, entre autres. Via Hot Watch, le gouvernement américain surveille certaines cibles en temps réel, et le Bank Secrecy Act oblige légalement les réseaux de paiement privés et les banques émettrices de cartes à agir comme des agents non rémunérés de l’État
      On pourrait même dire qu’avec UPI, le nombre de gouvernements avec lesquels les informations sont partagées est plus faible
    • En fin de compte, la monnaie elle-même est sous le contrôle du gouvernement
  • Le PIX brésilien ressemble énormément à UPI. Y a-t-il une raison qui empêcherait de créer un système UPI mondial en open source, avec chaque gouvernement exploitant sa propre instance ?

  • Peut-on analyser en chiffres l’impact d’UPI sur la croissance de l’Inde ? Il semble probable qu’il contribue aussi à faire entrer une partie de l’économie informelle dans le cadre formel

  • Avec 22 milliards de transactions par an, le débit moyen du switch NPCI est d’environ 700 transactions par seconde. Le trafic n’étant pas uniforme, le pic doit être plusieurs fois plus élevé, mais comparé au flux Nasdaq TotalView ITCH, qui dépasse 100 000 messages par seconde à l’ouverture, cela ne paraît pas si extrême

    • Pour comparer avec le volume de traitement des ordres et des messages du Nasdaq, il faut plutôt regarder la National Stock Exchange (NSE) de l’Inde. Le nombre d’ordres exécutés par jour à la NSE dépasse celui du Nasdaq
      J’ai travaillé il y a quelques années sur la montée en charge d’UPI, et les paiements en temps réel sont bien plus distribués, donc beaucoup plus complexes. Chaque transaction implique deux banques détenant les fonds, les applications des deux utilisateurs et leurs banques respectives, ainsi que le réseau NPCI, avec de multiples échanges de messages pendant que les deux utilisateurs attendent. En termes de débit de messages, cela représente donc 10 à 25 fois le nombre réel de transactions
      Le fait de pouvoir transférer gratuitement de l’argent en temps réel, 24/7, depuis n’importe quelle banque nationale vers n’importe quelle autre, change complètement la donne. C’est le contraste total avec les réseaux de paiement américains, lents et coûteux
      En Inde, en plus d’UPI, il existe aussi NEFT, qui règle par lots comme ACH, IMPS, qui est instantané comme UPI mais avec une expérience utilisateur différente, et RTGS, le réseau de paiement en temps réel pour gros montants intermédié par la banque centrale RBI. Tous fonctionnent 24/7 et sont gratuits. Côté cartes, en plus de Visa et Mastercard, il y a aussi RuPay, dont les frais de règlement sont nettement plus faibles
    • 22 milliards est le chiffre d’un seul mois, juin 2026, ce qui donne 264 milliards sur une base annuelle
    • C’est une bonne leçon à tirer pour les entretiens de system design. Si même un système de paiement populaire dans un pays de 1,5 milliard d’habitants est de cet ordre de grandeur, il est peu probable qu’une petite entreprise doive concevoir, en imitant les entretiens à la Google, un système théorique exigeant non seulement des millions de requêtes par seconde en moyenne, mais même simplement des dizaines de milliers
  • Un réseau privé de transferts de fonds centralisé et fondé sur le KYC, est-ce vraiment une bonne chose ?

    • Au moins, c’est pratique. Quand les portefeuilles mobiles ont commencé à se développer, beaucoup soutenaient que les fondations de la technologie financière devaient être décentralisées et mettaient la blockchain en avant ; le débat s’est enlisé dans des philosophies techniques autour de la décentralisation, des transactions de pair à pair, des échanges intermédiaires en cryptomonnaies ou des stablecoins
      Les cabinets de conseil ont gagné beaucoup d’argent, mais les administrations et les banques se sont demandé comment elles avaient pu dépenser des millions de dollars sans faire avancer le développement produit, et la conclusion a fini par pencher vers l’idée que l’innovation fintech ne devait pas être pilotée par l’État
      Les infrastructures informatiques à grande échelle sont souvent développées et vendues aux gouvernements par des entreprises sous le contrôle ou l’influence des gouvernements des États-Unis ou d’Europe occidentale, ce qui a aussi un certain impact sur la souveraineté nationale. Un gouvernement peut attendre un logiciel existant comportant des risques de contrôle, ou construire lui-même un logiciel qui fonctionne dès maintenant en acceptant ses risques et ses limites
      L’Inde a, à mon avis, fait le bon choix en bâtissant son système sur des bases éprouvées et prévisibles
    • Si l’on regarde uniquement l’expérience utilisateur et l’aspect pratique, c’est excellent. Le taux d’adoption est élevé, et même les petites échoppes peuvent accepter les paiements facilement, ce qui leur permet d’accueillir plus de clients
      En revanche, comme le système est lié à une pièce d’identité gouvernementale authentifiée par une banque, son usage est extrêmement peu pratique pour les étrangers
    • C’est bien mieux que de laisser des banques privées faire la même chose tout en extrayant de la rente auprès des utilisateurs, et c’est aussi préférable aux cryptomonnaies actuelles, dont l’expérience utilisateur est si mauvaise qu’il est facile d’y perdre toutes ses économies. C’est plus pratique que les espèces, mais il faut aussi préserver l’option de payer en liquide
      Ce n’est pas au niveau d’un système à la fois pratique, décentralisé et anonyme, mais cela n’existe pas encore. Si Ethereum résout l’abstraction native des comptes, une scalabilité fluide et une protection de la vie privée au niveau de Monero, ce sera peut-être possible d’ici cinq ans
    • C’est bien centralisé et fondé sur le KYC, mais il est difficile de dire que c’est privé. On peut se référer à https://www.bankbazaar.com/tax/tax-on-upi-transactions.html
    • Oui, c’est un bon système. Il ne cherche pas à créer une nouvelle monnaie ; c’est une façon d’utiliser son propre argent qui fonctionne déjà
  • Les paiements par QR code d’Asie du Sud-Est, comme PromptPay en Thaïlande, reposent-ils sur un principe similaire ?
    Le site web et le schéma sont propres, pensés pour le lecteur, et totalement dépourvus d’éléments perturbateurs

    • Je ne connais pas bien l’architecture de PromptPay, mais après une rapide recherche, il semble que les applications utilisateur pour scanner les QR soient opérées directement par les banques. À l’inverse, sur UPI, Google Pay est un fournisseur d’application tiers (TPAP), et il est possible de relier à un même TPAP plusieurs comptes, dans la même banque ou dans des banques différentes
      L’implémentation du protocole interbancaire peut aussi différer. Dans UPI, les messages de transaction sont asynchrones : NPCI envoie ReqPay à la banque émettrice comme demande de débit, et la banque ne renvoie qu’un accusé de réception Ack dans cette même requête HTTP. Une fois le traitement terminé, le switch de la banque envoie RespPay à l’endpoint de callback de NPCI, qui renvoie à son tour Ack. L’opération se déroule de manière similaire quand NPCI envoie à la banque destinataire une demande de crédit
  • Le contenu est bon, mais la fonction de conversion crore/billion est particulièrement excellente. J’aimerais qu’elle se répande sur les sites liés à l’Inde, mais avec seulement CR/BN, il est difficile d’en comprendre immédiatement l’usage ; une infobulle explicative serait utile

    • Je n’avais pas compris que c’était cette fonction. Au début, cela ressemblait à un bouton de changement de langue du type HI/EN, mais il était impossible de savoir de quelles langues il s’agissait, et la langue ne changeait effectivement pas. Une fois compris, c’est une bonne idée