The Invoices tool manages the full invoice lifecycle — from draft creation to approval, sending, and payment tracking — with deep Xero integration. Invoices are linked to budgets, companies, and contacts, and can be pushed to and synced from Xero automatically.
- Invoice CRUD — Create, edit, and delete invoices with status tracking
- Xero integration — Push invoices to Xero as drafts, approve, send, void, or delete via the Xero API
- Status sync — Invoice statuses are synced from Xero (Draft, Submitted, Authorised, Paid, Voided)
- Budget & resource linking — Link invoices to a budget, and associate with a company, contact, project, or deal
- Invoice line items — Add detailed line items with descriptions and amounts
- Mapping rules — Configure Xero account codes per service type for automatic GL allocation
- History log — All invoice changes are tracked for audit trail
- Filtering — Filter invoices by status, company, budget, project, or deal
| Level | View | Create/Edit | Manage (delete / configure mapping rules) |
|---|
| Executive | All | Yes | Yes |
| Head | All | Yes | No |
| Manager | Yes | Yes | No |
| Lead / Employee | Yes | No | No |
- Route:
src/routes/invoices.tsx / src/routes/invoices.lazy.tsx
- Page:
src/components/invoices/invoices-page.tsx
- Detail:
src/components/invoices/invoice-detail-page.tsx
- API:
worker/routes/invoices.ts
| Method | Path | Permission | Description |
|---|
GET | /api/invoices | view | List invoices with optional filters |
GET | /api/invoices/:id | view | Get invoice detail with line items |
POST | /api/invoices | update | Create an invoice |
PUT | /api/invoices/:id | update | Update an invoice |
DELETE | /api/invoices/:id | manage | Delete an invoice |
GET | /api/invoices/mapping-rules | view | List Xero account code mapping rules |
PUT | /api/invoices/mapping-rules/:serviceTypeId | manage | Set mapping rule for a service type |
- Budgets — Invoices are linked to budgets to track billed amounts
- Companies & Contacts — Invoices reference client companies and contacts