Skip to main content

Fetch Payment Methods

Use the Fetch Payment Methods API to fetch the payment methods available for your account. Below are the sample payloads for each payment method.

Bank Transfer

This payment method allows you to display your Customer Identifier details on the checkout. Your customers can make online bank transfers to this account.
Feature RequestThis is an on-demand feature. Please raise a request with our Support team to get this feature activated on your Razorpay account.to get this feature activated on your account.There are no specific request parameters to be passed. Instead, you must pass the fetchVirtualAccount method for your Customer Identifier to get created and the details to appear on the checkout. Know more about integrating bank transfer with Custom Checkout.

Debit and Credit Card

In this case, data.method should be specified as card. Other required fields:
  • card[name]
  • card[number]
  • card[cvv]
  • card[expiry_month]
  • card[expiry_year]
Example
If you want to securely store the customer’s card details as network tokens, know about Saved Cards feature.

EMI on Credit and Debit Cards

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.
Use the code given below:
Example

Fetch EMI Plans

To display the available EMI plans, use the Razorpay checkout helper methods to fetch the details of the EMI plans and display them. You can use the event ready, as shown below:
Request
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.

Calculate EMI

You can use the function Razorpay.emi.calculator to calculate instalment amounts as shown below:
Request
The below code will calculate EMI for a principal amount of 10000(in paisa), that is, ₹100 over 12 months with an annual interest rate of 9%:
Request
Handy TipsThe above code does not do any unit conversion of the principal amount. The returned amount will have the same unit as the principal. If the principal amount is in paisa, the returned EMI amount will also be in paisa.

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.
Feature RequestThis is an on-demand feature. Please raise a request with our Support team to get this feature activated on your Razorpay account.to get this feature activated on your account.Use the code given below:
Example
Possible values for provider:
  • hdfc
  • icic
  • idfb
  • kkbk
  • zestmoney
  • earlysalary
  • walnut369
  • shopse
  • snapmint

Netbanking

When method is netbanking, you need to pass an additional field bank as shown below:
Example
You can list the available banks using a drop-down for customers. You can obtain a list of banks using the Fetch Supported Methods API.

Wallet

When method is wallet, you need to pass an additional field wallet as shown below:
Example
Possible values for wallet:

PhonePe Switch

You can accept in-app payments from your customers transacting in PhonePe Switch. Know more about PhonePe Switch Integration.

UPI

UPI Collect Flow DeprecatedAccording to NPCI guidelines, the UPI Collect flow is being deprecated effective 28 February 2026. Customers can no longer make payments or register UPI mandates by manually entering VPA/UPI id/mobile numbers.Exemptions: UPI Collect will continue to be supported for:
  • MCC 6012 & 6211 (IPO and secondary market transactions).
  • iOS mobile app and mobile web transactions.
  • UPI Mandates (execute/modify/revoke operations only)
  • eRupi vouchers.
  • PACB businesses (cross-border/international payments).
Action Required:
  • If you are a new Razorpay user, use UPI Intent.
  • If you are an existing Razorpay user not covered by exemptions, you must migrate to UPI Intent or UPI QR code to continue accepting UPI payments. For detailed migration steps, refer to the migration documentation.

Intent Flow

You can avail the UPI Intent flow by integrating with the Google Pay SDK.

Intent Flow for Mobile Web

Using Razorpay, you can let your customers make UPI Intent payments on your mobile website. Customers can then proceed with the payment without navigating away from your mobile website. This leads to a faster checkout experience with higher success rates.Know how to integrate with UPI Intent on Mobile Web.
Feature EnablementThe UPI Intent feature is usually available by default. If you are unable to access this feature, raise a request with our Support team to get this enabled on your Razorpay account.

Collect Flow

Customers enter their vpa or phone number on your UI and complete the payments on their respective UPI apps in collect flow.You can now pass the vpa parameter in the upi array as shown below:
Example
You will need to collect the Virtual Payment Address (VPA) from the user. This should be a text field that validates against the regex ^.+@.+$.

UPI Payments Using Phone Number

You can accept UPI payments using phone number for the collect flow. Follow the steps given below:
  1. You must collect the customer’s phone number from your end.
  2. Check if any vpa is associated with the given number and get the vpa_token for that number using the sample code given below:
    JavaScript
  3. Pass the vpa_token parameter in the upi array as shown below:
    JavaScript
You can accept UPI payments using the collect flow. Know more about Validate VPA and Saved VPA.

UPI QR Code

You can display a UPI QR Code at checkout. Customers can scan this QR code using a UPI app on their mobile phones to complete the payment. Razorpay supports two flows for UPI QR payments:
  • Non-Redirect Flow (Beta): Displays the QR directly on your checkout page.
  • Redirect Flow: Redirects customers to Razorpay’s payment page to display the QR.

Flow Comparison

Aspect | Non-Redirect Flow | Redirect Flow

Request | Create payment with flow: 'qr'. | Create payment with upi: { qr: true }.

Response | Returns UPI intent URL via event. | Redirects to Razorpay page.

QR Display | You convert URL to QR and display on your page. | On Razorpay’s payment page.

