Consultainer Docs

Core Concepts

Expenses

Log reimbursable costs with receipts, get them approved, and bill them

Expenses track costs you bill back to the client, such as a software license, hardware or travel. Each expense belongs to a project and goes on an invoice as its own line, like a milestone. Every project has an Expenses card, whatever its billing type.

How to log an expense

Anyone who can see the project can log an expense.

  1. Open the project and click Log expense on the Expenses card.
  2. Enter a Description (for example Figma seat for this engagement), the Amount and the Date you incurred it.
  3. Optional: add a Category.
  4. Optional: attach a Receipt: PNG, JPEG, WebP or PDF, under 5 MB (25 MB when uploads go to S3-compatible storage).
  5. Click Log expense.

The expense appears on the card as Approved or Pending (see below). Click Receipt on an expense to open its receipt.

Approval

Expenses above a threshold need an owner or admin to approve them before they can be invoiced. Set the threshold under Settings → General → Expense approval threshold (owners and admins; $100 by default, in your default currency).

  • An expense logged by an owner or admin is approved automatically, whatever the amount.
  • An expense logged by a member is approved automatically if it's at or under the threshold.
  • A member's expense above the threshold is Pending until an owner or admin approves or rejects it.

How to approve or reject an expense

  1. Open the project. Pending expenses show Approve and Reject buttons on the Expenses card (owners and admins only).
  2. Click Approve to make it billable, or Reject to mark it Rejected. A rejected expense is never invoiced.

Who hears about it

  • Owners and admins, when a member's expense goes Pending: the An expense is waiting for approval alert, in the app and, by default, in Slack and by email (change it on Settings → Alerts; see Alerts). On a confidential project, Slack and email leave out the project and description. The dashboard also shows Expenses waiting for approval with the count and the oldest five; click one to open its project's Expenses card.
  • The person who logged it, when it's approved or rejected: a notification in the app, and an email (Your … expense was approved or … rejected) when email is set up. If they're no longer on a confidential project, the message leaves the project out.

This works the same for expenses logged or decided over MCP.

Check it worked: log an expense above the threshold as a member, then open the dashboard as an owner or admin: the Expenses waiting for approval card lists it, and the bell has … logged a … expense on … that's waiting for approval.

Troubleshooting:

  • No alert for an expense: it was approved automatically (logged by an owner or admin, or at or under the threshold).
  • No Slack message or email: check the alert's switches on Settings → Alerts, the Slack webhook, and that email is set up. Alert emails go to Send alert emails to, or to the owners if it's empty.

How an expense gets billed

Approved expenses that aren't on an invoice yet show up on New invoice for the project's client, and are picked up by the client's billing cycle if it has one. Each becomes its own line: Project — Expense: description, quantity 1 at the expense's amount.

Once it's on an invoice, an expense is locked and can't be deleted. If that invoice is a draft and gets deleted (or the line is removed), the expense becomes billable again.

How to delete an expense

Click the bin icon on the expense and confirm. You can delete your own expenses; owners and admins can delete anyone's. Invoiced expenses can't be deleted.

Over MCP

list_expenses, log_expense, approve_expense and reject_expense. See the MCP server.