> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-881012b3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate Payment Methods in Custom Checkout

> Integrate Cardless EMI, Debit and Credit Card EMI and Pay Later payment methods at Custom Checkout.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
</div>

You can integrate the following payment methods at Checkout to make your products or services more affordable for the customers:

* **Cardless EMI**<br />
  Use Cardless EMI to convert their payment amount to EMIs, without a debit or a credit card. This makes high-value products affordable for customers, as they can purchase without a large down payment. Some of the Cardless EMI providers in the market are InstaCred, EarlySalary and Zestmoney.

* **Debit and Credit Card EMI**<br />
  EMI is a popular payment method that customers prefer to reduce upfront product payments. The EMIs are available on both debit cards and credit cards.

* **Pay Later** <br />
  Pay Later offers digital credit to your customers, allowing them to purchase products without making an immediate payment. Some Pay Later providers in the market are FlexiPay by HDFC Bank, ICICI Pay Later, Simpl, and LazyPay.

## Integration Steps

To submit the payment details, you must invoke the `createPayment` method. In this method, add the following parameters and the usual checkout parameters.

## Cardless EMI

Cardless EMI is a checkout payment method that allows customers to convert their payment amount to EMIs. The user does not require a debit or credit card. Make payments via credits approved by the supported Cardless EMI payment partner.

<Info>
  **Feature Request**

  This is an on-demand feature. Please raise a request with our [Support team](https://razorpay.com/support/#request) to get this feature activated on your Razorpay account.
</Info>

<Warning>
  **Watch Out!**

  The customer should be registered with the cardless EMI payment partner before a payment.
</Warning>

```javascript Cardless EMI theme={null}
var data = {
  amount: 500000,
  currency: 'INR',
  email: 'gaurav.kumar@example.com',
  contact: '9000090000',
  order_id: 'order_EAkbvXiCJlwhHR',
  method: 'cardless_emi',
  provider: 'zestmoney'
});
```

### Request Parameters

`method` *mandatory*
: `string` The payment method to be used by the customer to complete the payment. Here, the value must be `cardless_emi`.

`provider`
: The Cardless EMI provider. Possible values:

* `hdfc`
* `icic`
* `idfb`
* `kkbk`
* `zestmoney`
* `earlysalary`
* `walnut369`

## Debit and Credit Card EMI

For EMIs, data is the same as the card, with the following differences:

* `method` should be `emi`
* An additional field, `emi_duration` corresponding to the number of months for EMI, should be included. After the customer selects the desired plan, pass the corresponding value in the `emi_duration` field.

```javascript EMI theme={null}
razorpay.createPayment({
  amount: 300000,
  email: 'gaurav.kumar@example.com',
  contact: '9000090000',
  order_id: 'order_9A33XWu170gUtm',
  method: 'emi',
  emi_duration: 9,
  'card[name]': 'Gaurav Kumar',
  'card[number]': '5241810000000000',
  'card[cvv]': '123',
  'card[expiry_month]': '10',
  'card[expiry_year]': '30'
});
```

### Request Parameters

`method` *mandatory*
: `string` The payment method to be used by the customer to complete the payment. Here, the value must be `emi`.

`emi_duration` *mandatory*
: `integer` Enter the duration of the EMI scheme in months. For example, `12`.

`card`
: The debit or credit card details should be entered when making the payment.

`number` *mandatory*
: `integer` Unformatted card number.

`name` *mandatory*
: `string` The name of the cardholder.

`expiry_month` *mandatory*
: `integer` Expiry month for the card in `MM` format.

`expiry_year` *mandatory*
: `integer` Expiry year for the card in `YY` format.

`cvv` *mandatory*
: `integer` CVV printed on the back of the card.

<Info>
  **Handy Tips**

  * CVV is not required by default for tokenised cards across all networks.
  * CVV is optional for tokenised card payments. Do not pass dummy CVV values.
  * To implement this change, skip passing the `cvv` parameter entirely, or pass a `null` or empty value in the CVV field.
  * We recommend removing the CVV field from your checkout UI/UX for tokenised cards.
  * If CVV is still collected for tokenised cards and the customer enters a CVV, pass the entered CVV value to Razorpay.
</Info>

### Fetch EMI Plans

To display the available EMI plans, use the Razorpay checkout helper methods to fetch and display the details of the EMI plans. You can use the event ready, as shown below:

<CodeGroup>
  ```javascript Request theme={null}
  var razorpay = new Razorpay(...); // as before

      /**
         * The above code remains the same.
         * You can fetch the available EMI plans by adding the below code in your options.
         */
  razorpay.once('ready', function() {
    console.log(razorpay.methods.emi_plans);
    console.log(razorpay.methods.netbanking);
  })
  ```

  ```json Response theme={null}
  {
    "HDFC": {
      "min_amount": 300000,
      "plans": {
        "3": 12,
        "6": 12,
        "9": 13,
        "12": 13,
        "18": 15,
        "24": 15
      }
    },
    "AMEX": {
      "min_amount": 500000,
      "plans": {
        "3": 15,
        "6": 15,
        "9": 15,
        "12": 15
      }
    }
    // etc..
  }
  ```
</CodeGroup>

`razorpay.methods.emi_plans`
: `string` Lists the EMI-supported banks with their respective interest rates.

`razorpay.methods.netbanking`
: `string` Contains the list of all banks and bank codes.

## Pay Later

```javascript Pay Later theme={null}
razorpay.createPayment({
  amount: 200000,
  currency: 'INR',
  email: 'gaurav.kumar@example.com',
  contact: '9111145678',
  order_id: 'order_DPzFe1Q1dEObDv',
  method: 'paylater',
  provider: <provider_name>
});
```

### Request Parameters

`method` *mandatory*
: `string` The payment method to be used by the customer to complete the payment. Here, the value must be `Pay Later`.

`provider` *mandatory*
: The Pay Later provider. Possible values:

* `lazypay`
* `paypal`

### Related Information

[EMI² Suite](/docs/payments/payment-gateway/emi²)
