---
title: "List all invoices"
method: GET
path: "/invoices"
tags: ["Invoices"]
---

# List all invoices

`GET /invoices`

Retrieve a list of invoices. Filter by type, status, customer, payment, or subscription. Returns up to 100 per call.

## Query parameters

- `type` 'invoice' | 'link'
- `payment_id` string
- `customer_id` string
- `subscription_id` string
- `from` integer
- `to` integer
- `count` integer
- `skip` integer

## Response `200`

Collection of invoices.

- object
  - `entity` 'collection'
  - `count` integer — Number of items in the current page.
  - `items` Invoice[]
    - `id` string — Invoice ID. Prefix: inv_
    - `entity` 'invoice'
    - `type` 'invoice' | 'link' — invoice: a formal invoice document. link: a payment page / payment link.
    - `status` 'draft' | 'issued' | 'partially_paid' | 'paid' | 'cancelled' | 'expired' | 'deleted' — Invoice lifecycle status. draft→issued→paid/partially_paid/cancelled/expired.
    - `invoice_number` string — Auto-generated invoice number (e.g. INV-001).
    - `customer_id` string — Customer ID (cust_*).
    - `customer` object — Inline customer details snapshot at time of invoice creation.
    - `order_id` string — Associated order ID (order_*).
    - `line_items` InvoiceLineItem[] — Up to 50 line items.
      - `id` string — Line item ID. Prefix: li_
      - `item_id` string — Referenced catalog item ID (item_*). Null for ad-hoc line items.
      - `name` string
      - `description` string
      - `amount` integer — Total line amount in paise (unit_amount × quantity).
      - `unit_amount` integer — Per-unit price in paise.
      - `quantity` integer
      - `currency` string
      - `type` 'invoice' | 'payment_page'
    - `payment_id` string — Payment ID (pay_*) of the successful payment, if paid.
    - `currency` string
    - `gross_amount` integer — Sum of all line item amounts before tax (paise).
    - `tax_amount` integer — Total tax amount (paise).
    - `taxable_amount` integer — Taxable base amount (paise).
    - `amount` integer — Total invoice amount including tax (paise).
    - `amount_paid` integer — Amount received so far (paise). Relevant for partial_payment invoices.
    - `amount_due` integer — Remaining amount due (paise).
    - `short_url` string — Hosted payment page URL to send to the customer.
    - `partial_payment` boolean — If true, customer can pay any amount ≥ first_payment_min_amount.
    - `first_payment_min_amount` integer — Minimum amount for the first partial payment (paise). Required when partial_payment=true.
    - `receipt` string — Your internal reference number.
    - `description` string
    - `comment` string — Internal comment (not shown on invoice).
    - `terms` string — Payment terms shown on the invoice.
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `expire_by` integer — Unix timestamp after which the invoice expires and cannot be paid.
    - `issued_at` integer
    - `paid_at` integer
    - `cancelled_at` integer
    - `expired_at` integer
    - `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/versions/824ca9e6faef/schema)
