Finance → Receivables → Invoices → /invoices
An invoice is a bill issued against a lease. It is the anchor record for receivables: statements, allocations, aging, collections, tax filing and the general ledger all derive from it.
The module's tabs:
| Tab | Route | Contents |
|---|---|---|
| Invoices | /invoices | Invoice headers. |
| Invoice Items | /invoice-page/invoice-items | Every line, across every invoice — useful for revenue analysis by service type. |
| Credit Notes | /invoice-page/adjustments | Credits raised against invoices. |
| Debit Notes | /invoice-page/debit-notes | Additional charges raised against invoices. |
Five independent statuses
This is the single most important thing to understand about an invoice. It does not have "a status" — it has five, and they move independently.
| Dimension | Values | Answers |
|---|---|---|
| Invoice status | draft · issued · voided · cancelled | Does this document exist as a bill? |
| Payment status | unpaid · partially_paid · paid · overpaid · written_off | Has it been settled? |
| Posting status | not_posted · posting · posted · reversal_pending · reversed · failed | Has it reached the general ledger? |
| Approval status | not_required · not_started · pending · approved · rejected | Has it cleared internal approval? |
| Communication status | pending · queued · sent · delivered · read · undelivered · failed · and others | Did it reach the resident? |
Creating an invoice
Open the form
Invoices → Add.
Choose the billing subject
Select the lease. The unit is derived from the lease — invoices are always attached to a billing subject, never floating.
Add lines
Each line references a service type (rent, water, service charge, deposit…), with quantity, unit price and description. The service type determines the income account the line posts to and its tax treatment.
Set dates
Invoice date and due date. The due date drives aging, dunning and penalties — not the invoice date.
Review the tax
Tax is applied exclusive of the line amount platform-wide: a KES 10,000 line at 16% bills KES 11,600. Inclusive tax is deliberately not supported.
Save, then issue
A draft can still be edited freely. Issuing makes it a real bill: it posts, becomes payable, and enters aging.
Generating invoices in bulk
Most invoices are not typed in by hand:
- Recurring invoices generate the cycle's rent and standing charges — see Recurring invoices.
- IoT billing runs turn metered consumption into invoices — see Utilities & smart meters.
- Bulk upload imports invoices from a spreadsheet — see Bulk upload.
- Penalty assessments post late fees as invoices — see Penalties.
The invoice detail page
Beyond the lines and totals, the detail page carries tabs contributed by other modules:
| Tab | What it shows |
|---|---|
| Payments | Payments allocated to this invoice, and how much of each. |
| Adjustments | Credit and debit notes raised against it. |
| Approvals | The approval state, who decided, and the server-computed list of actions available to you. |
| eTIMS Integration | Submission status, the audit trail of attempts, live updates, and the KRA certified receipt with QR code and fiscal details once accepted. |
| Mappings | Provider sync mappings, with retry for failed submissions. |
| Documents | Attached and generated documents. |
| Communications | Every send attempt and its delivery outcome. |
| Rent schedule | For lease-driven invoices, the schedule the charge came from. |
Sending an invoice
Use the send action to deliver by email and/or SMS. What is sent is rendered from a message template, so the wording is consistent and controlled.
Delivery is tracked end to end — queued, sent, delivered, read, failed — on the invoice's communication status and in the Delivery Tracker.
Approvals
Where your organisation requires it, issuing an invoice routes to the approvals inbox instead of issuing directly. The invoice's approval state and a summary of the decision are shown inline; the actions you personally can take are computed by the server, so the buttons you see are the buttons you may use.
Tax and eTIMS
Invoices are submitted to KRA through the DigiTax integration:
- Send to eTIMS submits the invoice for certification.
- The certified receipt — QR code, control unit details, invoice number — is displayed on the invoice once accepted.
- Re-file resubmits an already-accepted invoice.
See Tax & eTIMS for setup, tax classes, and reconciliation.
Correcting an invoice
| Situation | Do this |
|---|---|
| Draft, wrong details | Edit it. |
| Issued, should not have been | Void it. The ledger posting is reversed. |
| Issued, amount too high | Raise a credit note. |
| Issued, amount too low | Raise a debit note. |
| Correct but uncollectable | Write off. The invoice remains for history; the receivable is removed as bad debt. |
See Adjustments. Void and write-off are not interchangeable — void says the bill should never have existed, write-off says it existed and will not be paid.
Filtering the list
The grid supports the usual filters plus a date range basis selector, so you can filter by invoice date or by due date depending on the question you are asking. Filter by payment status for receivables work, by posting status for accounting reconciliation, and by communication status when chasing delivery failures.
Common problems
| Symptom | Check |
|---|---|
| Invoice does not appear in aging | Is it still draft? Only issued invoices are receivable. |
| Tenant paid but the invoice is still unpaid | The payment exists but is unallocated. See Allocations. |
| Invoice missing from the trial balance | Posting status. not_posted or failed means it never reached the ledger. |
| eTIMS shows rejected | Open the eTIMS tab for the rejection reason; most are tax-class or item-mapping issues. |
| Tenant says the bill never arrived | Communication status, then the Delivery Tracker. |