Skip to main content
If you are a token requestor directly integrated with a payment network, you can consider one of these approaches:
  1. You are the Alt ID requestor: Before initiating the payment, you fetch the Alt ID from networks and process the payment with Razorpay using Alt ID details.
  2. Razorpay is the Alt requestor and payment processor: Razorpay will fetch the Alt ID from networks and process the payment. You can continue using our Create Payment APIs.
Handy Tips
The first approach is only possible for Visa, Mastercard, Amex and Diners payments. Razorpay will be the token and the Alt ID requestor for all Rupay payments.

Approach 1: You are the Alt ID Requestor

Use this API to make the payment when a customer initiates a payment. /payments/create/json
Request

Request Parameters

amount mandatory : integer The payment amount you want to collect from the customer. currency mandatory : string The 3-character ISO code of the currency. Here, it is INR. order_id mandatory : string The unique identifier of the order created for this payment. Create an order using the Orders API. email mandatory : string The customer’s email address. contact mandatory : string The customer’s phone number. method mandatory : string The payment method. Here, it is card. card mandatory : object The details of the card. expiry_month : integer The expiry month of Alt ID.
Handy Tips
For Visa, add the original card expiry month. expiry_year : integer The expiry year Alt ID.
Handy Tips
For Visa, add the original card expiry year. number mandatory : integer Alt ID. cryptogram_value : string The Alt cryptogram value. tokenised mandatory : boolean Indicates if the payment is made using tokenised card or actual card. Possible values:
  • true: Pass true when you are making the payment using a token.
  • false (default): Pass false when you are making the payment using an Alt ID.
token_provider mandatory : string The name of the aggregator that provided the token. Possible values:
  • Visa
  • Mastercard
  • Amex
  • Rupay
  • HDFC for Diners
cvv : string The card’s CVV number.

Approach 2: Razorpay as Alt ID Requestor

Use this API to make the payment when a customer initiates a payment.
Handy Tips
Approach 2 is applicable only for Visa, Mastercard, Diners, and Amex payments. If you are processing Rupay payments, you should initiate the payment request using plain card details. /payments/create/json
Request

Request Parameters

amount mandatory : integer Payment amount in the smallest currency sub-unit. For example, if the amount to be charged is 299, then pass 29900 in this field. currency mandatory : string Currency code for the currency in which you want to accept the payment. For example, INR for Alt ID payments. order_id mandatory : string Unique identifier of the Order generated in the first step. email mandatory : string Email address of the customer. The maximum length supported is 40 characters. contact mandatory : string Phone number of the customer. The maximum length supported is 15 characters, inclusive of country code. method mandatory : string Name of the payment method. Possible value is card. card mandatory : object Details associated with the card. number : string Unformatted card number. name : string Name of the cardholder. expiry_month : string Expiry month for the card in MM format. expiry_year : string Expiry year for the card in YY format. cvv : string CVV printed on the back of the card. user-agent mandatory : string The User-Agent header of the user’s browser. The default value will be passed by Razorpay if not provided by you. ip mandatory : string The customer’s IP address. authentication optional : object Details of the authentication channel. authentication_channel : string The authentication channel for the payment. Possible values:
  • browser (default)
  • app
browser mandatory : object Information regarding the customer’s browser. This parameter need not be passed when authentication_channel=app. java_enabled : boolean Indicates whether the customer’s browser supports Java. Obtained from the navigator HTML DOM object. Possible values:
  • true: Customer’s browser supports Java.
  • false: Customer’s browser does not support Java.
javascript_enabled : boolean Indicates whether the customer’s browser can execute JavaScript. Obtained from the navigator HTML DOM object. Possible values:
  • true: Customer’s browser can execute JavaScript.
  • false: Customer’s browser cannot execute JavaScript.
timezone_offset : integer Time difference between UTC time and the cardholder’s browser local time. Obtained from the getTimezoneOffset() method applied to the Date object. screen_width : integer Total width of the payer’s screen in pixels. Obtained from the screen.width HTML DOM property. screen_height : integer Obtained from the navigator HTML DOM object. color_depth : integer Obtained from the payer’s browser using the screen.colorDepth HTML DOM property. language : string Obtained from the payer’s browser using the navigator.language HTML DOM property. Maximum limit of 8 characters. notes optional : object Key-value object used for passing tracking info. Refer to Notes for more details. callback_url optional : string URL endpoint where Razorpay will submit the final payment status. referrer optional : string Referrer header passed by the client’s browser.