1.1. Using Razorpay Standard Checkout🔗
To create an authorization transaction using the Razorpay Standard Checkout, you need to:
1.1.1. Create a Customer🔗
Razorpay links recurring tokens to customers via a unique identifier. This unique identifier for the customer is generated using the Customer API.
You can create customers with basic details such as email
and contact
and use them for various Razorpay offerings. Know more about Customers.
You can create a customer using the below endpoint.
Once a customer is created, you can create an order for the authorization of the payment.
Request Parameters🔗
name
mandatorystring
The customer's name. For example,Gaurav Kumar
.email
optionalstring
The customer's email address. For example,gaurav.kumar@example.com
.contact
optionalstring
The customer's phone number. For example,9876543210
.fail_existing
optionalstring
If a customer with the same details already exists, the request throws an exception by default. You can pass an additional parameterfail_existing
to get the details of the existing customer in the response. Possible values:0
- fetch details of existing customer1
- throw the exception error (default)
notes
optionalobject
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.2. Create an Order🔗
The Orders API allows you to create a unique Razorpay order_id
, for example, order_1Aa00000000001
, that would be tied to a payment. This order_id
has a 1:1 mapping with the order created for the authorization payment at your end. Know more about Razorpay Orders.
Use the below endpoint to create an order.
You can create a payment against the order_id
once an order is created.
Download and Upload the Pre-filled NACH Form:
Once the order is created, the pre-filled form must be downloaded, signed by your customer and uploaded back to Razorpay to complete the transaction.
You receive the following parameters as part of the response:
prefilled_form
- The link from where you can download the pre-filled NACH form.
upload_form_url
- The link where the NACH form should be uploaded once it is signed by the customer.
Request Parameters🔗
amount
mandatory-
integer
Amount in currency subunits. For Paper NACH, the amount has to be0
. currency
mandatory-
string
The 3-letter ISO currency code for the payment. Currently, we only supportINR
. method
mandatory-
string
The authorization method. In this case the value will benach
. customer_id
mandatory-
string
The unique identifier of the customer, who is to be charged. For example,cust_D0cs04OIpPPU1F
. receipt
optional-
string
A user-entered unique identifier for the order. For example,rcptid #1
. This parameter should be mapped to theorder_id
sent by 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”
. token
-
Details related to the authorization such as max amount, bank account information and NACH information.
auth_type
mandatory-
string
In this case, it will bephysical
. bank_account
-
Customer's bank account details that will be printed on the NACH form.
account_number
mandatorystring
Customer's bank account number. For example11214311215411
.ifsc_code
mandatorystring
Customer's bank IFSC. For exampleUTIB0000001
.beneficiary_name
mandatorystring
Customer's name. For example,Gaurav Kumar
.account_type
optionalstring
Customer's bank account type. Possible values:savings
(default)current
cc
(Cash Credit)nre
(SB-NRE)nro
(SB-NRO)
max_amount
optional-
integer
Use to set the maximum amount per debit request. The value can range from500
-1000000000
(1cr, default value). expire_at
optional-
integer
Timestamp, in Unix, that specifies when the registration link should expire. The value can range from the current date to 01-19-2038 (2147483647
). nach
-
Additional information to be printed on the NACH form that your customer will sign.
form_reference1
optionalstring
A user-entered reference that appears on the NACH form.form_reference2
optionalstring
A user-entered reference that appears on the NACH form.description
optionalstring
A user-entered description that appears on the hosted page. For example,Form for Gaurav Kumar.
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”
.
Authorization transaction + auto-charge first payment:
You can register a customer's mandate AND charge them the first recurring payment as part of the same transaction. Refer to the Paper NACH section under Registration and Charge First Payment Together for more information.
1.1.3. Create an Authorization Payment🔗
After you create an order, you have to create an authorization payment. To create an authorization payment:
- Download the Paper NACH form and send it to the customers.
- Ask the customers to fill the form and either
- Upload via Checkout.
- Send it to you. You upload the received form via the create NACH File API.
The acceptable image formats are jpeg, jpg and png. Maximum accepted size is 6 MB.
1.1.3.1 Upload the NACH File via Checkout🔗
Handler Function vs Callback URL
- Handler Function
When you use the handler function, the response object of the successful payment (razorpay_payment_id
,razorpay_order_id
andrazorpay_signature
) is submitted to the Checkout Form. You need to collect these and send them to your server. - Callback URL
When you use a Callback URL, the response object of the successful payment (razorpay_payment_id
,razorpay_order_id
andrazorpay_signature
) is submitted to the Callback URL.
Additional Checkout Fields🔗
The following additional parameters must be sent along with the existing checkout options as part of the authorization transaction.
customer_id
mandatorystring
Unique identifier of the customer created in the first step.order_id
mandatorystring
Unique identifier of the order created in the second step.recurring
mandatoryinteger
. In this case, the value has to be1
.
1.1.3.2 Upload the NACH File via API🔗
Error Reasons🔗
To learn about errors, refer to the FAQ Upload the NACH File section.