Create a Standard Payment Link
Create a Standard Payment Link using this endpoint.
-
Basic Payment Links
These are regular Payment Links, which are not customised. -
Customised Payment Links
You can customise Payment Links as per your business requirements.
-
After successful completion of the payment, customers can be redirected to a specific URL using the
callback_urlandcallback_methodparameters. Know more about how to use these paramaters. -
Verify the
razorpay_signatureparameter to validate that it is authentic and sent from Razorpay servers. Know more about how to Verify Signature.
Request Parameters
30000. In the case of three decimal currencies, such as KWD, BHD and OMR, to refund a payment of 295.991, pass the value as 295990. And in the case of zero decimal currencies such as JPY, to refund a payment of 295, pass the value as 295.true: Customer can make partial payments.false(default): Customer cannot make partial payments.
100. Default currency is INR. For example, if an amount of is to be received from the customer in two installments of #1 - , #2 - , then you can set this value as 500000. Must be passed along with accept_partial parameter.true for creating UPI Payment Link. If the upi_link parameter is not passed or passed with value as false, a Standard Payment Link will be created. Possible values:true: Creates a UPI Payment Link.false: Creates a Standard Payment Link.
true: Razorpay handles the notification.false: You handle the notification.
true: Razorpay handles the notification.false: You handle the notification.
"note_key": "Payment Link for Groceries.”.callback_url is passed, it must be passed in the correct format. That is, it should contain a URL.callback_url parameter is passed, callback_method must be passed with the value get.true: To send reminders.false: To disable reminders.
Response Parameters
true: Customer can make partial payments.false(default): Customer cannot make partial payments.
30000. In the case of three decimal currencies, such as KWD, BHD and OMR, to refund a payment of 295.991, pass the value as 295990. And in the case of zero decimal currencies such as JPY, to refund a payment of 295, pass the value as 295.callback_url parameter is passed, callback_method must be passed with the value get.500000.plink_ERgihyaAAC0VNW.true: A UPI Payment Link has been created.false: It is a Standard Payment Link.
true: Razorpay handles the notification.false: Businesses handle the notification.
true: Razorpay handles the notification.false: Businesses handle the notification.
null.netbankingcardwalletupiemibank_transfer
plink_ERgihyaAAC0VNW.captured.createdpartially_paidexpiredcancelledpaid
true: To send reminders.false: To disable reminders.
HD1JAKCCPGDfRx.false.status (one of pending, in_progress, failed).Errors
The {input field} is required
The {input field} is required
4xxA mandatory field is empty.Solution: Ensure all mandatory fields and values are present.wrong input fields sent.
wrong input fields sent.
400When wrong input fields are sent during Payment Link creation.Solution: Ensure that the input fields are added correctly. Refer to these request parameters on how to add correct input fields.payment link creation with reference ID already attempted
payment link creation with reference ID already attempted
400An existing reference id has been passed.Solution: Ensure that a unique reference id is used for all Payment Links.UPI Payment Links is not supported in Test Mode. Please experience the product in Live Mode.
UPI Payment Links is not supported in Test Mode. Please experience the product in Live Mode.
400The UPI link parameter has been passed with the Test API keys.Solution: Ensure that you use Live API keys while passing UPI links.upi is currently supported only in indian currency
upi is currently supported only in indian currency
400Occurs when you try to create a UPI Payment Link using an international currency.Solution: Ensure that you create a UPI payment link only in indian currency.partial payment not supported in upi link
partial payment not supported in upi link
400Occurs when you try to create a UPI Payment Link with partial payments enabled.Solution: Please do not enable partial payments for UPI Payment Links.timestamp must be atleast 15 minutes in future
timestamp must be atleast 15 minutes in future
400The epoch time passed is less than 15 minutes from the current time.Solution: The close_by time should be more than 15 minutes from the current time.Invalid access: Cannot create a payment link in live mode, as live mode is disabled for merchant.
Invalid access: Cannot create a payment link in live mode, as live mode is disabled for merchant.
400Occurs when you try to create a Payment Link in Live mode, but live mode is disabled for youSolution: Raise a request to our support team to get live mode enabled for you.Invalid access: Cannot create a payment link, as Merchant is Suspended.
Invalid access: Cannot create a payment link, as Merchant is Suspended.
400Occurs when you try to create a Payment Link when you have been been suspended.Solution: Raise a request to our support team to be reinstated.value: the length must not be greater than 255.
value: the length must not be greater than 255.
400When the notes length is greater than 255 characters during Payment Link creation.Solution: Please create a payment link with notes values less than 255 characters.amount: cannot be blank.
amount: cannot be blank.
400The request body is missing the amount field, or the body is empty.Solution: Always include amount (in currency subunits) in the request body.amount: amount should be minimum 100 for INR.
amount: amount should be minimum 100 for INR.
400The amount value is below the per-currency minimum. For INR, the minimum is 100 (₹1.00) in currency subunits.Solution: Pass amount greater than or equal to the per-currency minimum (100 for INR).amount, should be a whole number for e.g. 2234 to create a payment link for INR 22.34.
amount, should be a whole number for e.g. 2234 to create a payment link for INR 22.34.
400A decimal value was passed for amount. Amounts must be integers in currency subunits. For example, 2234 represents ₹22.34, not 22.34.Solution: Pass amount as an integer in currency subunits (paise for INR).amount: currency: wrong input field, please find the list of supported currencies on the documentation.
amount: currency: wrong input field, please find the list of supported currencies on the documentation.
400The currency value is not one of the supported ISO currency codes.Solution: Use a supported 3-letter ISO currency code (for example, INR).email: must be in a valid format for e.g. abcxyz@domain.com.
email: must be in a valid format for e.g. abcxyz@domain.com.
400The value passed for customer.email is not in a valid email format.Solution: Pass customer.email as a valid email address.contact: the length must be between 8 and 14.
contact: the length must be between 8 and 14.
400The customer.contact value is shorter than 8 characters or longer than 14 characters.Solution: Pass customer.contact as a phone number between 8 and 14 characters, including the country code prefix.incorrect JSON object received - faulty key: expire_by.
incorrect JSON object received - faulty key: expire_by.
400The expire_by field was passed as a non-integer value (for example, an ISO date string 2024-01-01).Solution: Pass expire_by as a UNIX-epoch integer in seconds.first_min_partial_amount must be less than or equal to amount.
first_min_partial_amount must be less than or equal to amount.
400The first_min_partial_amount value exceeds the total amount. The first partial payment cannot be more than the full link amount.Solution: Ensure first_min_partial_amount is less than or equal to amount.first_min_partial_amount: amount should be minimum 100 for INR.
first_min_partial_amount: amount should be minimum 100 for INR.
400first_min_partial_amount is below the per-currency minimum. Returned both when the value is below the minimum and when accept_partial is false but first_min_partial_amount is set.Solution: Pass first_min_partial_amount greater than or equal to the per-currency minimum, and only when accept_partial is true.reference_id: the length must be no more than 40.
reference_id: the length must be no more than 40.
400The reference_id value exceeds the 40-character limit.Solution: Keep reference_id to 40 characters or fewer.callback_url: URL should be sent in callback_url field.
callback_url: URL should be sent in callback_url field.
400The value passed for callback_url is not a valid URL (for example, missing scheme).Solution: Pass callback_url as a fully-qualified URL starting with https:// (or http://).callback_method: must be a valid value.
callback_method: must be a valid value.
400The value passed for callback_method is not supported. Only get is accepted.Solution: Set callback_method to get.extra fields sent.
extra fields sent.
400The request body contains fields that are not part of the Payment Links API schema.Solution: Only include documented fields. Remove any unknown keys from the request body.customer name is a mandatory field.
customer name is a mandatory field.
400The customer object is present in the request but the name field inside it is missing or empty. Some organisations enforce customer name as mandatory.Solution: Pass customer.name as a non-empty string in the request body.expires by is a mandatory field.
expires by is a mandatory field.
400The expire_by field is missing from the request. Some organisations enforce expire_by as mandatory for payment-link creation.Solution: Pass expire_by as a Unix-epoch integer at least 15 minutes in the future.