List of APIs
Given below is the list of APIs:[Tokenise cards](#1-tokenise-cards).
[Initiate payment using token saved with Razorpay](#2-initiate-paym...
[Initiate Payment on Razorpay with token created on another PA/PG](...
[Save card to vault token while making a payment on Razorpay](#4-sa...
1. Tokenise Cards
You can save customer card details in the form of tokens and then use these tokens to accept payments from customers.Token Entity
Given on the right is a sample entity.id
: string The unique identifier of the Razorpay token.
entity
: string The name of the entity. Here, it is token.
customer_id
: string This is the Razorpay customer id. You can create token for a specific customer using their customer id. Use the Customers API to create customer id. This is an optional parameter.
method
: string The type of object that was tokenised. Currently, it only supports card.
card
: object The customer card details.
last4
: string The last 4 digits of the tokenised card.
network
: string The card network. Possible values:
VisaRuPayMasterCardAmerican ExpressDiners ClubMaestroJCBUnion Pay
issuer
: string The 4-character issuer code unique to each issuing bank in India. For example, HDFC, SBIN and so on.
type
: string The type of card. Possible values:
creditdebitprepaid
international
: boolean Indicates whether the card is international (issued outside India) or domestic. Possible values:
true: The card is international.false: The card is domestic.
emi
: boolean Indicates whether the card is eligible for EMI payments or not. Possible values:
true: The card is eligible for EMI payments.false: The card is not eligible for EMI payments.
sub_type
: string The card sub_type for the given IIN. Pricing of card payment may change on the basis of card type. Possible values:
consumerbusinessunknown
compliant_with_tokenisation_guidelines
: boolean Indicates whether the token is compliant with the RBI guidelines. Possible values:
true: The token is compliant with RBI guidelines.false: The token is not compliant with RBI guidelines.
expired_at
: string The expiry timestamp for the token.
status
: string The overall status for the token. Possible values:
initiated: The token attains this state after Razorpay has received the tokenisation request and is working with token service providers for creating the token.active- The token attains this state if the token is activated for at least one of the token service providers.suspended- The token attains this state if:- The token is not activated for any one of the token service providers.
- The token is suspended for at least one of the token service providers.
deactivated- The token attains this state if the token is not active/suspended for any one of the token service providers and is deactivated for at least one token service provider. Know about the complete list of token states.
status_reason
: string When the token reaches the deactivated state, this field will provide the reason for deactivation. Possible values:
expireddeactivated_by_bank
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”.
1.1 Create a Token
A token is an alias for the actual card number. Use this API to save your customer’s card. As per RBI guidelines, customer consent and AFA (3ds authentication) are mandatory for saving a card.- This API should be called only after authentication is complete. Authentication can be processed through any payment processor.
- You will receive a token as a response.
1.2 Fetch Card Properties of an Existing Token
Use this API to retrieve card details such as network, issuer and so on for a given token. /tokens/fetchPath Parameter
id mandatory
: string The unique identifier of the token.
1.3 Delete a Token
Use the following API to delete a token already saved with Razorpay. /tokens/deleteRequest Parameter
id mandatory
: string The unique identifier of the token to be deleted.
2. Initiate Payment using Token saved with Razorpay
Use this API to make the payment when a customer initiates a subsequent payment using the saved card. Pass the token ID from the previous API request to initiate a payment using the token. /payments/create/jsonRequest 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.
token mandatory
: string The unique identifier of the token.
card mandatory
: object The details of the card.
cvv mandatory
: string The card’s cvv.
- 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
cvvparameter entirely, or pass anullor 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.
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”.
3. Initiate Payment on Razorpay with Token Created on another PA/PG
Use this API to create a payment with token saved on another PA/PG. /payments/create/jsonRequest 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.
number mandatory
: string If payment is made using an actual card, then this field should have the entire actual card number. If card number has spaces, they will be trimmed by Razorpay for further processing. If payment is made using a network token, then this field should have the token number. If token number has spaces, they will be trimmed by Razorpay for further processing.
expiry_month mandatory
: string If payment is made using an actual card, then this field should have the 2-digit expiry month for the card. If payment is made using a network token, then this field should have the 2-digit expiry month for the token.
expiry_year mandatory
: string If payment is made using an actual card, then this field should have the 2 or 4-digit expiry year for the card. If payment is made using a network token, then this field should have the 2 or 4-digit expiry year for the token.
cryptogram_value mandatory
: string The cryptogram value for the token. This will be provided by the entity which provided the token. This field is mandatory if tokenised_card=true.
tokenised mandatory
: boolean Indicates if the payment is made using tokenised card or actual card. Possible values:
true: Passtruewhen you are making the payment using a token.false(default): Passfalsewhen you are making the payment using a card.
token_provider mandatory
: string The name of the aggregator that provided the token. Possible values:
amexaxis_migscashfreeccavenuecybersourcefirst_datafsshdfcmpgspaysecurepaytmpayuzakpay
cvv mandatory
: string The card’s cvv.
- 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
cvvparameter entirely, or pass anullor 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.
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”.
4. Save Card to Vault Token While Making a Payment on Razorpay
If you are using Razorpay to process the first payment from a new card, do not call the tokenisation API. Instead, initiate the existing Razorpay Payment API, with an additional parametersave=true. This avoids two API requests and processes payments faster.
Use the following API to save card details while making a payment:
/payments/create/json
Fetch a Payment API for Token Information
The token will be created only if the cardholder successfully completes 3ds authentication. Use the Fetch Payment API to fetch the token. /payments/{pay_id}Path Parameter
id mandatory
: string The unique identifier of the payment.