Expenses that are not associated with a client are represented by client_id as 0. Staff have access to the API calls listed below, but they can only access expenses that belong to them or are assigned to clients they are assigned to.

IMPORTANT: Expense amounts include taxes. If Expense amount = $100 and tax percent = 5%, then tax amount should be $4.76. This is because the before tax amount is $95.24 and the 5% tax is $4.76, which yields a total of $100, the expense amount.


Create a new expense specifically for a client, and optionally one of their projects, or keep it generalized for a number of clients. If successful, returns the expense_id of the newly created item.

staff_id is a required field only for admin users. It is ignored for staff using the API.


Update an existing expense with the given expense_id. Any expense fields left out of the request will remain unchanged.


Return the complete expense details associated with the given expense_id.


Delete an existing expense.


Returns a list of expense summaries. You can filter by client_id, category_id, project_id, date_from, date_to or vendor optionally.

Note: This method uses pagination.