# The account's Stripe invoices

`GET /v1/console/invoices` (operation id `listInvoices`)

Every invoice Stripe issued to the account (plan renewals, top-ups, resets), newest first, with links to the
hosted invoice page and the PDF. Invoices arrive through Stripe webhooks, so a payment made seconds ago may
show up on the next read.

Authentication: Console session cookie (`__Host-dex_session`), or an app session token (`Authorization: Bearer dex_ses_...`). With the cookie, state-changing routes also need the `x-dex-csrf` header.

## Responses

### 200

The invoices, newest first.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | (always "list") |
| `data` | array of Invoice | yes |  |
| `data[].id` | string | yes | The Stripe invoice id. |
| `data[].object` | string | yes | (always "invoice") |
| `data[].kind` | string | yes | (one of "subscription", "top_up", "reset", "other") |
| `data[].plan` | string \| null | yes | (one of "base", "hot", "fierce", null) |
| `data[].status` | string | yes | Stripe's invoice status. New values may appear. (one of "draft", "open", "paid", "void", "uncollectible") |
| `data[].number` | string \| null | yes | The invoice number Stripe printed on it; null while it is a draft. |
| `data[].created` | string | yes | (format date-time) |
| `data[].currency` | string | yes | The currency the invoice was paid in (since 28 Sep 2026, region-based checkout). New currencies may appear within v1. (one of "EUR", "USD", "GBP", "INR") |
| `data[].amount_due_cents` | integer | yes | Including VAT, in the invoice currency's minor unit (cents, pence, paise). |
| `data[].amount_paid_cents` | integer | yes |  |
| `data[].hosted_invoice_url` | string \| null | yes | (format uri) |
| `data[].invoice_pdf` | string \| null | yes | (format uri) |
| `data[].period_start` | string \| null | yes | (format date-time) |
| `data[].period_end` | string \| null | yes | (format date-time) |

### 401

Missing, unknown, revoked or expired credentials.

### 403

The credentials are valid but not allowed to do this (missing scope, suspended account or failed CSRF check).

### 500

An unexpected error. Any charge was refunded. Retry with the same idempotency key.

### 503

`maintenance`: the console's database, sign-in or payments are unavailable for a moment (for
`createGoogleSession` also: Google sign-in is not configured, or Google's signing keys cannot be fetched).
Retry after `retry-after`. Nothing was changed.


## Examples

Illustrative values. Examples show the shape of requests and responses; the numbers in them are not measured results.

Response: A renewal, a reset and a top-up

```json
{
  "object": "list",
  "data": [
    {
      "id": "in_1QTx7c2eZvKYlo2C5QzX1a2b",
      "object": "invoice",
      "kind": "subscription",
      "plan": "base",
      "status": "paid",
      "number": "THINQIT-0042",
      "created": "2026-11-03T09:15:12Z",
      "currency": "EUR",
      "amount_due_cents": 1209,
      "amount_paid_cents": 1209,
      "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1O/live_YWNjdF8xTz",
      "invoice_pdf": "https://pay.stripe.com/invoice/acct_1O/live_YWNjdF8xTz/pdf",
      "period_start": "2026-11-03T09:15:00Z",
      "period_end": "2026-12-03T09:15:00Z"
    },
    {
      "id": "in_1QTx6a2eZvKYlo2C7Yb3C4d5",
      "object": "invoice",
      "kind": "reset",
      "plan": "base",
      "status": "paid",
      "number": "THINQIT-0041",
      "created": "2026-10-20T14:02:40Z",
      "currency": "EUR",
      "amount_due_cents": 303,
      "amount_paid_cents": 303,
      "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1O/live_YWNjdF8xTy",
      "invoice_pdf": "https://pay.stripe.com/invoice/acct_1O/live_YWNjdF8xTy/pdf",
      "period_start": null,
      "period_end": null
    },
    {
      "id": "in_1QTx5b2eZvKYlo2C9Ef6G7h8",
      "object": "invoice",
      "kind": "top_up",
      "plan": null,
      "status": "paid",
      "number": "THINQIT-0040",
      "created": "2026-10-19T08:30:05Z",
      "currency": "EUR",
      "amount_due_cents": 6050,
      "amount_paid_cents": 6050,
      "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1O/live_YWNjdF8xTx",
      "invoice_pdf": "https://pay.stripe.com/invoice/acct_1O/live_YWNjdF8xTx/pdf",
      "period_start": null,
      "period_end": null
    }
  ]
}
```
