Handy Tips
- In the requirements section of Documents API, depending upon the requirement, you can classify it into two types:
- Optional document
business_proof_of_identification.business_pan_url
This means as a sub-merchant you need to upload the business_pan_url document in order to get the optional requirement fulfilled.
- Selected optional document
individual_proof_of_address
This means as a merchant you can upload from ONE of the following groups, that is submit [aadhar_front ,aadhar_back] or [voter_id_front, voter_id_back] or [passport_front, passport_back]. Once all the documents from any ONE of the groups are uploaded, the optional requirement gets fulfilled.
- The products Payment Links and Payment Gateway have similar requirements. If a requirement is submitted through a product configuration for payment_gateway, the same will be applicable for other product configurations, such as payment_links, and vice versa.
Product Configuration Entity
Entity Parameters
id
: string The unique identifier of a product generated by Razorpay for a sub-merchant account. This id is used to fetch or update a product.
product_name
: string The product(s) to be configured. Possible values:
payment_gatewaypayment_links
tnc
: object It consists of the configuration for the accepted terms and conditions by the merchant for the requested product. If the terms and conditions are accepted by the user for the requested product, it would consist of following fields:
id
: string The unique identifier representing the acceptance of terms and conditions for a product by a user.
accepted
: boolean The flag that represents whether the terms and conditions are accepted by the user.
true: Terms and conditions are accepted by user.false: Terms and conditions are not accepted by user.
accepted_at
: integer The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.
activation_status
: string The status of the product activation.
requestedneeds_clarificationunder_reviewactivated_kyc_pendingactivatedsuspended
otp
: object OTP specific details of the merchant.
contact_mobile
: string The contact number for which the OTP details have been submitted.
Handy Tips
external_reference_number
: string Used to search the OTP verification logs on your (partner’s) system in case of an enquiry. Ideally, this is a reference number that you use to track OTP verification.
otp_submission_timestamp
: string The timestamp of OTP submission to user.
otp_verification_timestamp
: string The timestamp of OTP verification by partner.
configuration
: The following are the possible configurations:
payment_methods
: object The payment methods configured, such as, netbanking, UPI, Wallet and EMI.
upi
: object The UPI type payment method.
status
: string The status of UPI payment method.
instrument
: array The list of UPI instruments requested or enabled.
netbanking
: object The netbanking type payment method.
status
: string The status of the netbanking payment method.
instrument
: array The netbanking instrument object.
type
: string The type of netbanking payment method. Possible values:
- Retail
- Corporate
bank
: array The list of netbanking banks requested or enabled. Refer the Appendix page for netbanking bank codes.
wallet
: object The Wallet type payment method.
status
: string The status of the Wallet payment method.
instrument
: array The list of Wallet instruments requested or enabled.
emi
: string The EMI type payment method.
status
: string The status of EMI payment method.
instrument
: array The EMI instrument object.
type
: string The type of EMI payment method. Possible values:
card_emicardless_emi
partner
: array The list of EMI partners requested or enabled. Possible values:
- For
card_emi:debitandcredit. - For
cardless_emi:zestmoneyandearlysalary.
paylater
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thepaylaterpayment method.false: Does not enable thepaylaterpayment method.
instrument
: string The Paylater service provider. Possible values are:
epaylatergetsimpl
payment_capture
: object The payment capture settings object.
mode
: string The mode through which payment capture is done. Possible values:
automatic: Payments are auto-captured (default)manual: You have to manually capture payments using our Capture API or from the Partner’s Dashboard.
automatic_expiry
: numeric This denotes the time in minutes when the payment is in the authorized state. This is auto-captured.
manual_expiry
: numeric This denotes the time in minutes until you can manually capture payments in the authorized state.
- Must be equal to or greater than the
automatic_expire_periodvalue. - The default and the maximum value is 7200 minutes.
- The payments in the authorized state after the
manual_expiry_periodare auto-refunded.
settlements
: object The Settlement settings object.
account_number
: string The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316
ifsc_code
: string The IFSC associated with the bank account. For example, RATN0VAAPIS.
beneficiary_name
: string The name of the beneficiary associated with the bank account.
Handy Tip
refund
: object This denotes the payment refund settings.
default_refund_speed
: string Speed at which the refund is to be processed. Possible values are:
- normal: Indicates that the refund will be processed at the normal speed. By default, the refund will take 5-7 working days.
- optimum: Indicates that the refund will be processed at an optimal speed based on Razorpay’s internal fund transfer logic. That is:
- If the refund can be processed instantly, Razorpay will initiate the process irrespective of the payment method used to make the payment.
- If an instant refund is not made, Razorpay will initiate a refund that is processed at the normal speed. For example, payments made using debit cards, netbanking or unsupported credit cards.
checkout
: object The checkout form of the payment capture.
theme_color
: string The theme color for sub-merchant’s checkout page
logo
: string The logo of the sub-merchant’s business on the checkout page.
flash_checkout
: boolean The flagging options Enable or Disable for Razorpay’s Flash Checkout to securely save the card details of your customers.
notifications
: object This denotes the notifications settings.
email
: string The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.
whatsapp
: boolean The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.
sms
: boolean The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to false.
requested_configuration
: object The configuration of the product requested by the user that is yet to be set as active.
active_configuration
: object The configuration of the product that has been set as active.
requirements
: object The list of requirements to be enabled for this product or some of the configurations under this product.
field_reference
: string The field which is in issue or missing. The JSON key path in resolution URL.
resolution_url
: string The URL to address the requirement. The API endpoint to be used for updating missing fields or documents.
status
: string The status of the requirement.
reason_code
: string The reason code for showing in the requirement. Description will be sent only when reason code is "". Possible values are:
field_missingneeds_clarificationdocument_missing
description
: string This parameter is displayed when the reason_code is needs_clarification.
requested_at
: integer The Unix timestamp at which the product configuration is requested.
Sample Entity
PG Sample Entity
Request a Product Configuration
You can even accept terms and conditions for the requested product using these APIs.Handy Tips
PG Request
Path Parameter
account_id
: string The unique identifier of the sub-merchant account generated by Razorpay. For example, acc_HQVlm3bnPmccC0. This id is used to fetch or update a product. The product is created for this sub-merchant account id.
Request Parameters
product_name mandatory
: string The product(s) to be configured. Possible values:
payment_gatewaypayment_links
tnc_accepted optional
: boolean Pass this parameter to accept terms and conditions. Send this parameter along with the ip parameter when the tnc is accepted. Possible value is true which indicates acceptance of terms and conditions.
ip optional
: string The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the tnc_accepted parameter when the tnc is accepted.
Response Parameters
requested_configuration
: object The configuration of the product requested by the user that is yet to be set as active.
tnc
: object It consists of the configuration for the accepted terms and conditions by the merchant for the requested product. If the terms and conditions are accepted by the user for the requested product, it would consist of following fields:
id
: string The unique identifier representing the acceptance of terms and conditions for a product by a user.
accepted
: boolean The flag that represents whether the terms and conditions were accepted by the user.
true: Terms and conditions are accepted by user.false: Terms and conditions are not accepted by user.
accepted_at
: integer The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.
active_configuration
: object The configuration of the product that has been set as active.
payment_capture
: object The Payment Capture Settings Object
mode
: string The mode through which payment capture is done. Possible values:
automatic: Payments are auto-captured (default)manual: You have to manually capture payments using our Capture API or from the Partner’s Dashboard.
automatic_expiry
: numeric This denotes the time in minutes when the payment is in the authorized state. This is auto-captured.
manual_expiry
: numeric This denotes the time in minutes until you can manually capture payments in the authorized state.
- Must be equal to or greater than the
automatic_expire_periodvalue. - The default and the maximum value is 7200 minutes.
- The payments in the authorized state after the
manual_expiry_periodare auto-refunded.
settlements
: object The Settlement settings object.
account_number
: string The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316
ifsc_code
: string The IFSC associated with the bank account. For example, RATN0VAAPIS.
beneficiary_name
: string The name of the beneficiary associated with the bank account.
checkout
: object The checkout form of the payment capture.
theme_color
: string The theme color for sub-merchant’s checkout page.
logo
: string The logo of the sub-merchant’s business on the checkout page.
flash_checkout
: boolean The flagging options Enable or Disable for Razorpay’s Flash Checkout to securely save the card details of your customers.
refund
: object This denotes the payment refund settings.
default_refund_speed
: string Speed at which the refund is to be processed. Possible values are:
- normal: Indicates that the refund will be processed via the normal speed. By default, the refund will take 5-7 working days.
- optimum: Indicates that the refund will be processed at an optimal speed based on Razorpay’s internal fund transfer logic. That is:
- If the refund can be processed instantly, Razorpay will initiate the process irrespective of the payment method used to make the payment.
- If an instant refund is not made, Razorpay will initiate a refund that is processed at the normal speed. For example, payments made using debit cards, netbanking or unsupported credit cards.
notifications
: object This denotes the notifications settings.
email
: string The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.
whatsapp
: boolean The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.
sms
: boolean The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to false.
payment_methods optional
: object Details of the payment method you want to enable for the product.
netbanking:
object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thenetbankingpayment method.false: Does not enable thenetbankingpayment method.
instrument
: object Details regarding the bank. Possible value:
type
: string The type of bank. Possible values are retail and corporate.
bank
: string The bank code. Refer to the list of bank codes.
card
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thecardpayment method.false: Does not enable thecardpayment method.
instrument
: object Details regarding the card. Possible value:
type
: string Possible value is domestic.
issuer
: string The card issuer. Possible values for issuer are:
amexdiclmaestromastercardrupayvisa
wallet
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thewalletpayment method.false: Does not enable thewalletpayment method.
instrument
: string The wallet issuer. Possible values are:
airtelmoneyamazonpayjiomoneymobiwikmpesaolamoneypaytmpayzapppayumoneyphonepephonepeswitchsbibuddy
upi
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables theupipayment method.false: Does not enable theupipayment method.
instrument
: string The UPI service provider. Possible values are:
google_payupi
paylater
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thepaylaterpayment method.false: Does not enable thepaylaterpayment method.
instrument
: string The Paylater service provider. Possible values are:
epaylatergetsimpl
emi
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thepaylaterpayment method.false: Does not enable thepaylaterpayment method.
instrument
: object The EMI instrument object.
type
: string The type of EMI payment method. Possible values:
card_emicardless_emi
partner
: string The list of EMI partners requested or enabled. Possible values:
- For
card_emi:debitandcredit. - For
cardless_emi:zestmoneyandearlysalary.
requirements
: object The list of requirements to be enabled for this product or some of the configurations under this product.
field_reference
: string The field which is in issue or missing. The JSON key path in resolution URL.
resolution_url
: string The URL to address the requirement. The API endpoint to be used for updating missing fields or documents.
status
: string The status of the requirement. Possible values are:
optionalrequired
reason_code
: string The reason code for showing in the requirement. Possible values are:
field_missingneeds_clarificationdocument_missing
id
: string The unique identifier of the sub-merchant product account generated by Razorpay. For example, acc_prd_HEgNpywUFctQ9e. The product is created for this sub-merchant account id.
account_id
: string The unique identifier of the sub-merchant generated by Razorpay. For example, acc_HQVlm3bnPmccC0.
product_name
: string The product(s) to be configured. Possible values:
payment_gatewaypayment_links
activation_status
: string The status of the product activation.
requestedneeds_clarificationunder_reviewactivated_kyc_pendingactivatedsuspended
requested_at
: integer The Unix timestamp at which the product configuration has been requested.
Error Response Parameters
Know about the various error responses for this API.Update a Product Configuration
Use the following endpoint to update a product’s configuration: /accounts/:account_id/products/:product_idUse Cases
You can update the following details for Payment Gateway and Payment Links using the Update a Product Configuration API. However, whether the details can be updated or not depends upon the product activation status.-
OTP specific details: You can share OTP-specific details using the
otpobject. -
Settlement Bank Account Details: You can update the
settlementobject with the new bank account details based on the product activation status. -
Request Additional Payment Methods: You can request various payment methods and related instruments to be enabled using the
payment_methodsobject. However, you can request for only one payment method at a time. For example, if you want to enable HDFC Netbanking and Rupay Domestic Card payment methods, you should send two separate API requests. You cannot send a consolidated request using this API. -
Update Notifications Settings: You can update the email, WhatsApp and SMS settings using the
notificationsobject. -
Configure Checkout Features: You can change the checkout theme colour, add a logo and enable the saving of customer card details using the
checkoutobject. -
Configure Refund Speed: You can configure the default refund speed using the
refundobject. - Accept of Terms and Conditions: You can accept Razorpay terms and conditions.
Product Activation Status and Updates Permitted
Activation Status | Update Permitted
requested | You can update the details for all the fields.
needs_clarification | The fields you can update depend on the reason_code mentioned in the requirements object in the Request a Product Activation API: - document_missing or field_missing: You can update all the fields.
- needs_clarification: You can update only the specific field for which Razorpay is seeking clarification for.
under_review | You cannot update any field.
activated_kyc_pending | You cannot update any field.
activated | You cannot use this API to update any fields as your account is already active.
Update Settlement Account and Providing OTP Details
The settlement account details and OTP-specific details are provided in the sample code given below. Payment methods object is not used here.PG
Request Payment Methods
Given below is the Payment Gateway product sample code when you request for a specific payment method. Here thepayment_method object is used.
Path Parameters
account_id mandatory
: string The unique identifier of a sub-merchant account generated by Razorpay. For example, acc_HQVlm3bnPmccC0.
id mandatory
: string The unique identifier of a product generated by Razorpay. For example, acc_prd_HEgNpywUFctQ9e.
Request Parameters
otp conditional
: object OTP specific details of the merchant.
contact_mobile mandatory
: string The contact number for which the OTP details have been submitted.
Handy Tips
external_reference_number optional
: string Used to search the OTP verification logs on your (partner’s) system in case of an enquiry. Ideally, this is a reference number that you use to track OTP verification.
otp_submission_timestamp optional
: string The timestamp of OTP submission to user.
otp_verification_timestamp optional
: string The timestamp of OTP verification by partner.
notifications optional
: object This denotes the notifications settings.
email
: string The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.
whatsapp
: boolean The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.
sms
: boolean The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to false.
checkout optional
: object The checkout form of the payment capture.
theme_color
: string The theme color for sub-merchant’s checkout page
logo
: string The logo of the sub-merchant’s business on the checkout page.
flash_checkout
: boolean The flagging options Enable or Disable for Razorpay’s Flash Checkout to securely save the card details of your customers.
refund optional
: object This denotes the payment refund settings.
default_refund_speed
: string Speed at which the refund is to be processed. Possible values are:
- normal: Indicates that the refund will be processed at normal speed. By default, the refund will take 5-7 working days.
- optimum: Indicates that the refund will be processed at an optimal speed based on Razorpay’s internal fund transfer logic. That is:
- If the refund can be processed instantly, Razorpay will initiate the process irrespective of the payment method used to make the payment.
- If an instant refund is not made, Razorpay will initiate a refund that is processed at the normal speed. For example, payments made using debit cards, netbanking or unsupported credit cards.
settlements conditional
: object The Settlement settings object.
account_number
: string The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316
ifsc_code
: string The IFSC associated with the bank account. For example, RATN0VAAPIS.
beneficiary_name
: string The name of the beneficiary associated with the bank account.
tnc_accepted optional
: boolean Pass this parameter to accept terms and conditions. Send this parameter along with the ip parameter when the tnc is accepted. Possible value is true which indicates acceptance of terms and conditions.
ip optional
: string The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the tnc_accepted parameter when the tnc is accepted.
payment_methods optional
: object Details of the payment method you want to enable for the product.
netbanking:
object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thenetbankingpayment method.false: Does not enable thenetbankingpayment method.
instrument
: object Details regarding the bank. Possible value:
type
: string The type of bank. Possible values are retail and corporate.
bank
: string The bank code. Refer to the list of bank codes.
card
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thecardpayment method.false: Does not enable thecardpayment method.
instrument
: object Details regarding the card. Possible value:
type
: string Possible value is domestic.
issuer
: string The card issuer. Possible values for issuer are:
amexdiclmaestromastercardrupayvisa
wallet
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thewalletpayment method.false: Does not enable thewalletpayment method.
instrument
: string The wallet issuer. Possible values are:
airtelmoneyamazonpayjiomoneymobiwikmpesaolamoneypaytmpayzapppayumoneyphonepephonepeswitchsbibuddy
upi
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables theupipayment method.false: Does not enable theupipayment method.
instrument
: string The UPI service provider. Possible values are:
google_payupi
paylater
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thepaylaterpayment method.false: Does not enable thepaylaterpayment method.
instrument
: string The Paylater service provider. Possible values are:
epaylatergetsimpl
emi
: object The payment method to be enabled.
enabled
: boolean Enables or disables the payment method. Possible values:
true: Enables thepaylaterpayment method.false: Does not enable thepaylaterpayment method.
instrument
: object The EMI instrument object.
type
: string The type of EMI payment method. Possible values:
card_emicardless_emi
partner
: string The list of EMI partners requested or enabled. Possible values:
- For
card_emi:debitandcredit. - For
cardless_emi:zestmoneyandearlysalary.
Error Response Parameters
Know about the various error responses for this API.Fetch a Product Configuration
Use the following endpoint to retrieve the details of a product for a given sub-merchant’s account: /accounts/:account_id/products/:product_idPG Request
Path Parameters
account_id mandatory
: string The unique identifier of a sub-merchant account generated by Razorpay. For example, acc_HQVlm3bnPmccC0.
id mandatory
: string The unique identifier of a product generated by Razorpay. For example, acc_prd_HEgNpywUFctQ9e.