E-commerce : Scan QR and Pay

This payment flow provides the user experience for online shopping. The consumer scans the QR code generated online by the merchant to make the payment.

There are two integration options to integrate UPI via QR code :

QR code on merchant hosted payment page

This allows merchants to host the QR payment page at their side.

QR code on PPRO-hosted payment page

Customers are redirected to a PPRO-managed QR payment page where UPI is presented as a payment option.

QR code on PPRO hosted payment page

Customer Journey

  1. The consumer goes to the merchant website on desktop and selects UPI as their preferred payment method on payment page, QR is displayed on page hosted by PPRO.
  2. The consumer is displayed QR code on the desktop website.
  3. The consumer scans the QR code on their preferred UPI application, enters the desired details, authorise and complete the transaction.
  4. The merchant receives the payment confirmation
  5. The merchant ships the order/deliver the goods to the consumer.

Specific input parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
dynamicdescriptorOasciiN/APayment description

For standard input parameters, check Input parameters for the TRANSACTION call
[Input parameters for the TRANSACTION call]

This payment method supports the dynamic descriptor field (see The dynamic descriptor).

Transient output parameters for the TRANSACTION call

Field NameTypeDescription
qrPayloadasciiUsed for the generation of the payment QR code.
Alternatively, it can be used as a deeplink for the intent flow on Android devices.

Not Applicable for this journey
iosIntentPhonepeasciiUsed for the intent flow for the Phonepe payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentBhimasciiUsed for the intent flow for the Bhim payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentPaytmasciiUsed for the intent flow for the Paytm payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentGpayasciiUsed for the intent flow for the Gpay payment app.
Only applicable for IOS devices.

Not Applicable for this journey

For standard output parameters, see Output parameters for the TRANSACTION call.

TRANSACTION call input

tag=upi
&txtype=TRANSACTION
&countrycode=US
&currency=USD
&amount=1055
&merchanttxid=bAnr8kK2GmJf
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOE
&channel=testchannel//livechannel for production//
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=Description
&returnmode=urlencodeext

TRANSACTION call output

When Transaction request is successful

REQUESTSTATUS=SUCCEEDED
&STATUS=PENDING
&TXID=598968946
&ERRMSG=
&CHANNEL=testchannel
&TAG=upi
&PAYMENTGUARANTEE=NONE
&REDIRECTURL=https://r3.public.k8s.qa.ppro.com/upi/T/I?tx=10&rs=3ZTw&cs=0b3cb24 
&REDIRECTSECRET=CwbROPqA2Fc90AviHtOtAC0dAdeh37xb
&TRANSIENTOUT.IOSINTENTBHIM://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTGPAY://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTPAYTM://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTPHONEPE://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.QRPAYLOAD:upiGlobal%3A%2F%2Fpay%3FQRexpire%3D2023-09-13T10%3A34%3A54%2B05%3A30%26QRts%3D2023-09-13T10%3A19%3A54%2B05%3A30%26am%3D2.50%26bAm%3D2.50%26bCurr%3DUSD%26brand%3DKFC%26category%3D02%26cc%3DUS%26cu%3DUSD%26invoiceDate%3D2023-09-13T10%3A19%3A54%2B05%3A30%26invoiceName%3Djondow%26invoiceNo%3Dsale1002%26mGr%3DONLINE%26mLoc%3DCALIFORNIA%26mOnboarding%3DAGGREGATOR%26mType%3DSMALL%26mc%3D5411%26mid%3DMID12345678%26mode%3D22%26msid%3DSID12345678%26mtid%3DTID12345678%26orgId%3D1012350001%26pa%3Dmerchant123%40ppro%26pn%3DPPRO%2520Merchant%2520123%26purpose%3D62%26qrMedium%3D04%26tn%3DTestshop%26tr%3D201%26txnType%3DPAY%26ver%3D01%26sign%3DMEYCIQCz3IDRajy0yqEiWSnIdi1qo8CCRBfj%2BKHztZo9DperoAIhAObxHOs34B2jaGaB4JMvTcbcXIRH0ZTvz3zFUdx3Vy2r

When Transaction request is not successful

&STATUS=FAILED
&TXID=600520459
&ERRMSG=Remote%20System%20Error  
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&FAILREASON=REMOTE_ERROR
&CHANNEL=testchannel
&TAG=upi
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

ℹ️

