Batch Operations
Create Recurring Payments using the batch upload feature from the Razorpay Dashboard.
You can
and in bulk using the batch feature available from the Razorpay Dashboard. You can check the status of the bulk action in the respective batch reports.The following table lists the various states of a batch file:
You can create registration links in bulk using the Batch Upload feature.
Handy Tips
- You can upload batch files in either in the
.xlsx
or the.csv
format. - The maximum file size is 55MB and 5,00,000 rows.
- Ensure you enter the amount in paise. For example, if the amount is ₹1,000, you should enter the value as
100000
. - The links are processed in the same sequence as listed in the file.
- Do not modify the column headers. Modifying the column headers causes the batch upload to fail.
To create a registration link:
- Log in to the .
- Under PAYMENT PRODUCTS, navigate to Subscriptions → Batch Upload → Upload New Batch → Batch Registration Links.
- Download the .
- Add the required data. Know more about the Batch Fields from the .
- Upload the file to the Dashboard.
- Select the relevant notification options, SMS and/or Email.
- Click Create.
Watch this video to know how to create registration links using the batch feature from the Razorpay Dashboard.
The following table lists the fields required to create a registration link:
name
optional
The customer's name. For example, Gaurav Kumar
.
mandatory
The customer's email address. For example, gaurav.kumar@example.com
.
phone
mandatory
The customer's contact number. For example, 9876543210
.
amount
mandatory if method = card/upi
The registration amount you want to charge the customer in paise.
- For Card, the minimum value is 100 (that is ₹1).
- For Emandate and NACH, the authorization value is 0.
Auto-charge First Payment
You can choose to auto-charge the customer an initial payment immediately after authorisation by entering any value greater than 0. For example, if you enter 100000, the customer is auto-charged ₹1,000 as soon as the token is confirmed. - For UPI, the minimum value is 100 (that is ₹1).
currency
mandatory if amount is provided
The 3-letter ISO currency code for the payment. Currently, only INR
is allowed.
method
mandatory
The payment method to be authorized. This can be:
emandate
card
nach
upi
token_expiry_by
optional
The date and time of expiry for a mandate.
Minimum value is 1 day. Defaults to 30 years
for Emandate and UPI. The maximum value you can set is 30 years
from the current date. Any value beyond this will throw an error. Supported formats:
- DD/MM/YYYY HH:mm:ss (For example, 31/12/2019 00:59:59)
- DD/MM/YYYY HH:mm
- DD/MM/YYYY
token_max_amount
optional
Emandate, NACH and UPI only
. Maximum amount for the token (in paise).
- For emandate:
- Default value is
9999900
(₹99,999). - Minimum value is
500
(₹5). - Maximum value is is
1000000000
(₹1,00,00,000).
- Default value is
- For Paper NACH:
- Default value is
10000000
(₹1 lac). - Minimum value is
500
(₹5). - Maximum value is
1000000000
(₹1 cr).
- Default value is
- For UPI:
- Default value is
500000
(₹5,000). - Minimum value is
100
(₹1). - Maximum value is
500000
(₹5,000).
- Default value is
frequency
mandatory if method = upi
The frequency at which you can charge your customer. Possible values:
daily
weekly
monthly
quarterly
yearly
fortnightly
bimonthly
half_yearly
as_presented
auth_type
mandatory if mehtod =emandate and nach
Emandate, UPI and NACH only
. The payment authorisation type. Possible values:
netbanking
ordebitcard
for emandate. Leave this blank if you want to allow the customer to select their preferred option when making the payment.physical
for NACH.
bank
mandatory if method = nach
Emandate and NACH only
. Bank code to preselect a bank. For example, HDFC
.
You can fetch bank codes by firing the following API as a GET request: https://<YOUR_KEY_ID>@api.razorpay.com/v1/methods
.
account_holder_name
mandatory if method = nach and upi
Emandate, UPI and NACH only
. Name of the account holder. For example, Gaurav Kumar
. This field is mandatory for the UPI method only if you have enabled the TPV functionality. Please contact our
ifsc
mandatory if method = emandate, nach and upi
Emandate, UPI and NACH only
. The bank's IFSC. For example, HDFC0001234
. This field is mandatory for the UPI method only if you have enabled the TPV functionality. Please contact our
account_number
mandatory if method = emandate, nach and upi
Emandate, UPI and NACH only
. Customer's bank account number. For example, 11214311215411
. This field is mandatory for the UPI method only if you have enabled the TPV functionality. Please contact our
account_type
mandatory if method = emandate, nach and upi
Emandate, UPI and NACH only
. Bank account type. This field is mandatory for the UPI method only if you have enabled the TPV functionality. Please contact our
savings
current
receipt
optional
A user-entered unique identifier for the order. For example, Receipt No. 1
. This parameter should be mapped to the order_id
sent by Razorpay.
description
mandatory
A user-entered description for the registration link. For example, 12 p.m. Meals
.
link_expiry_by
optional
Date and time of expiry for the registration link. Supported format DD/MM/YYYY. For example, 17/12/2020
.
notes[custom 1]
optional
Key-value pair that can be used to store additional information about the entity. You can add up to 5 custom notes in the following format:
- notes[portfolio id]
- notes[transaction id]
Bank Details
For Emandate, you should provide all the required bank details or leave all the fields blank. Following are the required bank details:
bank
account_holder_name
ifsc
account_number
account_type
If you enter details for a few fields and leave the other blank, will lead to failure.
After a batch file is processed, you can download the batch report from the Razorpay Dashboard. Click the batch_id to view details of how many rows were uploaded, how many rows were processed successfully and how many rows failed.
Click Download Report to download the report. This report has the following additional fields that give you information about the authorisation link or the reason for failure.
Status
The status of the authorisation link. Possible values:
success
failed
authorization_link_id
The unique identifier for the authorisation link. For example, inv_E7vb0PqKa4VpBc
.
authorization_link
The short URL for the authorisation link. For example, https://rzp.io/i/Abcd5
.
link_status
The status of the authorisation link. For example, issued
.
created_at
Timestamp, in Unix format, when the authorisation link was created. For example, 1580134092
.
Error Code
The error code for the failure. For example, BAD_REQUEST_ERROR
.
Error Description
The reason for the error. For example:
Bank code provided is invalid.
expire_by should be at least 15 minutes after current time
The ifsc code field is required.
To charge tokens using the batch upload feature, you will first need the list of
for which recurring payments are to be created.Handy Tips
- You can upload batch files in either in the
.xlsx
or the.csv
format. - The maximum file size is 55MB and 5,00,000 rows.
- Ensure you enter the amount in paise. For example, if the amount is ₹1,000, you should enter the value as
100000
. - The links are processed in the same sequence as listed in the file.
- Do not modify the column headers. Modifying the column headers causes the batch upload to fail.
Once you have the list of tokens you can either:
- .
- .
Watch this video to know how to charge tokens immediately from the Razorpay Dashboard using the batch feature.
To charge tokens immediately:
- Log in to .
- Under PAYMENT PRODUCTS, navigate to Subscriptions → Batch Upload → Upload New Batch → Batch Recurring Payments.
- Download the .
- Add the required data. Know more about the Batch Fields from the .
- Upload the file to the Razorpay Dashboard.
- Select Process Now.
- Click Create.
You can schedule to charge tokens in bulk.
Watch this video to know how to schedule a charge on tokens from the Razorpay Dashboard using the bulk upload feature.
To schedule to charge tokens:
- Log in to .
- Under PAYMENT PRODUCTS, navigate to Subscriptions → Batch Upload → Upload New Batch → Batch Recurring Payments.
- Download the .
- Add the required data. Know more about the Batch Fields from the .
- Upload the file to the Razorpay Dashboard.
- Select Schedule for Later and select the date and time you want to charge the tokens. The schedule time should be at least 1 hour from the current time.
- Click Create.
The following table lists the fields required to charge a token:
token
mandatory
The unique identifier for the token. For example, token_1Aa00000000001
.
customer_id
mandatory
The unique identifier of the customer. For example, cust_1Aa00000000001
.
amount
mandatory
The amount, in paise, you want to charge the customer. For example, enter 69999
for ₹699.99.
currency
mandatory
The 3-letter ISO currency code for the payment. Currently, only INR
is allowed.
receipt
optional
A user-entered unique identifier for the order. For example, Receipt No. 1
. This parameter should be mapped to the order_id
sent by Razorpay.
description
optional
A user-entered description for the payment. For example, 12 p.m. Meals
.
notes[custom 1]
optional
Key-value pair that can be used to store additional information about the entity. You can add up to 5 custom notes in the following format:
- notes[portfolio id]
- notes[transaction id]
Once a batch file is processed, you can download the processed file from the Dashboard. Click the batch_id
to view details of how many rows were uploaded, how many rows were processed successfully and how many rows failed.
Click Download Report
to download the processed file. This file has the following additional fields that give you information about the authorization link or the reason for failure.
order_id
The unique identifier linked to the order for the payment. For example, order_E16Yt72tHs34li
.
payment_id
The unique identifier for the payment. For example, pay_E16YtBnEk38fAm
.
Error Code
The error code for the failure. For example, BAD_REQUEST_ERROR
.
Error Description
The reason for the error. For example, Payment amount exceeds the maximum amount allowed.
Was this page helpful?