QR Codes (with Image Content)


You can use Razorpay

to create QR Codes and share them with customers to accept digital payments.

Feature Request

  • This is an on-demand feature. Please raise a request with our to get this feature activated on your Razorpay account.
  • Watch this video to know how to raise a feature enablement request on the Razorpay Dashboard.
Feature Request GIF

Given below is the flow:

  1. You create a QR Code.
  2. A short URL is generated.
  3. You have two sharing options:
    • Share the short URL directly with your customers.
    • Use this feature to generate the QR Code at your end and share it with customers.
  4. Customers scan the QR Code with their preferred UPI PSP app and complete the payment.

API EndpointDescription
Creates a QR Code.
Closes a QR Code.
Retrieves details of all QR Codes.
Retrieves details of a QR Code using id.
Retrieves QR Codes generated for a Customer id.
Retrieves QR Codes by Payment id.
Retrieves payments made on a QR Code.
Refunds payments made on a QR Code.

You can try out our APIs on the Razorpay Postman Public Workspace.

The QR Code entity has the following fields:

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

if fixed_amount=true

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 the usage=single_payment parameter, the QR Code closes automatically once the customer makes the payment, with the reason marked as paid.
  • null: The QR Code has not been closed yet.

Here is a best practice to keep in mind while integrating QR Code APIs with Image Content. You can check the contents passed in the QR Code, using the response payload for

. The image_content parameter displays the QR Code content. For Example, once the qr_image_content feature is enabled, you can get the create QR Code response as given on the right-hand side.

Feature Request

  • This is an on-demand feature. Please raise a request with our to get this feature activated on your Razorpay account.
  • Watch this video to know how to raise a feature enablement request on the Razorpay Dashboard.
Feature Request GIF

Was this page helpful?