> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cleo-pay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an invoice

> GET /v1/invoices/{invoiceId} reads one invoice with its line items, amounts paid and remaining, customer and hosted pay link.

```
GET /v1/invoices/{invoiceId}
```

**Scope:** `invoices:read`

<ParamField path="invoiceId" type="string" required>The invoice's `id`. It is also `data.id` on `invoice.*` events.</ParamField>

A bill the business pays is not an invoice and answers `404 not_found`. Read it with `GET /v1/payables/{payableId}`.

## Response

```json theme={null}
{
  "id": "d7e8f9a0-b1c2-4d3e-8f4a-5b6c7d8e9f0a",
  "publicId": "INV-00118",
  "status": "open",
  "paymentStatus": "none",
  "totalAmountCents": 530000,
  "amountPaidCents": 0,
  "remainingAmountCents": 530000,
  "dueDate": "2026-11-30",
  "issueDate": "2026-10-17",
  "customNumber": "INV-2026-118",
  "description": "Catering for the 14 November launch",
  "customer": { "id": "8a7b6c5d-4e3f-4a1b-9c8d-7e6f5a4b3c2d", "displayName": "Northwind Events" },
  "paymentLink": { "enabled": true, "url": "https://stg.cleo-pay.com/pay/2Yt8kQ...", "expiresAt": null },
  "dashboardUrl": "https://stg.cleo-pay.com/dash/business/get-paid/d7e8f9a0-b1c2-4d3e-8f4a-5b6c7d8e9f0a",
  "items": [
    { "name": "Event catering", "description": null, "quantity": 1, "unitAmountCents": 480000, "totalCents": 480000 },
    { "name": "Staffing", "description": null, "quantity": 4, "unitAmountCents": 12500, "totalCents": 50000 }
  ]
}
```

<ResponseField name="status" type="string">
  `draft` (not sent), `open` (sent, awaiting payment), `paid`, `void`, `declined` or `blocked` (the customer's business refused it).
</ResponseField>

<ResponseField name="paymentStatus" type="string">`none`, `scheduled`, `processing`, `held`, `settled`, `failed` or `clawback`.</ResponseField>

<ResponseField name="customer" type="object">
  `id` (the contact id, or `null` while the customer is a pending invitation) and `displayName`.
</ResponseField>

<ResponseField name="paymentLink" type="object">
  `enabled` is `true` only while the customer can pay through the link: it is on and not expired, the invoice is open with money due, and the business can receive. `url` is the hosted page. `expiresAt` may be `null`.
</ResponseField>

<ResponseField name="dashboardUrl" type="string">The invoice in the Cleo web app.</ResponseField>
<ResponseField name="items" type="array">`name`, `description`, `quantity`, `unitAmountCents`, `totalCents`.</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.