Expenses

Capture what your people spend, approve it once, and let that single approval drive both the reimbursement and the client invoice.

The problem

A technician pays for parking at a client site, buys a replacement drive at the counter, and books a hotel for a Saturday cutover. The receipts go in a jacket pocket, then a photo in a chat thread, then a spreadsheet at month end. Somebody retypes the total into payroll so the technician gets their money back. Somebody else — usually later, usually from memory — tries to work out which of those costs were supposed to be charged to the client, and at what markup. The ones nobody remembers are absorbed.

What Solidlio does about it

An expense is captured once, with its receipt, against the client and the ticket it belongs to. It moves through one approval, and that approval does two things at once: it clears the amount for reimbursement to the person who paid, and it fixes the price the client will be charged, cost plus your configured markup. Rebilling then reads only expenses that are billable, approved and not already invoiced, and stamps each one with the invoice it landed on inside the same database transaction — so a cost cannot be billed twice, and cannot be quietly lost either.


Capabilities

CapabilityWhat it does
Expense captureRecords a dated cost with merchant, pre-tax amount, tax paid, category and tags.
Receipt evidenceAttaches images or PDFs up to 16 MB, stored privately and served only through the expense.
Five-state lifecycleDraft, submitted, approved, rejected, reimbursed — every transition reachable from the interface.
Named-role approvalRestricts approve, reject and reimburse to platform, MSP and organization administrators.
Rejection with reasonReturns an expense to its owner with a written reason, editable and resubmittable.
Reimbursement trackingMarks personally-paid expenses repaid, with the payer, the date and a payment reference.
Layered markupResolves the rebill uplift from contract, then account, then organization, then category, then default.
Price snapshottingFixes cost plus markup at approval, so a later policy change cannot restate a signed-off expense.
One-click rebillingTurns every eligible expense for a client into a draft invoice, one line per expense.
Double-bill protectionStamps each billed expense with its invoice inside the invoicing transaction.
Shared classificationUses the same category tree and tag set as vendor invoice lines, mapped to QuickBooks accounts.
Ticket and project linkRecords which ticket or project a cost was incurred against.

Built for MSPs and their clients

An expense belongs to the account that incurred it, and names the client organization it is rebillable to. A managed client’s own staff expenses live in the client’s account and never become visible to the servicing MSP — billing a client does not mean reading their internal spend.

OrganizationMSP
FilingIts own staff file their own costsIts technicians file costs, tagged to the client they were incurred for
ApprovalIts own org administrators approve its own expensesMSP administrators approve the MSP’s expenses
VisibilitySees only its own account’s expensesSees only its own account’s expenses, never a managed client’s
RebillingCan invoice organizations within its own accountCan invoice any client organization it services
Markup policySets its ownSets per-client and per-category markup for the costs it passes on

How it works

  1. Capture — A technician files the expense from the Expenses screen in either portal, enters the pre-tax amount and the tax paid separately, and attaches a photo of the receipt.
  2. Mark it billable — If the cost is the client’s, they tick “Rebill this to a client” and name the organization. A billable expense without a client is refused rather than left un-invoiceable.
  3. Submit — The expense becomes read-only to its owner and appears in the approval queue.
  4. Approve — An administrator reviews it and approves. The rebill price is calculated from the markup ladder and written onto the record. From here it cannot be edited or deleted.
  5. Reimburse — For personally-paid expenses, an administrator marks the money repaid and records the payment reference. Company-card costs skip this step entirely; approved is their final state.
  6. Rebill — The rebilling panel previews every billable, approved, un-invoiced expense for a client and totals it. One press creates a draft invoice with one line per expense and stamps each expense with that invoice.

Compliance and audit

Every expense record carries the full decision trail: who filed it, who approved or rejected it and when, the rejection reason in their own words, the markup fraction and rebill price fixed at approval, who marked it reimbursed, the payment reference, and the invoice it was billed on with the timestamp.

Self-approval is permitted — a one-person MSP has nobody else — but it is never hidden: the approver is always recorded, and the API and the interface both label an expense approved by its own submitter as self-approved.

Evidence is immutable after the decision. Receipts cannot be added to or removed from an approved or reimbursed expense, so what an auditor sees is what the approver saw.

Receipt bytes are never exposed as a storage URL.


Editions

Expenses carries no plan gate. Every capability listed above is available on every subscription tier — filing, receipts, approval, reimbursement, markup and rebilling are not restricted by edition.


Integrations

  • QuickBooks — expense categories map to QuickBooks account ids, and the mapping timestamp is recorded when it is set.
  • Solidlio Invoicing — rebilled expenses become draft invoice lines, priced and taxed by the same engine as every other invoice, with tax resolved from the client’s own jurisdiction.
  • Solidlio Purchasing — expense categories and tags are shared with vendor invoice lines, so accounts payable and staff expenses classify against one chart of accounts.

One approval, two outcomes: the person gets paid back and the client gets billed.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A 30-minute walkthrough against your own workflow. No slides.