> For the complete documentation index, see [llms.txt](https://timechain.gitbook.io/neucron-javascript-sdk/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-javascript-sdk/payments-and-operations/invoicing-and-payment-collections.md).

# Invoicing & Payment Collections

Accessor: `sdk.invoice`

Create invoices, payment collections, payment sessions, reminders, confirmations, revenue graphs, and collection status checks.

## Method surface

| Method                                                     | Purpose                                    |
| ---------------------------------------------------------- | ------------------------------------------ |
| `sdk.invoice.createInvoice()`                              | createInvoice                              |
| `sdk.invoice.getInvoices()`                                | getInvoices                                |
| `sdk.invoice.getInvoiceDetails()`                          | getInvoiceDetails                          |
| `sdk.invoice.updateInvoice()`                              | updateInvoice                              |
| `sdk.invoice.deleteInvoice()`                              | deleteInvoice                              |
| `sdk.invoice.finaliseInvoice()`                            | finaliseInvoice                            |
| `sdk.invoice.markInvoiceAsPaid()`                          | markInvoiceAsPaid                          |
| `sdk.invoice.shareInvoice()`                               | shareInvoice                               |
| `sdk.invoice.sendInvoiceReminder()`                        | sendInvoiceReminder                        |
| `sdk.invoice.sendPaymentConfirmation()`                    | sendPaymentConfirmation                    |
| `sdk.invoice.mapCollectionToInvoice()`                     | mapCollectionToInvoice                     |
| `sdk.invoice.submitCollection()`                           | submitCollection                           |
| `sdk.invoice.createPublicPaymentCollection()`              | createPublicPaymentCollection              |
| `sdk.invoice.createPaymentCollection()`                    | createPaymentCollection                    |
| `sdk.invoice.updatePaymentCollection()`                    | updatePaymentCollection                    |
| `sdk.invoice.getInvoicePaymentCollections()`               | getInvoicePaymentCollections               |
| `sdk.invoice.createPaymentSession()`                       | createPaymentSession                       |
| `sdk.invoice.getPaymentSession()`                          | getPaymentSession                          |
| `sdk.invoice.checkPaymentCollection()`                     | checkPaymentCollection                     |
| `sdk.invoice.checkPaymentSession()`                        | checkPaymentSession                        |
| `sdk.invoice.getPaymentCollectionList()`                   | getPaymentCollectionList                   |
| `sdk.invoice.getPaymentCollection()`                       | getPaymentCollection                       |
| `sdk.invoice.getCollectionAssets()`                        | getCollectionAssets                        |
| `sdk.invoice.getWalletPaymentCollectionInfo()`             | getWalletPaymentCollectionInfo             |
| `sdk.invoice.createWalletPaymentCollectionCustomization()` | createWalletPaymentCollectionCustomization |
| `sdk.invoice.updateWalletPaymentCollectionCustomization()` | updateWalletPaymentCollectionCustomization |
| `sdk.invoice.getRevenueGraph()`                            | getRevenueGraph                            |
| `sdk.invoice.getCustomerBalances()`                        | getCustomerBalances                        |

## Basic usage

```typescript
const invoice = await sdk.invoice.createInvoice({ businessId, invoiceData });
const collection = await sdk.invoice.createPaymentCollection({ businessId, invoiceId: invoice.data.id, supported_assets });
```

## Notes

* Methods return `Promise<HttpResponse<T>>` unless they are local helpers such as token getters/setters.
* Authenticate with `sdk.auth.login()` or initialize with `authToken` before protected calls.
* Pass `businessId` on business-scoped operations; constructor-level `businessId` is typed but not applied globally.
* Request and response schemas are exported from `@timechainlabs/neucron-ts-sdk` and `@timechainlabs/neucron-ts-sdk/schemas`.
