---
title: "Fetch all QR codes"
method: GET
path: "/payments/qr_codes"
tags: ["QR Codes"]
---

# Fetch all QR codes

`GET /payments/qr_codes`

Retrieve all QR codes. Filter by customer_id or payment_id.

## Query parameters

- `from` integer
- `to` integer
- `count` integer
- `skip` integer
- `customer_id` string
- `payment_id` string

## Response `200`

Collection of QR codes.

- object
  - `entity` 'collection'
  - `count` integer — Number of items in the current page.
  - `items` QrCode[]
    - `id` string — Unique QR code identifier. Prefix: qr_
    - `entity` 'qr_code'
    - `name` string — Label for the QR code.
    - `description` string
    - `image_url` string — Hosted URL of the QR code image.
    - `payment_amount` integer — Fixed payment amount in paise. Null for variable-amount QR codes.
    - `status` 'active' | 'closed'
    - `usage_type` 'single_use' | 'multiple_use'
    - `close_by` integer — Unix timestamp when the QR code will auto-close.
    - `closed_at` integer — Unix timestamp when the QR code was closed.
    - `close_reason` 'on_demand' | 'paid' — Why the QR code was closed.
    - `customer_id` string — Associated customer ID (cust_*).
    - `payments_amount_received` integer — Total amount received via this QR code (paise).
    - `payments_count_received` integer — Number of payments received.
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `created_at` integer

## Other responses

- `401` — Authentication failed. Invalid or missing API key credentials.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.

---

[API](https://skmtc.net/curlec/apis/razorpay-api.md) · [All operations](https://skmtc.net/curlec/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/curlec/razorpay-api/revisions/824ca9e6faef/schema)
