API Test Keys
Create a QR Code
POST
/v1/payments/qr_codes
Click 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_1",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_1",6"usage": "single_use",7"type": "upi_qr",8"image_url": "https://rzp.io/i/BWcUVrLp",9"image_content": "upi://pay?pa=qmart.razorpay@hdfcbank&pn=TestAccount&tr=RZPGT5viB4WHeoUuuqrv2&tn=TestAccountRaftarSoft&am=100&cu=INR&mc=5411",10"payment_amount": 300,11"status": "active",12"description": "For Store 1",13"fixed_amount": true,14"payments_amount_received": 0,15"payments_count_received": 0,16"notes": {17"purpose": "Test UPI QR Code notes"18},19"customer_id": "cust_HKsR5se84c5LTO",20"close_by": 168161583821}
Request Parameters
type
*
string
The type of the QR Code. Possible values:
upi_qr
: Create a QR Code that accepts only UPI payments.bharat_qr
: Create a QR Code that accepts UPI and card payments.
Handy Tips
This is an on-demand feature. Learn more about
.name
string
Label entered to identify the QR Code. For example, Store Front Display
.
usage
*
string
Indicates 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
boolean
Indicates 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.
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.
description
string
A brief description about the QR Code.
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”
.
customer_id
string
Unique identifier of the customer the QR Code is linked with. Know more about to the
.close_by
integer
Unix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. The date range can be set to 2147483647
in Unix timestamp format (equivalent to Tuesday, January 19, 2038 8:44:07 AM GMT+05:30).
Watch Out!
Any request beyond 2147483647 Unix timestamp will fail.
Response Parameters
id
string
The unique identifier of the QR Code.
entity
string
Indicates the type of entity. Here, it is qr_code
.
type
string
The type of the QR Code. Possible values:
upi_qr
: Create a QR Code that accepts only UPI payments.bharat_qr
: Create a QR Code that accepts UPI and card payments. This is an on-demand feature. Learn more about .
image_url
string
The URL of the QR Code. For example, http://rzp.io/l6MS
. Click the link to download the code.
image_content
string
The link encoded to the payable QR Code using any QR Code generator. For example:
- For UPI QR:
upi://pay?pa=dmart.razorpay@hdfcbank&pn=TestAccount&tr=RZPGT5viB4WHeoUuuqrv2&tn=TestAccountRaftarSoft&am=100&cu=INR&mc=5411
- For Bharat QR:
000201010212021643926300000000850415540461000000008061661005900000000890827YESB0CMSNOC222333004882700126430010A0000005240117razorpaybqr@icici02041.1027350010A0000005240117RZPGT8ildsFTgS5Sp52047531530335654041.105802IN5906zxcbmn6005Delhi610611008562300514GT8ildsFTgS5Sp070838R004506304B6A9
name
string
Label entered to identify the QR Code. For example, Store Front Display
.
usage
string
Indicates 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
boolean
Indicates 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.
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.
status
string
Indicates the status of the QR Code. Possible values:
active
closed
description
string
A brief description about the QR Code.
payments_amount_received
integer
The total amount received on the QR Code. All captured payments are considered.
payments_count_received
integer
The total number of payments received on the QR Code. All captured payments are considered.
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”
.
customer_id
string
Unique identifier of the customer the QR Code is linked with. Know more about to the
.close_by
integer
Unix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. The date range can be set to 2147483647
in Unix timestamp format (equivalent to Tuesday, January 19, 2038 8:44:07 AM GMT+05:30).
Watch Out!
Any request beyond 2147483647 Unix timestamp will fail.
closed_at
integer
Unix timestamp at which the QR Code is automatically closed.
created_at
integer
Unix timestamp at which the QR Code was created.
close_reason
string
The reason for the closure of the QR Code. Possible values:
on_demand
: When you close the QR Code using the APIs or the Razorpay Dashboard.paid
: If the QR Code is created with theusage=single_payment
parameter, 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. | Use the correct method, that is, POST.
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_codes
Click 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
*
string
The type of the QR Code. Possible values:
upi_qr
: Create a QR Code that accepts only UPI payments.bharat_qr
: Create a QR Code that accepts UPI and card payments.
Handy Tips
This is an on-demand feature. Learn more about
.name
string
Label entered to identify the QR Code. For example, Store Front Display
.
usage
*
string
Indicates 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
boolean
Indicates 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.
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.
description
string
A brief description about the QR Code.
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”
.
customer_id
string
Unique identifier of the customer the QR Code is linked with. Know more about to the
.close_by
integer
Unix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. The date range can be set to 2147483647
in Unix timestamp format (equivalent to Tuesday, January 19, 2038 8:44:07 AM GMT+05:30).
Watch Out!
Any request beyond 2147483647 Unix timestamp will fail.
Response Parameters
id
string
The unique identifier of the QR Code.
entity
string
Indicates the type of entity. Here, it is qr_code
.
type
string
The type of the QR Code. Possible values:
upi_qr
: Create a QR Code that accepts only UPI payments.bharat_qr
: Create a QR Code that accepts UPI and card payments. This is an on-demand feature. Learn more about .
image_url
string
The URL of the QR Code. For example, http://rzp.io/l6MS
. Click the link to download the code.
image_content
string
The link encoded to the payable QR Code using any QR Code generator. For example:
- For UPI QR:
upi://pay?pa=dmart.razorpay@hdfcbank&pn=TestAccount&tr=RZPGT5viB4WHeoUuuqrv2&tn=TestAccountRaftarSoft&am=100&cu=INR&mc=5411
- For Bharat QR:
000201010212021643926300000000850415540461000000008061661005900000000890827YESB0CMSNOC222333004882700126430010A0000005240117razorpaybqr@icici02041.1027350010A0000005240117RZPGT8ildsFTgS5Sp52047531530335654041.105802IN5906zxcbmn6005Delhi610611008562300514GT8ildsFTgS5Sp070838R004506304B6A9
name
string
Label entered to identify the QR Code. For example, Store Front Display
.
usage
string
Indicates 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
boolean
Indicates 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.
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.
status
string
Indicates the status of the QR Code. Possible values:
active
closed
description
string
A brief description about the QR Code.
payments_amount_received
integer
The total amount received on the QR Code. All captured payments are considered.
payments_count_received
integer
The total number of payments received on the QR Code. All captured payments are considered.
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”
.
customer_id
string
Unique identifier of the customer the QR Code is linked with. Know more about to the
.close_by
integer
Unix timestamp at which the QR Code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. The date range can be set to 2147483647
in Unix timestamp format (equivalent to Tuesday, January 19, 2038 8:44:07 AM GMT+05:30).
Watch Out!
Any request beyond 2147483647 Unix timestamp will fail.
closed_at
integer
Unix timestamp at which the QR Code is automatically closed.
created_at
integer
Unix timestamp at which the QR Code was created.
close_reason
string
The reason for the closure of the QR Code. Possible values:
on_demand
: When you close the QR Code using the APIs or the Razorpay Dashboard.paid
: If the QR Code is created with theusage=single_payment
parameter, 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. | Use the correct method, that is, POST.
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_1",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_1",6"usage": "single_use",7"type": "upi_qr",8"image_url": "https://rzp.io/i/BWcUVrLp",9"image_content": "upi://pay?pa=qmart.razorpay@hdfcbank&pn=TestAccount&tr=RZPGT5viB4WHeoUuuqrv2&tn=TestAccountRaftarSoft&am=100&cu=INR&mc=5411",10"payment_amount": 300,11"status": "active",12"description": "For Store 1",13"fixed_amount": true,14"payments_amount_received": 0,15"payments_count_received": 0,16"notes": {17"purpose": "Test UPI QR Code notes"18},19"customer_id": "cust_HKsR5se84c5LTO",20"close_by": 168161583821}