# Expenses

Expenses are defined as costs incurred as part of a project, but not related to time. Once created, expenses can
be included in generated invoices.

 - [GET /expenses](https://developer.kantata.com/kantata/specification/expenses/get%20expenses.md): The expenses endpoint provides a list of every expense that the user making the request is allowed to see— across all projects to which the user belongs. The response will contain an array of expense
 - [POST /expenses](https://developer.kantata.com/kantata/specification/expenses/create%20expense.md): Creates an expense. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an array. Example: `
 - [DELETE /expenses](https://developer.kantata.com/kantata/specification/expenses/delete%20expenses.md): The IDs of the expenses to delete can be provided in the `ids` query parameter or via the request body. Request body example: ```{ "ids": "1,2,3" }``` If any specified expenses cannot be deleted,
 - [GET /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/get%20expense.md): You can request either `GET /api/v1/expenses.json?only=5` or `GET /api/v1/expenses/5.json`. In both cases, default filters will be applied. Unless you provide the `from_archived_workspaces:true` filt
 - [PUT /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/update%20expense.md): An expense that has already been created can be updated with an HTTP PUT request. Any required or optional attribute, with the exception of `workspace_id`, can be changed in an update. This endpoint r
 - [DELETE /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/delete%20expense.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
