Create a QR Code
POST/v1/payments/qr_codesClick to copy
Use this endpoint to create a QR Code.
- You can share the short URL with customers to accept payments.
- You can print and download it.
- You can create QR Codes for single or multiple use and for specific or all customers.
Is this page helpful?
1curl -u <YOUR_KEY_ID>:<YOUR_KEY_SECRET> \2-X POST https://api.razorpay.com/v1/payments/qr_codes \3-H "Content-Type: application/json" \4-d '{5"type": "upi_qr",6"name": "Store Front Display",7"usage": "single_use",8"fixed_amount": true,9"payment_amount": 300,10"description": "For Store 1",11"customer_id": "cust_HKsR5se84c5LTO",12"close_by": 1681615838,13"notes": {14"purpose": "Test UPI QR Code notes"15}16}'
Success
Failure
1{2"id": "qr_HMsVL8HOpbMcjU",3"entity": "qr_code",4"created_at": 1623660301,5"name": "Store Front Display",6"usage": "single_use",7"type": "upi_qr",8"image_url": "https://rzp.io/i/BWcUVrLp",9"payment_amount": 300,10"status": "active",11"description": "For Store 1",12"fixed_amount": true,13"payments_amount_received": 0,14"payments_count_received": 0,15"notes": {16"purpose": "Test UPI QR Code notes"17},18"customer_id": "cust_HKsR5se84c5LTO",19"close_by": 168161583820}
Request Parameters
type *
stringThe type of the QR Code.
upi_qr: Create a QR Code that accepts only UPI payments.
Feature Request
This is an on-demand feature. Please raise a request with our
to get this feature activated on your account.name string Label entered to identify the QR Code. For example, Store Front Display.
usage *
stringIndicates if the QR Code should be allowed to accept single payment or multiple payments. Possible values:
single_use: QR Code will accept only one payment and then close automatically.multiple_use(default): QR Code will accept multiple payments.
fixed_amount booleanIndicates if the QR should accept payments of specific amounts or any amount. Possible values:
true: QR Code accepts only a specific amount.false(default): QR Code accepts any amount.
Watch Out!
When setting the usage to single_use, ensure that fixed_amount is true to generate the QR Code successfully.
payment_amount integer The amount allowed for a transaction. If this is specified, then any transaction of an amount less than or more than this value is not allowed. For example, if this amount is set as 500000, the customer cannot pay an amount less than or more than ₹5000.
descriptionstringA brief description about the QR Code.
customer_id stringThe unique identifier of the customer the QR Code is linked with. Know more about the
.close_by integerUnix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 2 minutes after the current time.
Watch Out!
This parameter is available for single use QR codes only. You should ideally send a close_by value (expiry time less than or equal to 2 hours from QR generation).
- The QR code has a minimum expiration time of 2 minutes and a maximum of 2 hours.
- If
close_byisNULL, the system sets a 2-hour expiry (returned in the response). - If
close_byis greater than 2 hours, the system overrides it to 2 hours (returned in the response). - Use the returned
close_byvalue for QR expiry. QR codes expire after theclose_bytime; you must regenerate them. - This parameter is only available for QR codes with
usageset assingle_use. You will not be able to use this parameter formultiple_useQR codes as it will generate an error.
notes object Key-value pair that can be used to store additional information about the QR Code. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.
Response Parameters
idstring The unique identifier of the QR Code. For example, qr_HMsVL8HOpbMcjU.
entitystring Indicates the type of entity. Here, it is qr_code.
created_atintegerUnix timestamp at which the QR Code is created.
namestring Label entered to identify the QR Code. For example, Store Front Display.
usagestringIndicates if the QR Code should be allowed to accept single payment or multiple payments. Possible values:
single_use: QR Code will accept only one payment and then close automatically.multiple_use(default): QR Code will accept multiple payments.
typestring The type of the QR Code. Possible value is upi_qr, which creates a QR Code that accepts only UPI payments.
Feature Request
This is an on-demand feature. Please raise a request with our
to get this feature activated on your account.image_urlstring The URL of the QR Code. For example, http://rzp.io/l6MS. Click the link to download the code.
payment_amount integer The amount allowed for a transaction. If this is specified, then any transaction of an amount less than or more than this value is not allowed. For example, if this amount is set as 500000, the customer cannot pay an amount less than or more than ₹5000.
statusstringIndicates the status of the QR Code. Possible values:
active: Indicates that the QR Code has been created and is ready to accept payments.closed: Indicates that the QR Code has been closed.
descriptionstringA brief description about the QR Code.
fixed_amountbooleanIndicates if the QR Code should accept payments of specific amounts or any amount. Possible values:
true: QR Code accepts only a specific amount.false(default): QR code accepts any amount.
Watch Out!
When setting the usage to single_use, ensure that fixed_amount is true to generate the QR Code successfully.
payments_amount_receivedintegerThe total amount received on the QR Code. Only captured payments are considered.
payments_count_receivedintegerThe total number of payments received on the QR Code. All captured payments are considered.
notesobject Key-value pair that can be used to store additional information about the QR Code. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.
customer_idstringThe unique identifier of the customer the QR Code is linked with. Know more about the
.close_byintegerUnix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 2 minutes after the current time.
Watch Out!
This parameter is available for single use QR codes only. You should ideally send a close_by value (expiry time less than or equal to 2 hours from QR generation).
- The QR code has a minimum expiration time of 2 minutes and a maximum of 2 hours.
- If
close_byisNULL, the system sets a 2-hour expiry (returned in the response). - If
close_byis greater than 2 hours, the system overrides it to 2 hours (returned in the response). - Use the returned
close_byvalue for QR expiry. QR codes expire after theclose_bytime; you must regenerate them. - This parameter is only available for QR codes with
usageset assingle_use. You will not be able to use this parameter formultiple_useQR codes as it will generate an error.
closed_atintegerUnix timestamp at which the QR Code is automatically closed.
close_reasonstringThe reason for the closure of the QR Code. Possible values:
on_demand: When you close the QR Code using the APIs or the Dashboard.paid: If the QR Code is created with theusage=single_paymentparameter, the QR Code closes automatically once the customer makes the payment, with the reason marked aspaid.null: The QR Code has not been closed yet.
Errors
The API {key/secret} provided is invalid.
Error Status: 4xx
The API credentials passed in the API call differ from the ones generated on the Dashboard.
Solution
The selected {field name} is invalid.
Error Status: 400
Data sent for a field is invalid. For example, when the data sent for type is abc, instead of the acceptable value.
Solution
The {field name} is required.
Error Status: 400
A mandatory field is missing.
Solution
The payment amount must be at least 1.
Error Status: 400
The amount specified is less than the minimum amount.
Solution
{Customer_id} is not a valid id.
Error Status: 400
Data entered for the Customer id field is invalid.
Solution
type, usage, fixed_amount, payment_amount, description, close_by is/are not required and should not be sent
Error Status: 400
A POST API is executed by GET Method.
Solution
{close_by} must be between 946684800 and 4765046400
Error Status: 400
A wrong close by date is passed.
Solution
{any extra field} ajshdas is/are not required and should not be sent
Error Status: 400
An additional or unrequired parameter is passed.
Solution
Create a QR Code
POST/v1/payments/qr_codesClick to copy
Use this endpoint to create a QR Code.
- You can share the short URL with customers to accept payments.
- You can print and download it.
- You can create QR Codes for single or multiple use and for specific or all customers.
Is this page helpful?
Request Parameters
type *
stringThe type of the QR Code.
upi_qr: Create a QR Code that accepts only UPI payments.
Feature Request
This is an on-demand feature. Please raise a request with our
to get this feature activated on your account.name string Label entered to identify the QR Code. For example, Store Front Display.
usage *
stringIndicates if the QR Code should be allowed to accept single payment or multiple payments. Possible values:
single_use: QR Code will accept only one payment and then close automatically.multiple_use(default): QR Code will accept multiple payments.
fixed_amount booleanIndicates if the QR should accept payments of specific amounts or any amount. Possible values:
true: QR Code accepts only a specific amount.false(default): QR Code accepts any amount.
Watch Out!
When setting the usage to single_use, ensure that fixed_amount is true to generate the QR Code successfully.
payment_amount integer The amount allowed for a transaction. If this is specified, then any transaction of an amount less than or more than this value is not allowed. For example, if this amount is set as 500000, the customer cannot pay an amount less than or more than ₹5000.
descriptionstringA brief description about the QR Code.
customer_id stringThe unique identifier of the customer the QR Code is linked with. Know more about the
.close_by integerUnix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 2 minutes after the current time.
Watch Out!
This parameter is available for single use QR codes only. You should ideally send a close_by value (expiry time less than or equal to 2 hours from QR generation).
- The QR code has a minimum expiration time of 2 minutes and a maximum of 2 hours.
- If
close_byisNULL, the system sets a 2-hour expiry (returned in the response). - If
close_byis greater than 2 hours, the system overrides it to 2 hours (returned in the response). - Use the returned
close_byvalue for QR expiry. QR codes expire after theclose_bytime; you must regenerate them. - This parameter is only available for QR codes with
usageset assingle_use. You will not be able to use this parameter formultiple_useQR codes as it will generate an error.
notes object Key-value pair that can be used to store additional information about the QR Code. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.
Response Parameters
idstring The unique identifier of the QR Code. For example, qr_HMsVL8HOpbMcjU.
entitystring Indicates the type of entity. Here, it is qr_code.
created_atintegerUnix timestamp at which the QR Code is created.
namestring Label entered to identify the QR Code. For example, Store Front Display.
usagestringIndicates if the QR Code should be allowed to accept single payment or multiple payments. Possible values:
single_use: QR Code will accept only one payment and then close automatically.multiple_use(default): QR Code will accept multiple payments.
typestring The type of the QR Code. Possible value is upi_qr, which creates a QR Code that accepts only UPI payments.
Feature Request
This is an on-demand feature. Please raise a request with our
to get this feature activated on your account.image_urlstring The URL of the QR Code. For example, http://rzp.io/l6MS. Click the link to download the code.
payment_amount integer The amount allowed for a transaction. If this is specified, then any transaction of an amount less than or more than this value is not allowed. For example, if this amount is set as 500000, the customer cannot pay an amount less than or more than ₹5000.
statusstringIndicates the status of the QR Code. Possible values:
active: Indicates that the QR Code has been created and is ready to accept payments.closed: Indicates that the QR Code has been closed.
descriptionstringA brief description about the QR Code.
fixed_amountbooleanIndicates if the QR Code should accept payments of specific amounts or any amount. Possible values:
true: QR Code accepts only a specific amount.false(default): QR code accepts any amount.
Watch Out!
When setting the usage to single_use, ensure that fixed_amount is true to generate the QR Code successfully.
payments_amount_receivedintegerThe total amount received on the QR Code. Only captured payments are considered.
payments_count_receivedintegerThe total number of payments received on the QR Code. All captured payments are considered.
notesobject Key-value pair that can be used to store additional information about the QR Code. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.
customer_idstringThe unique identifier of the customer the QR Code is linked with. Know more about the
.close_byintegerUnix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 2 minutes after the current time.
Watch Out!
This parameter is available for single use QR codes only. You should ideally send a close_by value (expiry time less than or equal to 2 hours from QR generation).
- The QR code has a minimum expiration time of 2 minutes and a maximum of 2 hours.
- If
close_byisNULL, the system sets a 2-hour expiry (returned in the response). - If
close_byis greater than 2 hours, the system overrides it to 2 hours (returned in the response). - Use the returned
close_byvalue for QR expiry. QR codes expire after theclose_bytime; you must regenerate them. - This parameter is only available for QR codes with
usageset assingle_use. You will not be able to use this parameter formultiple_useQR codes as it will generate an error.
closed_atintegerUnix timestamp at which the QR Code is automatically closed.
close_reasonstringThe reason for the closure of the QR Code. Possible values:
on_demand: When you close the QR Code using the APIs or the Dashboard.paid: If the QR Code is created with theusage=single_paymentparameter, the QR Code closes automatically once the customer makes the payment, with the reason marked aspaid.null: The QR Code has not been closed yet.
Errors
The API {key/secret} provided is invalid.
Error Status: 4xx
The API credentials passed in the API call differ from the ones generated on the Dashboard.
Solution
The selected {field name} is invalid.
Error Status: 400
Data sent for a field is invalid. For example, when the data sent for type is abc, instead of the acceptable value.
Solution
The {field name} is required.
Error Status: 400
A mandatory field is missing.
Solution
The payment amount must be at least 1.
Error Status: 400
The amount specified is less than the minimum amount.
Solution
{Customer_id} is not a valid id.
Error Status: 400
Data entered for the Customer id field is invalid.
Solution
type, usage, fixed_amount, payment_amount, description, close_by is/are not required and should not be sent
Error Status: 400
A POST API is executed by GET Method.
Solution
{close_by} must be between 946684800 and 4765046400
Error Status: 400
A wrong close by date is passed.
Solution
{any extra field} ajshdas is/are not required and should not be sent
Error Status: 400
An additional or unrequired parameter is passed.
Solution
1curl -u <YOUR_KEY_ID>:<YOUR_KEY_SECRET> \2-X POST https://api.razorpay.com/v1/payments/qr_codes \3-H "Content-Type: application/json" \4-d '{5"type": "upi_qr",6"name": "Store Front Display",7"usage": "single_use",8"fixed_amount": true,9"payment_amount": 300,10"description": "For Store 1",11"customer_id": "cust_HKsR5se84c5LTO",12"close_by": 1681615838,13"notes": {14"purpose": "Test UPI QR Code notes"15}16}'
Success
Failure
1{2"id": "qr_HMsVL8HOpbMcjU",3"entity": "qr_code",4"created_at": 1623660301,5"name": "Store Front Display",6"usage": "single_use",7"type": "upi_qr",8"image_url": "https://rzp.io/i/BWcUVrLp",9"payment_amount": 300,10"status": "active",11"description": "For Store 1",12"fixed_amount": true,13"payments_amount_received": 0,14"payments_count_received": 0,15"notes": {16"purpose": "Test UPI QR Code notes"17},18"customer_id": "cust_HKsR5se84c5LTO",19"close_by": 168161583820}