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
- 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.
- The consumer is displayed QR code on the desktop website.
- The consumer scans the QR code on their preferred UPI application, enters the desired details, authorise and complete the transaction.
- The merchant receives the payment confirmation
- The merchant ships the order/deliver the goods to the consumer.
Specific input parameters for the TRANSACTION call
Field Name | M/O/C | Type | Regex | Description |
---|---|---|---|---|
dynamicdescriptor | O | ascii | N/A | Payment 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 Name | Type | Description |
---|---|---|
qrPayload | ascii | Used 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 |
iosIntentPhonepe | ascii | Used for the intent flow for the Phonepe payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentBhim | ascii | Used for the intent flow for the Bhim payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentPaytm | ascii | Used for the intent flow for the Paytm payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentGpay | ascii | Used 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
¤cy=USD
&amount=1055
&merchanttxid=bAnr8kK2GmJf
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOE
&channel=testchannel//livechannel for production//
¬ificationurl=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
- 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.
- The consumer is displayed QR code on the desktop website.
- The consumer scans the QR code on their preferred UPI application, enters the desired details, authorise and complete the transaction.
- The merchant receives the payment confirmation
- The merchant ships the order/deliver the goods to the consumer.
Specific input parameters for the TRANSACTION call
Field Name | M/O/C | Type | Regex | Description |
---|---|---|---|---|
dynamicdescriptor | O | ascii | N/A | Payment 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 Name | Type | Description |
---|---|---|
qrPayload | ascii | Used 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 |
iosIntentPhonepe | ascii | Used for the intent flow for the Phonepe payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentBhim | ascii | Used for the intent flow for the Bhim payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentPaytm | ascii | Used for the intent flow for the Paytm payment app. Only applicable for IOS devices. Not Applicable for this journey |
iosIntentGpay | ascii | Used 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
¤cy=USD
&amount=1055
&merchanttxid=bAnr8kK2GmJf
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOE
&channel=testchannel//livechannel for production//
¬ificationurl=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
Updated 3 months ago