Note

Use "REDIRECTURL" in the successful transaction response to be redirected to PPRO Hosted Payment Page where QR is displayed

QR code on merchant hosted payment page

Customer Journey

  1. The consumer goes to the merchant website on desktop and selects UPI as their preferred payment method on payment page, QR is displayed on page hosted by merchant.
  2. The consumer is displayed QR code on the desktop website.
  3. The consumer scans the QR code on their preferred UPI application, enters the desired details, authorise and complete the transaction.
  4. The merchant receives the payment confirmation
  5. The merchant ships the order/deliver the goods to the consumer.

Specific input parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
dynamicdescriptorOasciiN/APayment description

For standard input parameters, check Input parameters for the TRANSACTION call
[Input parameters for the TRANSACTION call]

This payment method supports the dynamic descriptor field (see The dynamic descriptor).

Transient output parameters for the TRANSACTION call

Field NameTypeDescription
qrPayloadasciiUsed for the generation of the payment QR code.
Alternatively, it can be used as a deeplink for the intent flow on Android devices.

Applicable for this journey
iosIntentPhonepeasciiUsed for the intent flow for the Phonepe payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentBhimasciiUsed for the intent flow for the Bhim payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentPaytmasciiUsed for the intent flow for the Paytm payment app.
Only applicable for IOS devices.

Not Applicable for this journey
iosIntentGpayasciiUsed for the intent flow for the Gpay payment app.
Only applicable for IOS devices.

Not Applicable for this journey

For standard output parameters, see Output parameters for the TRANSACTION call.

TRANSACTION call input

tag=upi
&txtype=TRANSACTION
&countrycode=US
&currency=USD
&amount=1055
&merchanttxid=bAnr8kK2GmJf
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOE
&channel=testchannel//livechannel for production//
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=Description
&returnmode=urlencodeext

TRANSACTION call output

When Transaction request is successful

REQUESTSTATUS=SUCCEEDED
&STATUS=PENDING
&TXID=598968946
&ERRMSG=
&CHANNEL=testchannel
&TAG=upi
&PAYMENTGUARANTEE=NONE
&REDIRECTURL=https://r3.public.k8s.qa.ppro.com/upi/T/I?tx=10&rs=3ZTw&cs=0b3cb24 
&REDIRECTSECRET=CwbROPqA2Fc90AviHtOtAC0dAdeh37xb
&TRANSIENTOUT.IOSINTENTBHIM://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTGPAY://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTPAYTM://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.IOSINTENTPHONEPE://No action for E-Commerce: Scan and Pay
&TRANSIENTOUT.QRPAYLOAD:upiGlobal%3A%2F%2Fpay%3FQRexpire%3D2023-09-13T10%3A34%3A54%2B05%3A30%26QRts%3D2023-09-13T10%3A19%3A54%2B05%3A30%26am%3D2.50%26bAm%3D2.50%26bCurr%3DUSD%26brand%3DKFC%26category%3D02%26cc%3DUS%26cu%3DUSD%26invoiceDate%3D2023-09-13T10%3A19%3A54%2B05%3A30%26invoiceName%3Djondow%26invoiceNo%3Dsale1002%26mGr%3DONLINE%26mLoc%3DCALIFORNIA%26mOnboarding%3DAGGREGATOR%26mType%3DSMALL%26mc%3D5411%26mid%3DMID12345678%26mode%3D22%26msid%3DSID12345678%26mtid%3DTID12345678%26orgId%3D1012350001%26pa%3Dmerchant123%40ppro%26pn%3DPPRO%2520Merchant%2520123%26purpose%3D62%26qrMedium%3D04%26tn%3DTestshop%26tr%3D201%26txnType%3DPAY%26ver%3D01%26sign%3DMEYCIQCz3IDRajy0yqEiWSnIdi1qo8CCRBfj%2BKHztZo9DperoAIhAObxHOs34B2jaGaB4JMvTcbcXIRH0ZTvz3zFUdx3Vy2r

When Transaction request is not successful

&STATUS=FAILED
&TXID=600520459
&ERRMSG=Remote%20System%20Error  
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&FAILREASON=REMOTE_ERROR
&CHANNEL=testchannel
&TAG=upi
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

ℹ️

Note

Please decode "&TRANSIENTOUT.QRPAYLOAD" to display UPI QR code.

Reference QR