> For the complete documentation index, see [llms.txt](https://timechain.gitbook.io/neucron/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://timechain.gitbook.io/neucron/api-references/invoices.md).

# Invoices

Core Get Paid documents: draft → finalise → collect → mark paid.

* Create / update / share invoices
* Reminders & confirmations
* Revenue & customer balances

> Lifecycle: `DRAFT` → `FINALISED` → `PAID`.

## Get Invoice Details

> Fetch a single invoice by ID.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice":{"get":{"tags":["Invoices"],"summary":"Get Invoice Details","description":"Fetch a single invoice by ID.","operationId":"invoices_get_invoice_details","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Create Invoice

> Create a new invoice (typically in draft state).

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice":{"post":{"tags":["Invoices"],"summary":"Create Invoice","description":"Create a new invoice (typically in draft state).","operationId":"invoices_create_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"invoice":{"type":"object","additionalProperties":true,"description":"Invoice payload: customer, line items, currency, due date, etc."}},"required":["invoice"]}}}}}}}}
```

## Update Invoice

> Update a draft (or editable) invoice.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice":{"put":{"tags":["Invoices"],"summary":"Update Invoice","description":"Update a draft (or editable) invoice.","operationId":"invoices_update_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"invoice":{"type":"object","additionalProperties":true,"description":"Updated invoice fields."}},"required":["invoice"]}}}}}}}}
```

## Delete Invoice

> Delete an invoice.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice":{"delete":{"tags":["Invoices"],"summary":"Delete Invoice","description":"Delete an invoice.","operationId":"invoices_delete_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## List Invoices

> List invoices filtered by status array.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/list":{"post":{"tags":["Invoices"],"summary":"List Invoices","description":"List invoices filtered by status array.","operationId":"invoices_list_invoices","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"page","in":"query","required":false,"description":"Page number.","schema":{"type":"number"}},{"name":"size","in":"query","required":false,"description":"Page size.","schema":{"type":"number"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"Status filters, e.g. `[\"DRAFT\",\"PAID\"]`."}}}}}}}}
```

## Finalise Invoice

> Finalise an invoice so it can be shared and paid.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/finalise":{"post":{"tags":["Invoices"],"summary":"Finalise Invoice","description":"Finalise an invoice so it can be shared and paid.","operationId":"invoices_finalise_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Mark Invoice Paid

> Mark an invoice as paid and optionally notify recipients.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/mark-paid":{"post":{"tags":["Invoices"],"summary":"Mark Invoice Paid","description":"Mark an invoice as paid and optionally notify recipients.","operationId":"invoices_mark_invoice_paid","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"paid_at":{"type":"string","description":"ISO timestamp of payment."},"emails":{"type":"array","items":{"type":"string"},"description":"Notification recipients."},"cc":{"type":"array","items":{"type":"string"},"description":"CC emails."},"bcc":{"type":"array","items":{"type":"string"},"description":"BCC emails."},"note":{"type":"string","description":"Optional note."}},"required":["paid_at"]}}}}}}}}
```

## Share Invoice

> Share an invoice with one or more email addresses.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/share":{"post":{"tags":["Invoices"],"summary":"Share Invoice","description":"Share an invoice with one or more email addresses.","operationId":"invoices_share_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"sendEmail","in":"query","required":false,"description":"Whether to send email.","schema":{"type":"boolean"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"Recipient emails."}}}}}}}}
```

## Send Invoice Reminder

> Send a payment reminder for an unpaid invoice.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/reminder":{"post":{"tags":["Invoices"],"summary":"Send Invoice Reminder","description":"Send a payment reminder for an unpaid invoice.","operationId":"invoices_send_invoice_reminder","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"description":"Recipients."},"cc":{"type":"array","items":{"type":"string"},"description":"CC."},"bcc":{"type":"array","items":{"type":"string"},"description":"BCC."},"note":{"type":"string","description":"Reminder note."}},"required":["emails"]}}}}}}}}
```

## Send Payment Confirmation

> Send a payment confirmation email for an invoice.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/confirmation":{"post":{"tags":["Invoices"],"summary":"Send Payment Confirmation","description":"Send a payment confirmation email for an invoice.","operationId":"invoices_send_payment_confirmation","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"description":"Recipients."},"note":{"type":"string","description":"Optional note."},"paid_at":{"type":"string","description":"Payment timestamp."}},"required":["emails"]}}}}}}}}
```

## Map Collection to Invoice

> Link a payment collection to an invoice.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/map-collection":{"post":{"tags":["Invoices"],"summary":"Map Collection to Invoice","description":"Link a payment collection to an invoice.","operationId":"invoices_map_collection_to_invoice","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"invoiceID","in":"query","required":true,"description":"Invoice ID.","schema":{"type":"string"}},{"name":"collectionID","in":"query","required":true,"description":"Payment collection ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":false,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}
```

## Get Revenue Graph

> Revenue time-series analytics.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/revenue":{"get":{"tags":["Invoices"],"summary":"Get Revenue Graph","description":"Revenue time-series analytics.","operationId":"invoices_get_revenue_graph","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"from","in":"query","required":false,"description":"Start date.","schema":{"type":"string"}},{"name":"to","in":"query","required":false,"description":"End date.","schema":{"type":"string"}},{"name":"currency","in":"query","required":false,"description":"Currency.","schema":{"type":"string"}},{"name":"customerID","in":"query","required":false,"description":"Filter by customer.","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Bucket period (e.g. day/week/month).","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Get Customer Balances

> Outstanding / paid balances per customer.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Invoices","description":"Core Get Paid documents: draft → finalise → collect → mark paid.\n\n- Create / update / share invoices\n- Reminders & confirmations\n- Revenue & customer balances\n\n> Lifecycle: `DRAFT` → `FINALISED` → `PAID`."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/invoice/customer-balances":{"get":{"tags":["Invoices"],"summary":"Get Customer Balances","description":"Outstanding / paid balances per customer.","operationId":"invoices_get_customer_balances","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"from","in":"query","required":false,"description":"Start date.","schema":{"type":"string"}},{"name":"to","in":"query","required":false,"description":"End date.","schema":{"type":"string"}},{"name":"currency","in":"query","required":false,"description":"Currency.","schema":{"type":"string"}},{"name":"customerID","in":"query","required":false,"description":"Customer filter.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```
