> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-881012b3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a QR Code

> Update QR Codes with this endpoint and share with your customers.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
  <span>🇺🇸 United States</span>
</div>

Use this endpoint to update a QR Code.

<RequestExample>
  ```bash Curl theme={null}
  curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET]
  -X PATCH https://api.razorpay.com/v1/payments/qr_codes/qr_HMsVL8HOpbMcjU/
  -d '{
  	"notes": {
  		"key1": "value1",
  		"key2": "value2"
  	}
  }'
  ```

  ```bash CLI theme={null}
  razorpay qr-codes update qr_ABC123 --note key1="Updated note" --note key2="Another note"
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id":"qr_HMsVL8HOpbMcjU",
    "entity":"qr_code",
    "created_at":1623660301,
    "name":"Store Front Display",
    "usage":"single_use",
    "type":"upi_qr",
    "image_url":"https://rzp.io/i/BWcUVrLp",
    "payment_amount":300,
    "status":"closed",
    "description":"For Store 1",
    "fixed_amount":true,
    "payments_amount_received":0,
    "payments_count_received":0,
    "notes":{
      "key1": "value1",
      "key2": "value2"
    },
    "customer_id":"cust_HKsR5se84c5LTO",
    "close_by":1681615838,
  }
  ```

  ```json Failure theme={null}
  {
      "error": {
          "code": "BAD_REQUEST_ERROR",
          "description": "The api key provided is invalid",
          "source": "NA",
          "step": "NA",
          "reason": "NA",
          "metadata": {}
      }
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the QR Code. For example, `qr_HMsVL8HOpbMcjU`.
</ParamField>

## Request Parameters

<ParamField body="notes" type="json object" required>
  Contains user-defined fields and is stored for reference purposes. Know more about [notes](/docs/api/understand#notes).
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier of the QR Code. For example, `qr_HMsVL8HOpbMcjU`.
</ResponseField>

<ResponseField name="entity" type="string">
  Indicates the type of entity. Here, it is `qr_code`.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Unix timestamp at which the QR Code is created.
</ResponseField>

<ResponseField name="name" type="string">
  Label entered to identify the QR Code. For example, `Store Front Display`.
</ResponseField>

<ResponseField name="usage" type="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.
</ResponseField>

<ResponseField name="type" type="string">
  The type of the QR Code. Possible value is `upi_qr`, which creates a QR Code that accepts only UPI payments. <br />

  <Info>
    **Feature Request**

    This is an on-demand feature. Please raise a request with our [Support team](https://razorpay.com/support/#request) to get this feature activated on your account.
  </Info>
</ResponseField>

<ResponseField name="image_url" type="string">
  The URL of the QR Code. For example, `http://rzp.io/l6MS`. Click the link to download the code.
</ResponseField>

<ResponseField name="payment_amount" type="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.
</ResponseField>

<ResponseField name="status" type="string">
  Indicates 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.
</ResponseField>

<ResponseField name="description" type="string">
  A brief description about the QR Code.
</ResponseField>

<ResponseField name="fixed_amount" type="boolean">
  Indicates 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.
</ResponseField>

<ResponseField name="payments_amount_received" type="integer">
  The total amount received on the QR Code. Only captured payments are considered.
</ResponseField>

<ResponseField name="payments_count_received" type="integer">
  The total number of payments received on the QR Code. All captured payments are considered.
</ResponseField>

<ResponseField name="notes" type="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”`.
</ResponseField>

<ResponseField name="customer_id" type="string">
  The unique identifier of the customer the QR Code is linked with. Know more about the [Customers API](/docs/api/customers).
</ResponseField>

<ResponseField name="close_by" type="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).
</ResponseField>

<ResponseField name="close_reason" type="string">
  Reason the QR code was closed. One of `on_demand` (closed via API), `paid` (paid amount reached), or `expired` (closed automatically after the close-by time).
</ResponseField>

<ResponseField name="closed_at" type="integer">
  Timestamp, in Unix format, when the QR code was closed. For example, `1778024203`.
</ResponseField>

<ResponseField name="tax_invoice" type="array">
  Tax invoice details for GST-compliant QR codes. An array containing GST identification and supply information.
</ResponseField>

## Errors

<AccordionGroup>
  <Accordion title="The API {key/secret} provided is invalid.">
    **Code:** `4xx`

    The API credentials passed in the API call differ from the ones generated on the Dashboard.

    **Solution:** The API keys must be active and entered correctly with no whitespace before or after.
  </Accordion>
</AccordionGroup>
