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

# List invoices

`GET /invoices`

Returns a paginated list of invoices for a company, with optional filtering by product, status, collection method, and creation date.

Required permissions:
 - `invoice:basic:read`

## Query parameters

- `after` string, nullable — Returns the elements in the list that come after the specified cursor.
- `before` string, nullable — Returns the elements in the list that come before the specified cursor.
- `first` integer, nullable — Returns the first _n_ elements from the list.
- `last` integer, nullable — Returns the last _n_ elements from the list.
- `company_id` string, nullable — The unique identifier of the company to list invoices for.
- `direction` 'asc' | 'desc' — The direction of the sort.
- `product_ids` string[], nullable — Filter invoices to only those associated with these specific product identifiers.
- `collection_methods` InvoiceCollectionMethods[], nullable — Filter invoices by their collection method.
- `statuses` InvoiceStatuses[], nullable — Filter invoices by their current status.
- `order` 'id' | 'created_at' | 'due_date' — Which columns can be used to sort.
- `created_before` string, date-time, nullable — Only return invoices created before this timestamp.
- `created_after` string, date-time, nullable — Only return invoices created after this timestamp.

## Response `200`

A successful response

- object — The connection type for PublicInvoice.
  - `data` InvoiceListItem[], required — A list of nodes.
    - `created_at` string, date-time, required — The datetime the invoice was created.
    - `current_plan` object, required — The plan that this invoice charges for.
      - `currency` 'usd' | 'sgd' | 'inr' | 'aud' | 'brl' | 'cad' | 'dkk' | 'eur' | 'nok' | 'gbp' | 'sek' | 'chf' | 'hkd' | 'huf' | 'jpy' | 'mxn' | 'myr' | 'pln' | 'czk' | 'nzd' | 'aed' | 'eth' | 'ape' | 'cop' | 'ron' | 'thb' | 'bgn' | 'idr' | 'dop' | 'php' | 'try' | 'krw' | 'twd' | 'vnd' | 'pkr' | 'clp' | 'uyu' | 'ars' | 'zar' | 'dzd' | 'tnd' | 'mad' | 'kes' | 'kwd' | 'jod' | 'all' | 'xcd' | 'amd' | 'bsd' | 'bhd' | 'bob' | 'bam' | 'khr' | 'crc' | 'xof' | 'egp' | 'etb' | 'gmd' | 'ghs' | 'gtq' | 'gyd' | 'ils' | 'jmd' | 'mop' | 'mga' | 'mur' | 'mdl' | 'mnt' | 'nad' | 'ngn' | 'mkd' | 'omr' | 'pyg' | 'pen' | 'qar' | 'rwf' | 'sar' | 'rsd' | 'lkr' | 'tzs' | 'ttd' | 'uzs' | 'rub' | 'btc' | 'cny' | 'usdt' | 'kzt' | 'awg' | 'whop_usd' | 'xau', required — The available currencies on the platform
      - `formatted_price` string, required — The formatted price (including currency) for the plan.
      - `id` string, required — The unique identifier for the plan.
    - `due_date` string, date-time, nullable, required — The deadline by which payment is expected. Null if the invoice is collected automatically.
    - `email_address` string, nullable, required — The email address of the customer this invoice is addressed to. Null if no email is on file.
    - `fetch_invoice_token` string, required — A signed token that allows fetching invoice data publicly without authentication.
    - `id` string, required — The unique identifier for the invoice.
    - `line_items` object[], required — Optional line items that break down the invoice total into individual charges.
      - `label` string, required — The label or description for this line item.
      - `position` integer, required — The display order of this line item within the invoice.
      - `quantity` number, required — The quantity of this line item.
      - `total` number, required — The computed total for this line item (quantity * unit_price).
      - `unit_price` number, required — The unit price for this line item.
    - `number` string, required — The sequential invoice number for display purposes.
    - `status` 'draft' | 'open' | 'paid' | 'past_due' | 'uncollectible' | 'void', required — The different statuses an invoice can be in
    - `user` object, nullable, required — The user this invoice is addressed to. Null if the user account has been removed.
      - `id` string, required — The unique identifier for the user.
      - `name` string, nullable, required — The user's display name shown on their public profile.
      - `username` string, required — The user's unique username shown on their public profile.
  - `page_info` PageInfo, required — Information about pagination in a connection.
    - `end_cursor` string, nullable, required — When paginating forwards, the cursor to continue.
    - `has_next_page` boolean, required — When paginating forwards, are there more items?
    - `has_previous_page` boolean, required — When paginating backwards, are there more items?
    - `start_cursor` string, nullable, required — When paginating backwards, the cursor to continue.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Verification required
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/a8a43db4255f/schema)
