Expense Management
Expense Management covers everyday expense submission and approval, with an optional bridge into Billing for expenses you want to pass on to a client.
Expenses
An expense is either general or mileage — mileage expenses
auto-compute their amount from distance × rate, rather than you entering
an amount directly. Every expense belongs to a category (see below).
Status only moves through an explicit approve/reject action, never a generic edit:
Once approved, an expense is a financial record: it can no longer be
edited or deleted. Rejecting an expense records who rejected it, when, and
why (approver_id, decided_at, rejection_reason).
Categories
Expense categories are per-organization (name, description, active flag, sort order) and configured under Settings → Expense Categories.
Expense Reports
Instead of approving expenses one at a time, group several into a report and decide on all of them at once. A report has its own lifecycle:
Approving or rejecting a report cascades the decision to every expense in it.
Billing a client for an expense
Mark an expense is_billable with an Account attached, and it can be
rebilled onto that Account’s invoice — this creates an invoice line
item linked back to the originating expense and stamps rebilled_at. Each
expense can only be rebilled once; Moyo Suite enforces this at the database level
so two people rebilling the same expense at the same moment can’t create a
duplicate line item.
Related
- Billing & Invoicing — where rebilled expenses land as invoice line items
- Team & Permissions — the Expense Approver profile exists specifically for this workflow