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)

  • EMI (Use PayUConstants.EMI)

  • No Cost EMI (Use PayUConstants.EMI)

  • Cash Cards/Wallets (Use PayUConstants.CASH)

  • PayU Money (Use PayUConstants.PAYU_MONEY)

  • UPI (Use PayUConstants.UPI)

  • Google Pay (Use PayUConstants.TEZ)

  • PhonePe (Use PayUConstants.PHONEPE_INTENT)

  • LazyPay (Use PayUConstants.LAZYPAY)

Below are the additional parameters that can be configured in PaymentParams object created earlier for various PaymentTypes.

Credit Card/Debit Card

mPaymentParams.setCardNumber(cardNumber);
mPaymentParams.setCardName(cardName);
mPaymentParams.setNameOnCard(cardholderName);
mPaymentParams.setExpiryMonth(expiryMonth);// MM
mPaymentParams.setExpiryYear(expiryYear);// YYYY
mPaymentParams.setCvv(cvv);

For Recurring Payments in Credit/Debit Card

For Recurring payment in CC/DC, merchant need to collect below details

SIParams siParams = new SIParams();
siParams.setCcCardType("CC"); //This will be DC for Debit Card
siParams.setCcCategory("MAST"); //Card scheme

Set this siParams in Payment Params created here

Stored Cards

mPaymentParams.setCardToken(cardToken);
mPaymentParams.setCvv(cvv);
mPaymentParams.setNameOnCard(cardName);
mPaymentParams.setExpiryMonth(expiryMonth);// MM
mPaymentParams.setExpiryYear(expiryYear);// YYYY
mPaymentParams.setCardName(storedCard.getCardName());

NetBanking

Get the bankCode (String) of selected bank from your spinner/list view adapter and add it to the mPaymentParams created above

mPaymentParams.setBankCode(bankCode);

For Recurring Payments in NetBanking

For Recurring payment in NB, merchant need to collect below details

BeneficiaryDetails beneficiaryDetails = new BeneficiaryDetails();
beneficiaryDetails.setBeneficiaryName("John Doe");
beneficiaryDetails.setBeneficiaryAccountNumber("51234567890");
beneficiaryDetails.setBeneficiaryAccountType(BeneficiaryAccountType.SAVINGS);
SIParams siParams = new SIParams();
siParams.setBeneficiarydetail(beneficiaryDetails);

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

Set this siParams in Payment Params created here

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

mPaymentParams.setCardNumber(5123456789012346);
mPaymentParams.setNameOnCard(“test”);
mPaymentParams.setExpiryMonth(06);
mPaymentParams.setExpiryYear(2023);
mPaymentParams.setCvv(123);
mPaymentParams.setBankCode(“EMI03”);

No Cost EMI

For making no cost EMI transactions, subvention amount needs to be sent along with above EMI params

mPaymentParams.setSubventionAmount(4000);

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

sha512(key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5||||||SALT|SubventionAmount)

Otherwise it will remain same as earlier.

Cash Card

mPaymentParams.setBankCode(bankCode);

UPI

mPaymentParams.setVpa(virtualPaymentAddress)

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 a notification of transaction status will be sent on completion of transaction. It should be HTTPS.

mPaymentParams.setNotifyURL(<Merchant Callback Url>);