Record supplier invoices, track what you owe, and pay on due date
Purchases is the mirror image of Sales. Where Sales captures invoices you send to customers and receipts when they pay, Purchases captures the invoices your suppliers send you (called bills) and the payments you make against them. Everything that the customer flow does — PDFs, statements, aging reports, finance ledger — works the same way on the supplier side.
Line items editable. Nothing posted to the finance ledger yet.
Finalized. The finance ledger posts three entries: accounts payable (credit), purchases (debit), and VAT input (debit, if tax > 0). Line items are locked.
At least one payment recorded but balance still outstanding.
Balance is zero.
Only bills without recorded payments can be cancelled. Ledger entries are reversed automatically.
Three entry points at Purchases → Bills → New Bill:
Pick a supplier, add line items, set bill date and due date. Products can be picked from a searchable dropdown or typed as free text (for services like delivery fees or professional charges).
On the Receive Stock form, click Receive & Bill Now instead of plain Receive. Stock posts as normal, then you land on a pre-filled bill with the supplier and line items ready.
On any non-draft, non-cancelled purchase order, click Convert to Bill. Supplier and items carry over.
BILL-00001) for every bill. There's a separate field for the Supplier's Invoice # — the number printed on the supplier's paperwork — so you can search either way later.Open any Unpaid or Partial bill and click Record Payment. The dialog captures:
| Field | Notes |
|---|---|
| Amount | Defaults to the outstanding balance. Can be less for a partial payment. |
| Payment Method | Cash, M-Pesa, Bank Transfer, or Cheque. |
| Reference | M-Pesa code, cheque number, or bank reference — required for M-Pesa / Bank / Cheque when the tenant-level toggle is on. |
| Paid From (Money Source) | Which cash reserve the money is leaving from. Cashbook and Cash Flow reports pick this up as an outflow. |
| Notes | Internal only — supplier doesn't see these. |
Each payment gets its own number (SPAY-00001) and generates a Supplier Payment Receipt PDF you can send to the supplier as proof of payment.
Internal confirmation copy with supplier details, line items, VAT input, totals. Download from the PDF button on the bill detail page.
One per supplier payment. Mirrors the customer receipt — prominent amount block, method/reference, running balance. Download icon on each payment history row.
Running account for a supplier: opening balance → bills (debit) → payments (credit) → closing balance. Generate on demand from the supplier detail page; range defaults to the current month.
On each bill you can upload a PDF or image of the supplier's original invoice (up to 10 MB). This is stored alongside the bill and opens in a new tab on click. Handy for audit trails, disputes, or quickly re-checking what the supplier actually sent.
Reports → AP Aging — mirrors AR Aging: 5 buckets (current, 1-30, 31-60, 61-90, 90+) grouped by supplier. CSV and Excel export. Schedulable from Settings → Report Schedules.
The Tax report now breaks VAT into three parts:
Net VAT Payable = Output − (Bills + Expenses). Once you start recording supplier purchases as Bills, this is KRA-return shaped.
Reports → Cash Flow includes supplier payments as outflows alongside expenses — per payment method, per money source, and in the period-over-period comparison.
A new Owed to Suppliers stat card sits next to Outstanding (receivables) on the main dashboard so AR and AP show side by side.
From Settings → Report Schedules you can auto-email AP Aging and per-supplier Statements on a daily, weekly, or monthly schedule. The Supplier Statement type needs a per-schedule supplier picker so recipients get the right account.
Business and Enterprise (feature flag accounts_payable). Free and Starter do not include the Purchases module.
purchases.suppliers.view / manage, purchases.bills.view / create / edit / approve, purchases.payments.create.
Admin and Finance Manager get the full set. Stock Manager sees suppliers and bills. Viewer is read-only.