# Categories

This group of endpoints allow you to manage expense categories for your business.

Categories classify transactions. System-defined categories (`custom: false`) can only have their `enabled` state toggled. Custom categories (`custom: true`) can have their `name` updated and can be deleted.


## List categories

 - [GET /v1/businesses/{client_id}/categories](https://developer.letsweel.com/openapi/categories/listcategories.md): Returns a paginated list of expense categories for the given business.

## Create a category

 - [POST /v1/businesses/{client_id}/categories](https://developer.letsweel.com/openapi/categories/createcategory.md): Creates a new custom category (custom: true) for the business. The name must be unique within the business.

## Update a category

 - [PATCH /v1/businesses/{client_id}/categories/{category_id}](https://developer.letsweel.com/openapi/categories/updatecategory.md): Updates an existing category. Accepted fields depend on the category type:

- Custom categories (custom: true): name and accounting_code_id are mutable; enabled returns 400.
- System categories (custom: false): enabled and accounting_code_id are mutable; name returns 400.

## Delete a category

 - [DELETE /v1/businesses/{client_id}/categories/{category_id}](https://developer.letsweel.com/openapi/categories/deletecategory.md): Soft-deletes a custom category. Returns 400 if the category is system-defined (custom: false).