Customer Experience | Stays on your checkout page. | Leaves your checkout page.

Implementation Effort | Requires QR generation library. | Simple - no QR generation needed.

Feature Availability | Requires approval. | Available to all businesses.

Non-Redirect Flow (Beta)

Display UPI QR codes directly on your checkout page without redirecting customers to Razorpay’s payment page. This flow allows you to:
  • Receive a UPI intent URL from Razorpay.
  • Convert it to a QR code on your checkout page.
  • Keep customers on your site for a seamless experience.
Feature Enablement
  • This is an on-demand feature. Raise a request with your account manager to get this feature enabled on your account.
  • This flow is available only for desktop websites.
Add the flow parameter to enable non-redirect flow:
Request

Request Parameters

amount mandatory : integer Payment amount in the smallest currency subunit. For example, if the amount to be charged is ₹100.00, enter 10000 in this field. method mandatory : string The payment method selected by the customer. Must be set to upi for UPI QR payments. email optional : string Email address of the customer. contact optional : string Phone number of the customer. app optional : string UPI app preference for payment. Set to any to allow customers to use any UPI app for payment. flow optional : string Determines the UPI QR flow type. Set to qr to enable non-redirect flow where the UPI intent URL is returned instead of redirecting to Razorpay’s payment page. If undefined or any other value, the standard redirect flow is used.

Response Parameters

qr_url : string UPI intent URL that needs to be converted to a QR code image for display on your checkout page. The value is undefined when the status is expired. expires_on : integer Unix timestamp indicating when the QR code will expire. The QR code is valid for 10 minutes from creation. status : string Current status of the UPI QR code. Possible values:
  • created: QR code is active and can be scanned for payment.
  • expired: QR code has expired and cannot be used for payment.

Redirect Flow

With this flow, customers are redirected to Razorpay’s payment page where the QR code is displayed.
Sample QR Code on CheckoutEnsure that you invoke/activate the QR Code only after a user clicks Show QR Code.Pass the qr parameter in the upi array as shown below:
Example
timeout optional : integer Indicates the time (in minutes) after which the QR code will expire. Possible values are between 1 to 10. The default value is 10.
Watch Out!Some browsers may pause JavaScript timers when the user switches tabs, especially in power saver mode. This can cause the checkout session to stay active beyond the set timeout duration.
Handy TipsFor the best experience, show QR codes only on desktops.

Pay Later

You can enable your customers to make payments using the Pay Later service offered by various third-party providers such as:

Provider | Provider Code | Availability | Minimum Transaction | Maximum Transaction

LazyPay | lazypay | Requires Approval | ₹1 | ₹10,000

PayPal | paypal | Requires Approval | ₹100 | Based on the customer’s approved limit. Before you begin, follow the steps given below:
  • Contact our Support Team to get this payment method enabled for your account.
  • Customers should be registered account holders of the Pay Later service providers.

Sample Code

After creating an order and obtaining the customer’s payment details, send the information to Razorpay to complete the payment. You can do this by invoking createPayment and passing method=paylater and provider=. Available providers with provider code:
  • LazyPay: lazypay
  • PayPal: paypal
Example

Emandate

You can accept recurring payments from your customers using emandate, card or upi as the method. For more information about authorisation and subsequent payments, refer to the Recurring Payments documentation.
Feature RequestThis is an on-demand feature. Please raise a request with our Support team to get this feature activated on your Razorpay account.to get this feature activated on your account.

Workflow

2

Step 2

Create an Order with method as emandate, nach or upi.
3

Step 3

Collect authorisation transaction.
  • Using custom checkout.
  • Using an authorisation link.
4

Step 4

Verify Tokens.
5

Step 5

Charge subsequent payments.
Know more about Recurring Payments APIs.

Collect Authorisation Transaction

Use the sample checkout code given below:
Emandate (Netbanking)

CRED

To add CRED as a payment method, you need to:
  • Pass the app_offer parameter in Orders API.
  • Pass the method and provider parameters in Create Payment Method.

1. Pass app_offer Parameter in Order

You must create an order using Orders API. In the response, you obtain an order_id which you must pass to Checkout. /orders
Curl

Request Parameters

amount mandatory : integer The transaction amount, expressed in the currency subunit, such as paise (in case of INR). For example, for an actual amount of ₹299.35, the value of this field should be 29935. currency mandatory : string The currency in which the transaction should be made. See the list of supported currencies. Default is INR. app_offer optional : boolean Allow/do not allow customers to use CRED coins to make payments. This is used to prevent double discounting scenarios where customers have already availed discounts using voucher/coupon and you do not want them to redeem Coins as well. Possible values:
  • true: Customer not allowed to use CRED coins to make payment.
  • false (default): Customer can use CRED coins to make payment.
receipt optional : string Your receipt id for this order should be passed here. Maximum length is 40 characters. notes optional : object Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.

2. Pass Method and Provider Parameters During Payment Creation

Cred

Request Parameters

Along with the other checkout options, you must pass: method mandatory : string The method used to make the payment. Here, it must be app. provider mandatory if method=app : string Name of the PSP app. Here, it must be cred.