When a shopper pays using UPI Collect, they enter their virtual payment address and complete the payment using the UPI app on their mobile device.
Make a payment
In your /payments request, specify:
paymentMethod.type
: upi_collect
paymentMethod.virtualPaymentAddress
: The UPI VPA that the shopper entered.
amount.currency
: INR
amount.value
: The value of the payment, in minor units.
The /payments response contains:
action.type
: await, this means you need to wait for the webhook to know the payment outcome.
Show the waiting screen
- Show a waiting screen to the shopper. We recommend adding a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.
- Check your webhooks to see the payment result. We send you an AUTHORISATION webhook after the shopper completes the payment in their UPI app.
- Once you receive the webhook, redirect the shopper to your website, and present the payment result.
Present the payment result
Wait for a webhook to know the outcome of the payment. The webhooks you can receive for UPI Collect are:
eventCode |
success field |
Description |
Action to take |
AUTHORISATION |
false |
The transaction failed. |
Cancel the order and inform the shopper that the payment failed. |
AUTHORISATION |
true |
The shopper successfully completed the payment. |
Inform the shopper that the payment has been successful and proceed with the order. |
Use the resultCode
that you received in the /payments response to inform your shopper of the payment status. The resultCode
values you can receive for payments made through UPI Collect are:
resultCode |
Description |
Action to take |
Error |
There was an error when the payment was being processed. For more information, check the
refusalReason
field. |
Inform the shopper that there was an error processing their payment. |
Pending |
The payment order was successfully received. |
Inform the shopper that you've received their order, and are waiting for the payment to clear. You will receive the final result of the payment in an AUTHORISATION webhook. |
Refused |
The payment was refused. For more information, check the
refusalReason
field. |
Ask the shopper to try the payment again using a different payment method. |
Test and Go Live
Use these credentials to test UPI Collect:
Parameter |
Value |
VPA |
testvpa@icici |
Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our Support Team if you have questions about the simulator.
You can also use your personal account on a UPI app to test your integration by making live payments with a low value.
When a shopper pays with UPI QR, you present a QR code which they can scan using the UPI app on their mobile device. We recommend that you use screen size to determine whether the shopper is accessing your site on mobile, desktop, or tablet and present the QR Code for shoppers on desktop or tablet.
Make a payment
Make a /payments request with:
paymentMethod.type
: upi_qr
amount.currency
: INR
amount.value
: The value of the payment, in minor units.
The /payments response contains:
action.qrCodeData
: Use this to render the QR code on your checkout page.
Present the QR code
Follow these steps to render the QR code on your checkout page:
- Use the
qrCodeData
from the action
object to render the QR code on your checkout page. We recommend showing a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.
- After the shopper scans the QR code and completes the payment, we send a webhook informing you of the payment result.
- Present the payment result to your shopper.
Present the payment result
Wait for a webhook to know the outcome of the payment. The webhooks you can receive for UPI QR are:
eventCode |
success field |
Description |
Action to take |
AUTHORISATION |
false |
The transaction failed. |
Cancel the order and inform the shopper that the payment failed. |
AUTHORISATION |
true |
The shopper successfully completed the payment. |
Inform the shopper that the payment has been successful and proceed with the order. |
For UPI QR payments, you can receive the following resultCode
values:
resultCode |
Description |
Action to take |
Error |
There was an error when the payment was being processed. For more information, check the
refusalReason
field. |
Inform the shopper that there was an error processing their payment. |
Pending |
The payment order was successfully received. |
Inform the shopper that you've received their order, and are waiting for the payment to clear. You will receive the final result of the payment in an AUTHORISATION webhook. |
Refused |
The payment was refused. For more information, check the
refusalReason
field. |
Ask the shopper to try the payment again using a different payment method. |
Test and Go Live
Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our Support Team if you have questions about the simulator.
You can also use your personal account on a UPI app to test your integration by making live payments with a low value.
When a shopper pays using UPI Intent, you need to redirect them to the UPI app on their mobile device. We recommend that you implement UPI Intent for mobile users only. Use screen size to determine whether the shopper is accessing your site on mobile, desktop, or tablet.
Make a payment
Make a /payments request with:
paymentMethod.type
: upi_intent
amount.currency
: INR
amount.value
: The value of the payment, in minor units.
Redirect the shopper
The /payments response contains:
action.url
: Use this to redirect the shopper to the UPI app on their mobile device.
App redirects work differently on Android and iOS. On Android, shoppers are given a choice of compatible apps to open the redirect link. iOS makes a default choice of which app to use.
To complete the payment, redirect the shopper to the action.url
returned in the /payments response.
Show the waiting screen
- Show a waiting screen to the shopper. We recommend adding a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.
- Check your webhook notifications to see the payment result. We send you an AUTHORISATION notification after the shopper completes the payment in their UPI app.
- Once you receive the notification webhook, redirect them to your website, and present the payment result.
Present the payment result
Wait for a notification webhook to know the outcome of the payment. The notification webhooks you can receive for UPI Intent are:
eventCode |
success field |
Description |
Action to take |
AUTHORISATION |
false |
The transaction failed. |
Cancel the order and inform the shopper that the payment failed. |
AUTHORISATION |
true |
The shopper successfully completed the payment. |
Inform the shopper that the payment has been successful and proceed with the order. |
For UPI Intent payments, you can receive the following resultCode
values:
resultCode |
Description |
Action to take |
Error |
There was an error when the payment was being processed. For more information, check the
refusalReason
field. |
Inform the shopper that there was an error processing their payment. |
RedirectShopper |
The shopper needs to be redirected to their UPI app to complete the payment. |
Redirect the shopper to complete the payment. |
Refused |
The payment was refused. For more information, check the
refusalReason
field. |
Ask the shopper to try the payment again using a different payment method. |
Test and Go Live
Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our Support Team if you have questions about the simulator.
You can also use your personal account on a UPI app to test your integration by making live payments with a low value.