RuPay and UPI instant payments (India)

RuPay (derived from the words "rupee" and "payment") is an Indian domestic card network launched by the National Payments Corporation of India (NPCI), which also developed the United Payments Interface (UPI), a real-time payment system for processing inter-bank transactions.

Customers with RuPay cards that are UPI enabled (linked to a UPI app), can make payments and transfers directly from their card to merchants and have their credit card accounts debited in real-time.

The Pismo platform supports RuPay-UPI integration. Clients can use Pismo endpoints for transactional flows (Transfer funds), plus the onboarding and account lifecycle processes for establishing and managing UPI user accounts.

Connecting with the Pismo platform

You need to use mTLS to connect with the Pismo plaform. For more information, refer to Identity connectivity with mTLS

mTLS is mandatory for all API calls to the Pismo platform. This protocol keeps the platform in compliance with legal requirements. To configure mTLS, contact your Pismo representative.

Configure signed certificate for mTLS

There are three ways to configure the signed certificate:

  • Pismo generates and signs a private and public key and sends the public key to you through a secure channel.
  • You generate a private and public key and send the public key to Pismo through a Certificate Signing Request (CSR). Pismo sends back a signed public certificate.
  • You generate your own public certificate and sign it with your own CA. You provide the signed certificate to Pismo for upload to Cloudflare.

Testing and production domains

mTLS domains to access Pismo UPI API:

  • UAT - https://api-sandbox-cdn.pismolabs.io
  • Production - https://prod-cdn.ind.pismo.io

The Sandbox domain to access the API via Postman is https://api-sandbox.pismolabs.io

Notes:

  • For every API endpoint call, a valid auth token has to be passed in a header. You must use Pismo's OpenID Authentication .
  • You need to generate private and public keys, share the public key with Pismo and, in turn, Pismo shares the organization details you can use to generate the JWT signed with the private key. Using the JWT, the auth token can be generated from Pismo using the Passport API endpoint

UPI processing codes

Operation namePayment PCRefund PCRefund cancellation PC
DEBIT UPI RUPAY320200320201320202
CREDIT UPI RUPAY320203320204320205

Anti-fraud webhook for UPI transactions

You have the option to implement an anti-fraud webhook for UPI transactions to supplement the anti-fraud checking and validation Pismo does.

Sample RuPay UPI Transfer funds endpoint request

curl --request POST \
     --url https://sandbox.pismolabs.io/upi-gateway/v1/cards/transfer \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "amount": 500,
  "currency": "INR",
  "account_reference_number": "12345600000000001140340134",
  "external_transaction_datetime": "2020-09-15T19:39:54.013Z",
  "external_transaction_id": "MGS584A1244F6BC4D50A3FABE6D93DF913C",
  "mcc": "6012",
  "merchant_name": "Cafe Coffee Day",
  "phone_number": "919846049491",
  "transaction_reference": "Lunch",
  "transaction_type": "C",
  "upi_reference_number": "123412341234",
  "credit_account_number": "98765004371"
}
'