Create an Authorisation Transaction
To create an authorisation transaction using the Razorpay APIs, you need to:1.1 Create a Customer
Razorpay links recurring tokens to customers using a unique identifier generated through the Customer API. You can create customers with basic information such asemail and contact and use them for various Razorpay offerings. The following endpoint creates a customer.
POST /customers
Sample Code
Sample Code
Request Parameters
Request Parameters
name
: string The name of the customer. For example, Gaurav Kumar.email
: string The email address of the customer. For example, gaurav.kumar@example.com.contact
: string The phone number of the customer. For example, 9876543210.fail_existing optional
: string The request throws an exception by default if a customer with the exact details already exists. You can pass an additional parameter fail_existing to get the existing customer’s details in the response. Possible values:1(default): If a customer with the same details already exists, throws an error.0: If a customer with the same details already exists, fetches details of the existing customer.
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.2 Create an Order
Use the Orders API to create a unique Razorpayorder_id that is associated with the authorisation transaction for a one time mandate. To create a one-time mandate, pass the value of the frequency parameter as one_time. The following endpoint creates an order.
POST /orders
Request Parameters
Request Parameters
amount mandatory
: integer Amount in currency subunits. The maximum amount that can be blocked is ₹10,000.currency mandatory
: string The 3-letter ISO currency code for the payment. Currently, we only support INR.customer_id mandatory
: string The unique identifier of the customer. For example, cust_4xbQrmEoA5WJ01.method mandatory
: string The authorisation method. Here, it is upi.receipt optional
: string A user-entered unique identifier of the order. For example, Receipt No. 1. You should map this parameter to the order_id sent by Razorpay.notesoptional
: object Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters each. For example, "note_key": "Beam me up Scotty”.token
: object Details related to the authorisation such as max amount, frequency and expiry information.max_amount mandatory
: integer The maximum amount that can be debited is ₹10,000.expire_at mandatory
: integer The Unix timestamp that indicates when the authorisation transaction must expire. The default and the maximum value allowed is 90 days.frequency mandatory
: string The frequency at which you can charge your customer. The value should be as_presented.type mandatory
: string Indicates the type of payment. Here, the possible value is single_block_multiple_debit.1.3 Create an Authorisation Payment
Create a payment checkout form for customers to make Authorisation Transaction and register their mandate. You can use the Handler Function or Callback URL.Additional Checkout Fields
customer_id mandatory
: string Unique identifier of the customer created in the first step.
order_id mandatory
: string Unique identifier of the order created in the second step.
recurring mandatory
: string Determines if the recurring payment is enabled or not. Possible values:
1: Recurring payment is enabled.preferred: Use this if you want to allow recurring payments and one-time payment in the same flow.
Error Response Parameters
Given below is a list of possible errors you may face while making the authorisation payment.bad_request_error
bad_request_error
- Description: Invalid Mandate Sequence Number.
- Next Steps: Retry after some time during the valid cycle.
bank_account_invalid
bank_account_invalid
- Description: Payment failed because Account linked to VPA is invalid.
- Next Steps: Create a new mandate with the customer.
bank_account_validation_failed
bank_account_validation_failed
- Description: Payment was unsuccessful as the details are invalid. Please retry with the right details.
- Next Steps: Ask the customer to retry again.
bank_not_available
bank_not_available
- Description: Payment was unsuccessful as the bank linked to this UPI ID is temporarily unavailable. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
bank_technical_error
bank_technical_error
Temporary Bank Issue
Temporary Bank Issue
- Description: Payment was unsuccessful due to a temporary issue at your bank. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
Bank Declined
Bank Declined
- Description: Payment was unsuccessful as it was declined by your bank. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
Bank or Wallet Gateway Error
Bank or Wallet Gateway Error
- Description: Payment processing failed due to error at bank or wallet gateway.
- Next Steps: Retry after some time.
General Temporary Issue
General Temporary Issue
- Description: Payment was unsuccessful due to a temporary issue. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
Bank Services Halt
Bank Services Halt
- Description: Payment was unsuccessful due to a temporary halt of services at this bank.
- Next Steps: Retry after some time.
credit_to_beneficiary_failed
credit_to_beneficiary_failed
- Description: Payment was unsuccessful due to a temporary issue. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
debit_declined
debit_declined
- Description: Payment was unsuccessful as it was declined by remitter bank.
- Next Steps: Create a new mandate with the customer.
debit_instrument_blocked
debit_instrument_blocked
- Description: Payment was unsuccessful as the account linked to this UPI ID is blocked. Try using another account.
- Next Steps: Create a new mandate with the customer.
duplicate_mandate_request
duplicate_mandate_request
- Description: Duplicate mandate request. Please try again with another mandate request.
- Next Steps: Please try again with another mandate request.
gateway_technical_error
gateway_technical_error
Bank or Wallet Gateway Error
Bank or Wallet Gateway Error
- Description: Payment processing failed due to error at bank or wallet gateway.
- Next Steps: Retry after some time.
Temporary Issue with Money Deduction
Temporary Issue with Money Deduction
- Description: Payment was unsuccessful due to a temporary issue. If money got deducted, reach out to the seller.
- Next Steps: Retry after some time.
incorrect_pin
incorrect_pin
- Description: You have entered an incorrect PIN on the UPI app. Please retry with the correct PIN.
- Next Steps: Ask the customer to retry with correct PIN.
insufficient_funds
insufficient_funds
- Description: Transaction failed due to insufficient funds.
- Next Steps: Ask the customer to add balance to their account and retry.
invalid_request
invalid_request
- Description: Payment processing failed due to error at bank or wallet gateway.
- Next Steps: Retry after some time.
invalid_response_from_gateway
invalid_response_from_gateway
- Description: Payment was unsuccessful due to a temporary issue. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
invalid_transaction_beneficiary
invalid_transaction_beneficiary
- Description: Beneficiary address resolution failed. Please try again after some time.
- Next Steps: Please try again after some time.
invalid_vpa
invalid_vpa
- Description: You have entered an incorrect UPI ID. Please retry with the correct UPI ID.
- Next Steps: Ask the customer to retry with a valid VPA.
issuer_dispatch_failed
issuer_dispatch_failed
- Description: Payment failed due to some issue at the issuer bank. Please try again after some time.
- Next Steps: Please try again after some time.
limit_exceeded_remitting_bank
limit_exceeded_remitting_bank
- Description: Limit exceeded for remitter bank. Please ask customer to try with another bank account.
- Next Steps: Please ask customer to try with another bank account.
mandate_debit_beyond_psp_amount_cap
mandate_debit_beyond_psp_amount_cap
- Description: Debit amount is beyond payer PSP specified amount cap. Please reduce the amount and try again.
- Next Steps: Please reduce the mandate amount to match customer PSP.
mandate_request_limit_breached
mandate_request_limit_breached
- Description: Maximum number of mandate creation requests exceeded for customer’s bank account. Please wait for some time before initiating new mandate creation requests.
- Next Steps: Please wait for some time before initiating new mandate creation requests.
mobile_number_invalid
mobile_number_invalid
- Description: Registered Mobile number linked to the account has been changed or removed.
- Next Steps: Create a new mandate with the customer.
nature_of_debit_not_allowed
nature_of_debit_not_allowed
- Description: Nature of debit not allowed in customer’s account. Please ask the customer to use a different bank account.
- Next Steps: Please ask the customer to use a different bank account.
no_financial_address_record_found
no_financial_address_record_found
- Description: No financial address record found for this VPA. Please ask customer to try with another bank account.
- Next Steps: Please ask customer to try with other bank account.
no_original_request_found
no_original_request_found
- Description: No mandate details were found in the record during debit. Please try after some time.
- Next Steps: Please try after some time.
payment_collect_request_expired
payment_collect_request_expired
- Description: Payment was unsuccessful as you could not pay with the UPI app within time.
- Next Steps: Retry after some time.
payment_declined
payment_declined
Bank Declined Payment
Bank Declined Payment
- Description: Payment was unsuccessful as it was declined by your bank. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Ask the customer to retry with other account.
Customer Declined Payment
Customer Declined Payment
- Description: You have declined the payment request on the UPI app. Please retry when you are ready.
- Next Steps: Ask the customer to approve the payment.
payment_failed
payment_failed
- Description: Payment was unsuccessful due to a temporary issue. If amount got deducted, it will be refunded within 5-7 working days.
- Next Steps: Retry after 1 hour.
payment_pending
payment_pending
- Description: The status of your payment is pending. You can either wait or retry to pay successfully.
- Next Steps: Retry after some time.
payment_risk_check_failed
payment_risk_check_failed
- Description: Payment was unsuccessful as your account does not pass the risk checks done by your bank. Try using another account.
- Next Steps: Retry after some time.
payment_timed_out
payment_timed_out
- Description: Payment was unsuccessful as you could not complete it in time.
- Next Steps: Retry after some time.
pre_debit_notification_failed
pre_debit_notification_failed
- Description: Unable to Notify the Customer.
- Next Steps: Retry after some time.
remitter_dispatch_failed
remitter_dispatch_failed
- Description: Payment failed due to some issue at the customer’s. Please try again after some time.
- Next Steps: Please try again after some time.
request_timed_out
request_timed_out
General Timeout - Temporary Issue
General Timeout - Temporary Issue
- Description: Payment was unsuccessful due to a temporary issue. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
Timeout - Bank Declined
Timeout - Bank Declined
- Description: Payment was unsuccessful as it was declined by your bank. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
Timeout - Recurring Payment Creation
Timeout - Recurring Payment Creation
- Description: Payment was unsuccessful as the recurring payment can not be created at this time. Any amount deducted will be refunded within 5-7 working days.
- Next Steps: Retry after some time.
transaction_frequency_limit_exceeded
transaction_frequency_limit_exceeded
- Description: Payment failed. Please try again with another bank account.
- Next Steps: Create a new mandate with the customer.
transaction_limit_exceeded
transaction_limit_exceeded
Amount Limit Exceeded
Amount Limit Exceeded
- Description: Payment failed because Transaction amount limit has exceeded.
- Next Steps: Reach out to the customer to collect the amount.
Bank Account Amount Limit
Bank Account Amount Limit
- Description: Payment was unsuccessful as you exceeded the amount limit on the bank account linked to this UPI ID.
- Next Steps: Ask the customer to retry after some time.
transaction_not_allowed
transaction_not_allowed
- Description: Payment was unsuccessful as it was declined by your bank. Reach out to your bank for more details. Try using another account.
- Next Steps: Create a new mandate with the customer.
upi_dummy_payment
upi_dummy_payment
- Description: Payment was a dummy payment for one time mandate registration.
- Next Steps: NA