---
title: "List a company's plan invoices"
method: GET
path: "/companies/{id}/plan-invoices"
tags: ["Companies"]
---

# List a company's plan invoices

`GET /companies/{id}/plan-invoices`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/companies/{id}/plan-invoices`
- Auth: HTTP bearer

Lists the plan invoices issued to a company, newest first. Poll it to see when an invoice is paid: the status becomes `paid` and `assignmentId` names the plan assignment it created. Cursor-paginated. Requires `plans.read`.

## Path parameters

- `id` string, required: The company's opaque object `id`: the `id` field returned by the company endpoints (e.g. `p17xq4c2b9r5gz3e8j0r6t4k7m2n9d5w`). This is NOT the `slug` or display name; passing a slug like `antler` returns 404. To look up a company by name or slug, use `GET /v1/companies`, `POST /v1/companies/search`, or `POST /v1/companies/find-or-create` and read the returned `id`.

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

A page of plan invoices.

- object
  - `object` 'list', required
  - `url` string, required
  - `hasMore` boolean, required
  - `nextCursor` string, nullable, required
  - `data` CompanyPlanInvoice[], required
    - `id` string, required: The plan invoice ID.
    - `object` 'company_plan_invoice', required
    - `companyId` string, required
    - `planId` string, required
    - `planName` string, nullable, required
    - `status` 'issued' | 'paid' | 'canceled' | 'uncollectible', required: `issued`: awaiting payment. `paid`: paid, and the plan was assigned to the company. `canceled`: canceled before payment. `uncollectible`: marked uncollectible in Stripe.
    - `amountCents` integer, required: Amount per invoice, in currency minor units.
    - `currency` string, required: Lowercase ISO 4217 currency code.
    - `billingInterval` 'month' | 'year', nullable, required: Null for a one-off invoice; otherwise how often it recurs.
    - `billingIntervalCount` integer, nullable, required: Number of intervals between invoices (3 months = quarterly).
    - `contactEmail` string, required: The billing email the invoice is for.
    - `hostedInvoiceUrl` string, nullable, required: The payment page for the employer. Cavuno does not send the invoice itself; share this link with them.
    - `dueAt` string, nullable, required: ISO-8601 due date (30 days after issue).
    - `assignmentId` string, nullable, required: The plan assignment created when the invoice was paid; null until then.
    - `createdAt` string, required: ISO-8601 creation time.
    - `updatedAt` string, required: ISO-8601 time of the last change.

## Other responses

- `404`: Company not found.

## Changes

- **2026-10-20** `de39bd3242e2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/companies/:id/plan-invoices/get.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
