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

# List billing invoices

`GET /invoices`

## Request

- Base URL: `https://api.schematichq.com`
- URL: `https://api.schematichq.com/invoices`
- Auth: API key in header `X-Schematic-Api-Key`

## Query parameters

- `company_id` string
- `contract_id` string
- `document_state` 'credited' | 'draft' | 'finalized' | 'void'
- `past_due` boolean: Only open invoices with an amount left to pay whose due date has passed.
- `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe'
- `q` string: Search by invoice number, provider invoice ID or company name.
- `status` 'draft' | 'open' | 'paid' | 'uncollectible' | 'void'
- `limit` integer: Page limit (default 100)
- `offset` integer: Page offset (default 0)

## Response `200`

OK

- object
  - `data` BillingInvoiceResponseData[], required
    - `amount_paid` integer, required
    - `amount_remaining` integer, required
    - `collection_state` 'exported' | 'paid' | 'partially_paid' | 'past_due' | 'payment_failed' | 'queued' | 'sent'
    - `collector` 'external' | 'stripe_invoice' | 'stripe_payments'
    - `company_id` string, required
    - `contract_id` string, nullable: Null on a Stripe invoice.
    - `created_at` string, date-time, required
    - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
    - `document_state` 'credited' | 'draft' | 'finalized' | 'void'
    - `due_at` string, date-time, nullable
    - `external_id` string, nullable: The billing provider's invoice ID. Null on an invoice Schematic issued.
    - `finalized_at` string, date-time, nullable
    - `id` string, required
    - `number` string, nullable
    - `period_end` string, date-time, nullable: Null on a Stripe invoice.
    - `period_start` string, date-time, nullable: Null on a Stripe invoice.
    - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
    - `status` 'draft' | 'open' | 'paid' | 'uncollectible' | 'void', required
    - `subscription_external_id` string, nullable: The billing provider's subscription ID. Null on an invoice Schematic issued.
    - `subtotal` integer, required
    - `total` integer, required
    - `url` string, nullable: The billing provider's hosted invoice page. Null on an invoice Schematic issued.
  - `params` object, required: Input parameters
    - `company_id` string
    - `contract_id` string
    - `document_state` 'credited' | 'draft' | 'finalized' | 'void'
    - `limit` integer: Page limit (default 100)
    - `offset` integer: Page offset (default 0)
    - `past_due` boolean: Only open invoices with an amount left to pay whose due date has passed.
    - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe'
    - `q` string: Search by invoice number, provider invoice ID or company name.
    - `status` 'draft' | 'open' | 'paid' | 'uncollectible' | 'void'

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `500`: Server error

## Changes

> 230 revisions in range; 1 not diffed.

- **2026-10-20** `e92a4ba2fbb0`: 9 breaking, 18 info
  - the response property `data/items/contract_id` became nullable for the status `200`
  - the response property `data/items/document_state` became nullable for the status `200`
  - the response property `data/items/period_end` became nullable for the status `200`
  - the response property `data/items/period_start` became nullable for the status `200`
  - …23 more
- **2026-10-12** `6a825174a24f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/schematichq/apis/schematic-api/changes/invoices/get.md)

---

[API](https://skmtc.dev/schematichq/apis/schematic-api.md) - [All operations](https://skmtc.dev/schematichq/apis/schematic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/schematichq/apis/schematic-api/revisions/64cb7e17c236?raw)
