1.1. Using Razorpay APIs🔗
To create an authorization transaction using Razorpay APIs, you need to:
Handy Tips
For the Authorization Payment to be successful in a day (Example: 5th June), you should create an Order and the Authorization Transaction on the same day (5th June) before 11:59 pm.
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🔗
namemandatorystringThe customer's name. For example,Gaurav Kumar.emailoptionalstringThe customer's email address. For example,gaurav.kumar@example.com.contactoptionalstringThe customer's phone number. For example,9876543210.fail_existingoptionalstringIf a customer with the same details already exists, the request throws an exception by default. You can pass an additional parameterfail_existingto get the details of the existing customer in the response. Possible values:0- fetch details of existing customer1- throw the exception error (default)
notesoptionalobjectKey-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 the authorization transaction. To learn more about Razorpay Orders, refer to our detailed Order documentation.
Use the below endpoint to create an order.
You can create a payment against the order_id once it is generated.
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 Emandate section under Registration and Charge First Payment Together for more information.
Request Parameters🔗
amountmandatory-
integerAmount in currency subunits. For emandate, the amount has to be0. currencymandatory-
stringThe 3-letter ISO currency code for the payment. Currently, we only supportINR. payment_capturemandatory-
booleanDetermines whether tha payment status should be changed tocapturedautomatically or not. Possible values:true: Payments are captured automatically.false: Payments are not captured automatically. You can manually capture payments using the Manually Capture Payments API.
methodmandatory-
stringThe authorization method. In this case the value will beemandate. customer_idmandatory-
stringThe unique identifier of the customer, who is to be charged. For example,cust_D0cs04OIpPPU1F. receiptoptional-
string. A user-entered unique identifier for the order. For example,rcptid #1. This parameter should be mapped to theorder_idsent by Razorpay. notesoptional-
objectKey-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 and bank account information.
auth_typeoptional-
stringPossible values:netbankingdebitcardaadhaar
max_amountoptional-
integerThe maximum amount, in paise, that a customer can be charged in one transaction. The value can range from500-100000000. Defaults to9999900(₹99,999). expire_atoptional-
integerThe timestamp, in Unix format, till when you can use the token (authorization on the payment method) to charge the customer subsequent payments. Defaults to 10 years foremandate. The value can range from the current date to 31-12-2099 (4102444799). notesoptional-
objectKey-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”. bank_account-
Customer's bank account details that should be pre-filled on the checkout.
account_numberoptionalstringCustomer's bank account number.account_typeoptionalstringCustomer's bank account type. Possible values:savings(default value)current
ifsc_codeoptionalstringCustomer's bank IFSC. For exampleUTIB0000001.beneficiary_nameoptionalstringCustomer's name. For example,Gaurav Kumar.
notesoptional-
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 Emandate section under Registration and Charge First Payment Together for more information.
1.1.3. Create an Authorization Payment🔗
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_idandrazorpay_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_idandrazorpay_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_idmandatorystringUnique identifier of the customer created in the first step.order_idmandatorystringUnique identifier of the order created in the second step.recurringmandatoryinteger. In this case, the value has to be1.