Supported Payment Types
Lists various payment types supported by SDK and additional parameters supported.
    Credit Card/Debit Card/Stored Card(Use PayuConstants.CC)
    NetBanking (Use PayUConstants.NB)
    NEFT/RTGS(Use PayUConstants.NEFT_RTGS)
    EMI (Use PayUConstants.EMI)
    No Cost EMI (Use PayUConstants.EMI)
    Cash Cards/Wallets (Use PayUConstants.CASH)
    PayU Money (Use PayUConstants.PAYU_MONEY)
    Intent (Use PayUConstants.UPI_INTENT)
    UPI (Use PayUConstants.UPI)
    Google Pay (Use PayUConstants.TEZ)
    PhonePe (Use PayUConstants.PHONEPE_INTENT)
    LazyPay (Use PayUConstants.LAZYPAY)
    TwidPay (Use PayUConstants.PAY_BY_REWARDS)
Below are the additional parameters that can be configured in PaymentParams object created earlier for various PaymentTypes.

Credit Card/Debit Card

1
mPaymentParams.setCardNumber(cardNumber);
2
mPaymentParams.setCardName(cardName);
3
mPaymentParams.setNameOnCard(cardholderName);
4
mPaymentParams.setExpiryMonth(expiryMonth);// MM
5
mPaymentParams.setExpiryYear(expiryYear);// YYYY
6
mPaymentParams.setCvv(cvv);
Copied!

For Recurring Payments in Credit/Debit Card

For Recurring payment in CC/DC, merchant need to collect below details
1
SIParams siParams = new SIParams();
2
siParams.setCcCardType("CC"); //This will be DC for Debit Card
3
siParams.setCcCategory("MAST"); //Card scheme
Copied!
Set this siParams in Payment Params created here

Stored Cards

1
mPaymentParams.setCardToken(cardToken);
2
mPaymentParams.setCvv(cvv);
3
mPaymentParams.setNameOnCard(cardName);
4
mPaymentParams.setExpiryMonth(expiryMonth);// MM
5
mPaymentParams.setExpiryYear(expiryYear);// YYYY
6
mPaymentParams.setCardName(storedCard.getCardName());
Copied!

NetBanking

Get the bankCode (String) of selected bank from your spinner/list view adapter and add it to the mPaymentParams created above
1
mPaymentParams.setBankCode(bankCode);
Copied!

For Recurring Payments in NetBanking

For Recurring payment in NB, merchant need to collect below details
1
BeneficiaryDetails beneficiaryDetails = new BeneficiaryDetails();
2
beneficiaryDetails.setBeneficiaryName("John Doe");
3
beneficiaryDetails.setBeneficiaryAccountNumber("51234567890");
4
beneficiaryDetails.setBeneficiaryAccountType(BeneficiaryAccountType.SAVINGS);
5
beneficiaryDetails.setBeneficiaryIfsc("ICIC0006621")
6
beneficiaryDetails.setVerificationMode("Net Banking"); // It can be either Net Banking or Debit Card
7
8
SIParams siParams = new SIParams();
9
siParams.setBeneficiarydetail(beneficiaryDetails);
Copied!

Beneficiary Details Params Definition

Parameter
Type
Description
Beneficiary Name
String
Account Holder Beneficiary name
Beneficiary Account Number
String
Account number of Beneficiary
Beneficiary Account Type
Enum of BeneficiaryAccountType
Accepted values are BeneficiaryAccountType.SAVINGS, BeneficiaryAccountType.CURRENT
Beneficiary IFSC
String
Valid IFSC
Set this siParams in Payment Params created here . For SI, NetBanking list can be get by consuming the getSiBankList() from payuResponse received in onPaymentRelatedDetailsResponse() callback as mentioned here. Set the NB bankCode as received in this list in payment params as below
1
mPaymentParams.setBankCode("HDFCENCC");
Copied!

EMI

Get the bankCode (String) of selected bank from your spinner/list view adapter and add it to the mPaymentParamsalong with card details as below
1
mPaymentParams.setCardNumber(5123456789012346);
2
mPaymentParams.setNameOnCard(“test”);
3
mPaymentParams.setExpiryMonth(06);
4
mPaymentParams.setExpiryYear(2023);
5
mPaymentParams.setCvv(123);
6
mPaymentParams.setBankCode(“EMI03”);
Copied!

CardLess EMI

For doing CardLess EMI transactions, setCardLess should be set to true along with setting BankCode in payment params as below
1
mPaymentParams.setBankCode("ZESTMON"); //For Zestmoney CardLess EMI
2
mPaymentParams.setCardlessEMI(true);
Copied!
For doing Zestmoney CardLess EMI transactions, phone number should also be set in payment params as below
1
mPaymentParams.setPhone("9000000000");
Copied!

No Cost EMI

For making no cost EMI transactions, subvention amount needs to be sent along with above EMI params
1
mPaymentParams.setSubventionAmount(4000);
Copied!
To get list of No Cost EMI supporting banks, pass var2 as "all" in Merchant Web Service for GetPaymentRelatedDetailsTask. More details on Merchant Web Service is here.

Hash Formula

If subventionAmount is passed than hash formula for payment hash will be
1
sha512(key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5||||||SALT|SubventionAmount)
Copied!
Otherwise, it will remain the same as earlier.

Cash Card

1
mPaymentParams.setBankCode(bankCode);
Copied!

UPI

1
mPaymentParams.setVpa(virtualPaymentAddress)
Copied!
Validations for virtual payment address
    Vpa length should be less than or equal to 50
    Regex for VPA : value.match(/^([A-Za-z0-9.])[email protected][A-Za-z0-9]+$/)

LazyPay

Notify(Callback) URL of merchant where notification of transaction status will be sent on completion of transaction. It should be HTTPS.
1
mPaymentParams.setNotifyURL(<Merchant Callback Url>);
Copied!

TwidPay

To Pay using TwidPay, create the postdata with PayuConstants.PAY_BY_REWARDS.
After a successful payment, you would get the Twid customer hash in field5 params of PayuResponse, which would use it for the next transaction to skip authentication.
1
mPaymentParams.setTwidCustomerHash("Twid customer hash");
Copied!
Last modified 30d ago