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

# 🧾 Invoices

### Invoices

Browse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.

## 🧾 Get jobs ready for invoicing

> Mirrors \`GET /api/v1/invoices/ready-jobs\`. Internal-only — client API keys → 403.

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicInvoiceReadyJobsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"perPage":{"type":"number"},"total":{"type":"number"},"totalPages":{"type":"number"}},"required":["page","perPage","total","totalPages"]}},"required":["data","pagination"]}}},"paths":{"/api/public/v1/invoices/ready-jobs":{"get":{"summary":"🧾 Get jobs ready for invoicing","description":"Mirrors `GET /api/v1/invoices/ready-jobs`. Internal-only — client API keys → 403.","tags":["🧾 Invoices"],"responses":{"200":{"description":"Ready jobs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInvoiceReadyJobsResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/invoices/ready-jobs/filters

> 🧾 Get filter options for invoice-ready jobs

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicInvoiceReadyJobsFiltersResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"type":{"type":"string","enum":["pills","checkboxes","radio"]},"options":{"type":"array","items":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}}]},"label":{"type":"string"},"count":{"type":"number"}},"required":["value","label"]}}},"required":["label","value","type","options"]}}},"required":["data"]}}},"paths":{"/api/public/v1/invoices/ready-jobs/filters":{"get":{"summary":"🧾 Get filter options for invoice-ready jobs","tags":["🧾 Invoices"],"responses":{"200":{"description":"Filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInvoiceReadyJobsFiltersResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/invoices

> 🧾 List invoices with filters, search, and pagination

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicInvoicesListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"perPage":{"type":"number"},"total":{"type":"number"},"totalPages":{"type":"number"}},"required":["page","perPage","total","totalPages"]}},"required":["data","pagination"]}}},"paths":{"/api/public/v1/invoices":{"get":{"summary":"🧾 List invoices with filters, search, and pagination","tags":["🧾 Invoices"],"responses":{"200":{"description":"Invoices","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInvoicesListResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/invoices/filters

> 🧾 Get filter options for invoices

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicInvoiceFiltersResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"type":{"type":"string","enum":["pills","checkboxes","radio"]},"options":{"type":"array","items":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}}]},"label":{"type":"string"},"count":{"type":"number"}},"required":["value","label"]}}},"required":["label","value","type","options"]}}},"required":["data"]}}},"paths":{"/api/public/v1/invoices/filters":{"get":{"summary":"🧾 Get filter options for invoices","tags":["🧾 Invoices"],"responses":{"200":{"description":"Filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInvoiceFiltersResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/invoices/{id}

> 🧾 Get invoice details by ID

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicInvoiceDetailResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}},"paths":{"/api/public/v1/invoices/{id}":{"get":{"summary":"🧾 Get invoice details by ID","tags":["🧾 Invoices"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Invoice","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInvoiceDetailResponse"}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"}}}}}}
```

## GET /api/public/v1/invoices/{id}/pdf

> 🧾 Generate invoice PDF

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🧾 Invoices","description":"## Invoices\n\nBrowse invoices and invoice-ready jobs, including filter metadata and per-invoice PDF download. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}}},"paths":{"/api/public/v1/invoices/{id}/pdf":{"get":{"summary":"🧾 Generate invoice PDF","tags":["🧾 Invoices"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"PDF","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"}}}}}}
```
