> For the complete documentation index, see [llms.txt](https://docs.shortcutco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shortcutco.com/developers/api-reference/reference/objects/invoice.md).

# The invoice object

The invoice object in the Shortcut API - every field, an example, and the endpoints that return it.

An invoice: a bill to a customer.

## Fields

| Field                 | Type                                                            | Description                                                                                                                                                                                                                                                                                                    |
| --------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                  | id                                                              | The invoice's id.                                                                                                                                                                                                                                                                                              |
| `object`              | `"invoice"`                                                     | Always `invoice`.                                                                                                                                                                                                                                                                                              |
| `number`              | integer                                                         | The invoice number the customer sees.                                                                                                                                                                                                                                                                          |
| `kind`                | `standard`, `prepay`, `project`                                 | `standard` invoices bill completed visits or manual lines. `prepay` invoices bill a coverage period in advance (see `coverageStartDate`). `project` invoices bill a project (deposit, progress, or final).                                                                                                     |
| `status`              | `draft`, `unpaid`, `overdue`, `paid`, `void`                    | `draft` invoices have not been sent to the customer. `unpaid` invoices are sent and not yet due (or have no due date). `overdue` invoices are past `dueAt`. `paid` and `void` invoices are closed. These match the app's invoice list, except that the app shows a draft as Unpaid or Overdue.                 |
| `paymentActivity`     | `processing`, `verification` or null                            | `processing` while a bank payment is in flight, `verification` while the bank needs the customer to verify; otherwise null. The invoice stays `unpaid` or `overdue` until the payment settles.                                                                                                                 |
| `customerId`          | id                                                              | The customer billed.                                                                                                                                                                                                                                                                                           |
| `propertyId`          | id or null                                                      | The property (service address) billed, when there is one.                                                                                                                                                                                                                                                      |
| `propertyAddress`     | string or null                                                  | The property's address as printed on the invoice when it was created.                                                                                                                                                                                                                                          |
| `propertyLabel`       | string or null                                                  | The property's label as printed on the invoice when it was created.                                                                                                                                                                                                                                            |
| `subtotal`            | number                                                          | Sum of the lines before tax and fees, in US dollars.                                                                                                                                                                                                                                                           |
| `salesTax`            | number                                                          | Sales tax charged, in US dollars.                                                                                                                                                                                                                                                                              |
| `processingFee`       | number                                                          | The processing fee in `total`. With `processingFeeScope` `card_only` it is 0 until a credit card pays the invoice with the fee, then equals `cardProcessingFee`; it stays 0 when the invoice is paid without the fee (bank, debit, offline, or a card-fee payment review settled at the total), in US dollars. |
| `processingFeeScope`  | `all_payments`, `card_only`                                     | Which payments carry the processing fee, fixed when the invoice was created: `all_payments` (in `total`) or `card_only` (only a credit-card payment adds `cardProcessingFee`).                                                                                                                                 |
| `cardProcessingFee`   | number                                                          | With `card_only`, the fee a credit-card payment adds on top of `total`; bank, debit, check and cash payments never pay it. 0 for `all_payments`, in US dollars.                                                                                                                                                |
| `lateFees`            | number                                                          | Late fees applied and not removed, in US dollars.                                                                                                                                                                                                                                                              |
| `total`               | number                                                          | What the customer owes in all: `subtotal + salesTax + processingFee + lateFees`, in US dollars.                                                                                                                                                                                                                |
| `dueDate`             | date or null                                                    | The due date as the customer's invoice prints it, `YYYY-MM-DD`: the calendar date of `dueAt` in UTC (the app stores a due date chosen as a date at midnight UTC). Null when there is none.                                                                                                                     |
| `dueAt`               | timestamp or null                                               | The stored due instant. The invoice is `overdue` once this moment passes, as in the app, ISO 8601 in UTC, or null.                                                                                                                                                                                             |
| `coverageStartDate`   | date or null                                                    | First day a prepay invoice covers, `YYYY-MM-DD`, or null.                                                                                                                                                                                                                                                      |
| `coverageEndDate`     | date or null                                                    | Last day a prepay invoice covers, `YYYY-MM-DD`, or null.                                                                                                                                                                                                                                                       |
| `sentAt`              | timestamp or null                                               | When the invoice was first sent, ISO 8601 in UTC, or null.                                                                                                                                                                                                                                                     |
| `paidAt`              | timestamp or null                                               | When the invoice was paid in full, ISO 8601 in UTC, or null.                                                                                                                                                                                                                                                   |
| `createdAt`           | timestamp                                                       | When the invoice was created, ISO 8601 in UTC.                                                                                                                                                                                                                                                                 |
| `updatedAt`           | timestamp                                                       | When the invoice last changed, ISO 8601 in UTC.                                                                                                                                                                                                                                                                |
| `lines`               | array of objects                                                | The lines in the order the customer's invoice shows them. Sales tax is the invoice's `salesTax`, computed by the app on the underlying lines. Only in answers from `GET /v1/invoices/{id}`.                                                                                                                    |
| `lines[].id`          | id                                                              | The line's id.                                                                                                                                                                                                                                                                                                 |
| `lines[].type`        | `service`, `product`, `add_on`, `discount`, `manual`, `project` | `service` bills a visit, `product` a product used on it, `add_on` an add-on to it, `discount` a visit discount (negative), `manual` a line entered by hand, `project` a project milestone, labor, material, change order, credit, or adjustment.                                                               |
| `lines[].name`        | string                                                          | What the line is for, as the customer sees it.                                                                                                                                                                                                                                                                 |
| `lines[].description` | string or null                                                  | More detail, as the customer sees it.                                                                                                                                                                                                                                                                          |
| `lines[].date`        | date                                                            | The service date of the line, `YYYY-MM-DD`.                                                                                                                                                                                                                                                                    |
| `lines[].amount`      | number                                                          | The line amount; a visit's amount includes the products shown as included in its price, in US dollars.                                                                                                                                                                                                         |
| `lines[].taxable`     | boolean                                                         | Whether sales tax applies to the line.                                                                                                                                                                                                                                                                         |
| `lines[].quantity`    | number or null                                                  | Quantity, for product and project lines that have one.                                                                                                                                                                                                                                                         |
| `lines[].unitPrice`   | number or null                                                  | Price per unit in US dollars, when the line has a quantity.                                                                                                                                                                                                                                                    |
| `lines[].unitLabel`   | string or null                                                  | The unit, such as `bag`, when the line has one.                                                                                                                                                                                                                                                                |
| `lines[].visitId`     | id or null                                                      | The visit the line bills, when there is one.                                                                                                                                                                                                                                                                   |
| `lines[].serviceId`   | id or null                                                      | The service the line bills, when there is one.                                                                                                                                                                                                                                                                 |

## Example

```json
{
  "id": "2515a6b6-215f-41fd-8daa-1d4419f4588b",
  "object": "invoice",
  "number": 1042,
  "kind": "standard",
  "status": "unpaid",
  "paymentActivity": null,
  "customerId": "6e917912-6adb-4459-8725-efa063702ae7",
  "propertyId": "7a0dedcd-7658-4914-82a2-645b6eec9fa2",
  "propertyAddress": "412 Elm St, Bozeman, MT 59715",
  "propertyLabel": "Home",
  "subtotal": 120,
  "salesTax": 9.5,
  "processingFee": 0,
  "processingFeeScope": "all_payments",
  "cardProcessingFee": 45,
  "lateFees": 0,
  "total": 129.5,
  "dueDate": "2026-10-31",
  "dueAt": "2026-10-31T00:00:00.000Z",
  "coverageStartDate": null,
  "coverageEndDate": null,
  "sentAt": "2026-10-01T15:05:02.000Z",
  "paidAt": null,
  "createdAt": "2026-10-01T15:02:20.114Z",
  "updatedAt": "2026-10-16T17:04:12.381Z",
  "lines": [
    {
      "id": "dc18645f-d862-4fa6-84ac-daedd0f71634",
      "type": "service",
      "name": "Weekly mowing",
      "description": null,
      "date": "2026-10-20",
      "amount": 129.5,
      "taxable": true,
      "quantity": 1,
      "unitPrice": 42,
      "unitLabel": "bag",
      "visitId": "5ebe2ef6-5b08-4a3d-8752-a584539ce0cb",
      "serviceId": "3f549866-3b9e-43ad-87e9-0ef434334a3b"
    }
  ]
}
```

## Endpoints

| Endpoint                      | What it does    |
| ----------------------------- | --------------- |
| `GET /v1/invoices`            | List invoices   |
| `GET /v1/invoices/{id}`       | Get an invoice  |
| `POST /v1/invoices/{id}/void` | Void an invoice |
