Invoicing
The Invoicing module manages the full sales invoice lifecycle — from draft creation to payment — with TRA-compliant VAT treatment, multi-currency support, and automatic General Ledger posting.
Set up your Posting Setup so that invoice approval and payment automatically generate the correct AR, VAT, and Revenue journal entries.
Status lifecycle
Draft → Sent → Paid
↓
Overdue
↓
Void
| Status | Meaning |
|---|---|
| Draft | Created but not yet sent. Fully editable. |
| Sent | Issued to the client. Edits are locked. |
| Paid | Payment received in full. |
| Overdue | Past the due date with no payment recorded. |
| Void | Cancelled. Retains the record for audit purposes. |
Invoices past their due date are automatically flagged Overdue when the system loads.
Creating an invoice
From a job (most common)
- Go to Jobs → open the relevant job
- Click Create Invoice
- The system pre-fills line items from income records
- Adjust as needed, then save as Draft
Standalone invoice
- Go to Finance → Invoices
- Click + New Invoice
- Select the customer
- Add line items manually
- Save as Draft
Line items
Each line item contains:
- Description — what the service or product is
- Quantity and Unit (e.g. kg, trip, container)
- Unit Price and Total
- VAT Rate — per line (defaults to tenant VAT rate)
VAT treatment
| Mode | How it works |
|---|---|
| VAT Exclusive | VAT is added on top of the net amount. Subtotal + VAT = Total. |
| VAT Inclusive | VAT is extracted from the gross amount. Total already includes VAT. |
Tanzania standard rate is 18%. International freight (export haulage) is typically zero-rated — set VAT to 0% on those lines.
This is general guidance only. Confirm your specific VAT obligations with a qualified tax advisor.
Multi-currency
Invoices can be issued in any supported currency: TZS, USD, EUR, GBP, ZAR, ZMW.
Set the currency on the invoice header. Exchange rates are entered manually — always record the rate at the time of invoicing for accurate TZS-equivalent reporting.
Sending an invoice
From the invoice detail view, click Send. This opens a pre-filled email form with:
- Recipient email (from the customer profile)
- Subject and body with invoice number and total
- Invoice status automatically changes to Sent
You can also click Print / PDF to download a branded PDF and attach it manually to your own email.
PDF download
Click the Download PDF icon on any invoice to generate a print-ready PDF:
- A4 format, multi-page if needed
- Includes company logo, TIN, stamp, and payment details
- Suitable for emailing directly to clients or filing for TRA purposes
Marking as paid
- Open a Sent or Overdue invoice
- Click Mark Paid
If Posting Setup is configured, this creates a posted payment journal:
DR Bank / Cash Account [total]
CR Accounts Receivable [total]
GL posting
When Posting Setup is configured, invoices automatically post journal entries to the General Ledger:
| Event | Journal created |
|---|---|
| Invoice sent | DR Accounts Receivable / CR Revenue / CR VAT Payable |
| Invoice paid | DR Bank / CR Accounts Receivable |
The GL journal number is shown on the invoice after posting. Click it to view the journal entry directly.
FactBox
Click any row in the Invoices list to open the FactBox — a summary panel showing customer, dates, total, and status. From the FactBox you can:
- Open Invoice → — navigate to the full detail page
- Mark Paid — mark as paid directly from the list
AR Aging
Go to Accounting → Reports → AR Aging for a full aging breakdown of all outstanding customer invoices:
| Bucket | Days past due date |
|---|---|
| Current | Not yet due |
| 1–30 days | Recently overdue |
| 31–60 days | Overdue — follow up |
| 61–90 days | Significantly overdue |
| 90+ days | Escalate |
Permissions
| Permission | What it allows |
|---|---|
invoice.view | View the invoice list and details |
invoice.create | Create new draft invoices |
invoice.edit | Edit draft invoices |
invoice.delete | Delete draft invoices |
invoice.send | Send invoices and mark as paid |
Assign these in Settings → Access → Roles.
Related
- Quotations → — convert an accepted quote to an invoice in one click
- Posting Setup → — configure GL account mappings for auto-posting
- AR Aging → — full aging report in Financial Reports
- Customers → — manage the clients your invoices are addressed to