Cardless EMI - Integration

Custom UI#

If you are integrating using the Custom UI SDK, after the customer selects the EMI payment method step 2, they are redirected to a Razorpay hosted page where they enter the OTP they received on their registered phone number and proceed to select the desired EMI plan.

Learn how to integrate razorpay.js in your application.

To display the alternate EMI payment partners under the EMI option, change the method in the create payment code to cardless_emi.

Copyrazorpay.createPayment({ amount: 5000, email: '', contact: '9123456780', order_id: 'order_9A33XWu170gUtm', method: ‘cardless_emi’, provider: ‘<provider-name>’ // EMI provider });
amount integer Mandatory
The amount to be paid.

email string Mandatory
The email address of the customer.

contact integer Mandatory
The phone number of the customer. This must be passed in the request body to manually collect OTP.

order_id integer Non-Mandatory
The unique identifer of the order created at Razorpay, if applicable.

method string Mandatory
The payment method. In this case it is cardless_emi.

provider string Mandatory
The name of the cardless EMI payment partner. Currently, Razorpay Checkout supports the following cardless EMI payment partners:

- zestmoney

- earlysalary

Error Codes#

An example error response for a payment failure is shown below:

Copy{ "error": { "code": "USER_DNE", "description": "User does not exist" } }

You can consume the response sent by Razorpay and create an action at your end accordingly. Following are the various error codes.

Error Code



User does not exist


The EMI plan provided is invalid.


Minimum amount required for transaction.


Maximum amount limit exceeded.


Payment timed out.


Payment cancelled by clicking the cancel button.


Payment failed by partner due to an internal error.


Credit limit of the customer has exhausted.


Capture amount greater than authorized amount.