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)
- Sodexo (Use PayUConstants.SODEXO)
Below are the additional parameters that can be configured in PaymentParams object created earlier for various PaymentTypes.
mPaymentParams.setCardNumber(cardNumber);
mPaymentParams.setCardName(cardName);
mPaymentParams.setNameOnCard(cardholderName);
mPaymentParams.setExpiryMonth(expiryMonth);// MM
mPaymentParams.setExpiryYear(expiryYear);// YYYY
mPaymentParams.setCvv(cvv);
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
mPaymentParams.setCardToken(cardToken);
mPaymentParams.setCvv(cvv);
mPaymentParams.setNameOnCard(cardName);
mPaymentParams.setExpiryMonth(expiryMonth);// MM
mPaymentParams.setExpiryYear(expiryYear);// YYYY
mPaymentParams.setCardName(storedCard.getCardName());
For cards tokenised outside PayU platform merchant needs to pass below parameters.
- 1.mPaymentParams.setCardTokenType(1); //it should be passed as 1TokenizedCardAdditionalParam additionalParam = new TokenizedCardAdditionalParam();additionalParam.setLast4Digits("1234"); //last 4 digits of cardadditionalParam.setTavv("1234"); //tavv -> will be given by tokenisation partneradditionalParam.setTrid("1234"); //trid -> will be given by tokenisation partneradditionalParam.setTokenRefNo("1234"); //tokenRefNo -> will be given by tokenisation partnermPaymentParams.setTokenizedCardAdditionalParam(additionalParam);
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 payment in NB, merchant need to collect below details
BeneficiaryDetails beneficiaryDetails = new BeneficiaryDetails();
beneficiaryDetails.setBeneficiaryName("John Doe");
beneficiaryDetails.setBeneficiaryAccountNumber("51234567890");
beneficiaryDetails.setBeneficiaryAccountType(BeneficiaryAccountType.SAVINGS);
beneficiaryDetails.setBeneficiaryIfsc("ICIC0006621")
beneficiaryDetails.setVerificationMode("Net Banking"); // It can be either Net Banking or Debit Card
SIParams siParams = new SIParams();
siParams.setBeneficiarydetail(beneficiaryDetails);
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 |
mPaymentParams.setBankCode("HDFCENCC");
Get the bankCode (String) of selected bank from your spinner/list view adapter and add it to the
mPaymentParams
along with card details as belowmPaymentParams.setCardNumber(“5123456789012346”);
mPaymentParams.setNameOnCard(“test”);
mPaymentParams.setExpiryMonth(“06”);
mPaymentParams.setExpiryYear(“2023”);
mPaymentParams.setCvv(“123”);
mPaymentParams.setBankCode(“EMI03”);
For doing CardLess EMI transactions, setCardLess should be set to true along with setting BankCode in payment params as below
mPaymentParams.setBankCode("ZESTMON"); //For Zestmoney CardLess EMI
mPaymentParams.setCardlessEMI(true);
For doing Zestmoney CardLess EMI transactions, phone number should also be set in payment params as below
mPaymentParams.setPhone("9000000000");
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.
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 the same as earlier.
mPaymentParams.setBankCode(bankCode);
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]+$/)
Notify(Callback) URL of merchant where notification of transaction status will be sent on completion of transaction. It should be HTTPS.
mPaymentParams.setNotifyURL(<Merchant Callback Url>);
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.
mPaymentParams.setTwidCustomerHash("Twid customer hash");
To Pay using Sodexo, create the post data with PAYMENT_PG_SODEXO :
mPaymentParams.setCardNumber(cardNumber);
mPaymentParams.setCardName(cardName);
mPaymentParams.setNameOnCard(cardholderName);
mPaymentParams.setExpiryMonth(expiryMonth);// MM
mPaymentParams.setExpiryYear(expiryYear);// YYYY
mPaymentParams.setCvv(cvv);
After a successful payment, you would get the Sodexo source id in the field3 param of PayuResponse, which can be used to show and get stored Sodexo card details and also can be used for initiate payment.
mPaymentParams.setsodexoSourceId("srcid123")
Last modified 1yr ago