Native OTP Flow Integration

Native OTP Flow is a method of capturing transaction OTPs that happens on the merchant or PayU Payment page, rather than on a bank’s page through multiple hops. This means that customers stay on the merchant or PayU website to complete the card authentication process, entering the OTP on the same page where they are making the purchase, rather than being redirected to a 3D-secure page. This reduces the number of steps in the checkout process, resulting in a faster and smoother experience for customers and a higher success rate for merchants. As a result, Native OTP Flow is preferred over OTP on a bank’s page.

You can enable Native OTP flow in EMI payments and collect payments. Currently, Native OTP can be enabled for the following types of EMI payments:

📘

Note:

If you don’t have EMI enabled, try requesting using Dashboard. For more information, refer to Configure Checkout Settings. If you could not request through Dashboard, contact your PayU Key Account Manager or PayU Support.

Benefits

What are the advantages and why should merchants integrate this flow with PayU?

  • Increase Success Rates — Native OTP flow improves Success Rates of card transactions by 3-5% depending upon the source of transactions.
  • Less Redirection — It improves the overall user experience since multiple redirections are removed. Also, the customer never leaves the merchant website, which helps in providing a seamless experience. It also reduces drop rates due to users’ fluctuating internet speed issues.
  • PayU supports all major banks — 15+ banks including HDFC, AXIS, ICICI, SBI, KOTAK, RBL, etc. – on this flow for Cards, cardless, CC EMI, DC EMI’s, and BNPLs.

This flow supports the latest native OTP generation flow (server-to-server) via Initiate Payment API, followed by the Submit OTP API, to initiate an S2S=4 transaction.

Collect payments with debit card

Steps to integrate:

  1. Check Pre-EMI Eligibility
  2. Initiate the payment request and check response
  3. Submit the OTP

Step 1: Check Pre-EMI Eligibility

Before initiating a payment request for a customer, it is necessary to check their eligibility using the Get Checkout Details API. For more information, refer to Get Checkout Details API.

Step 2: Initiate the payment request and check response

Send the transaction information to PayU through a server-to-server curl request to initiate the transaction. As a result of this API call, the customer will receive the OTP. For more information, refer to Collect Payment API - Server-to-Server.

ParameterDescriptionExample
s2s_device_info
mandatory
String This parameter must have the customer agent’s device.
Note: This information is helpful when it comes to issues related to fraud detection and chargebacks. Hence, it is must to provide the correct information.
Mozilla
s2s_client_ip
mandatory
String This parameter must have the source IP of the customer.
Note: This information is helpful when it comes to issues related to fraud detection and chargebacks. Hence, it is must to provide the correct information.
10.11.101.11'
txn_s2s_flow
mandatory
String This parameter must be passed with the value as 4.4

Step 3: Submit the OTP

Once your customer enters the OTP on the payment page (postUrl/acsTemplate), pass the OTP using the Submit OTP API. For more information, refer to Submit OTP API.

Resend OTP

If the customer enters the incorrect OTP or an expired OTP, use Resend OTP API to handle the Resend OTP request made by a customer.

Collect Payments with cardless EMI

Step 1: Check pre-EMI eligibility

Before initiating a payment request for a customer, it is necessary to check their eligibility using the Get Checkout Details API. For more information, refer to Get Checkout Details API.

Step 2: Initiate the payment request and check response

Send the following additional parameters to PayU through a server-to-server curl request to initiate the payment. As a result of this API call, the customer will receive the OTP. For sample request and response, refer to Collect Payment API - Server-to-Server.

ParameterDescriptionExample
panNumber
mandatory
String PAN number of the customer.ABCDE1234A
s2s_device_infomandatoryString This parameter must have the customer agent’s device.Mozilla
s2s_client_ipmandatoryString This parameter must have the source IP of the customer.10.11.101.11
txn_s2s_flowmandatoryStringString This parameter must be passed with the value as 4.4

📘

Notes for panNumber:

  • Only 4-digit number of the PAN: Pass the 4-digit numeral in a sequential order as in the PAN.
  • This parameter is mandatory for ICICI Bank and HDFC Bank Cardless EMI. Not mandatory for other banks
  • The data validation performed is either the whole PAN card number or 4-dig-t number of the PAN.
    • Whole PAN card Number: For validating the whole PAN Card number:
      • It should be ten characters long.
      • The first five characters should be any upper case alphabets.
      • The next four-characters should be any number from 0 to 9.
      • The last(tenth) character should be any upper case alphabet. It should not contain any white spaces.

Step 3: Submit the OTP

Once your customer enters the OTP on the payment page (postUrl/acsTemplate), pass the OTP using the Submit OTP API. For more information, refer to Submit OTP API.

Resend OTP

If the customer enters the incorrect OTP or an expired OTP, use Resend OTP API to handle the Resend OTP request made by a customer.