# Manage accounting categories

Accounting categories allow you to organize your business transactions into functional buckets, such as `Transportation`, `Office Supplies`, or `Travel`.
These categories can be assigned to financial records such as [expenses](/docs/guides/manage-accounts/accounts-and-transactions/retrieve-expenses) or [bills](https://help.revolut.com/business/help/integrating-with-external-apps/introduction-to-billpay/) to simplify your bookkeeping processes.

To manage accounting categories via the Business API, you must use an access token with the following [scopes](/docs/guides/manage-accounts/get-started/make-your-first-api-request#3-consent-to-the-application):

| Operation                                                                                                                                             | Required Scope |
| :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- |
| [Retrieve accounting categories](#retrieve-accounting-categories)                                                                                     | `READ`         |
| [Create](#create-an-accounting-category), [update](#update-an-accounting-category), or [delete](#delete-an-accounting-category) accounting categories | `WRITE`        |

:::note
The `WRITE` operations are not supported for [externally managed accounting categories](#externally-managed-settings).
:::

## Create an accounting category

:::note
This operation is not supported for [externally managed accounting categories](#externally-managed-settings).
:::

To add a new accounting category, you must provide the following details:

:::details [Required details]

- **Name:** A unique name for the category that helps to understand its purpose.
- **Code:** A unique code for the category, used for bookkeeping. For example, `WFH` or `007`.

:::

You can also include additional settings for automation.

:::details [Optional details]

- **Default tax rate ID**: The ID of the tax rate to be pre-populated for financial records when they are assigned to this category.

:::

:::note
On success, the response returns only the ID of the created category.
To get all the details, use that ID to [retrieve a specific accounting category](#retrieve-a-specific-accounting-category).
:::

For more details and sample requests and responses:

[See the API reference: Create an accounting category](/docs/api/business#create-accounting-category)

## Retrieve accounting categories

The Business API lets you retrieve the accounting categories available for your business.

When you retrieve the categories, for each category, you get its details, such as the category ID, name, and code, as well as when it was created and when it was last updated.

You can:

- [Retrieve all the accounting categories](#retrieve-a-list-of-accounting-categories) available in your settings
- [Retrieve a specific accounting category](#retrieve-a-specific-accounting-category)

### Retrieve a list of accounting categories

When you list all the accounting categories [created](#create-an-accounting-category) for your business, the results are [paginated](#pagination) and sorted by the `created_at` date in reverse chronological order.
To get the next page of results, use the `next_page_token` value.

For more details and sample requests and responses:

[See the API reference: Retrieve a list of accounting categories](/docs/api/business#get-accounting-categories)

### Retrieve a specific accounting category

You can also retrieve a specific accounting category by its ID to look up its name, code, and dates of creation and last update.

For more details and sample requests and responses:

[See the API reference: Retrieve an accounting category](/docs/api/business#get-accounting-category)

## Update an accounting category

:::note
This operation is not supported for [externally managed accounting categories](#externally-managed-settings).
:::

For each accounting category available in your business settings, you can update its name, code, or the default tax rate (referenced by its ID).
You can update a single parameter or multiple parameters at once.

On successful update, you get a `204` response with no additional content.

For more details and sample requests and responses:

[See the API reference: Update an accounting category](/docs/api/business#update-accounting-category)

## Delete an accounting category

:::note
This operation is not supported for [externally managed accounting categories](#externally-managed-settings).
:::

To delete an accounting category, simply make a DELETE call providing the ID of this category.

:::warning [Deletion consequences for financial records]
Once an accounting category is deleted, it is removed from the Revolut Business app.
Existing records with the deleted accounting category that are pending completion will be marked as **invalid**, and they will require a manual update to a valid accounting category.
Complete records are not affected.

See an example of an incomplete expense with accounting settings that have been deleted, now marked as invalid →

![img](/img/manage-accounts/accounting-invalid-expense.png)
:::

On successful deletion, you get a `204` response with no additional content.

For more details and sample requests and responses:

[See the API reference: Delete an accounting category](/docs/api/business#delete-accounting-category)

## Pagination

- **Page size**: The API returns a maximum of 500 results per request (default: 100).
  You can increase or decrease the page size, i.e. the maximum number of results returned per page, by explicitly setting the `limit` parameter.
- **Sorting**: Results are sorted by the `created_at` date in reverse chronological order.
- **Next Page**: If the results exceed the page size, the response includes `next_page_token`.
  To fetch the next page of results, make a new request providing this value of `next_page_token` in the `page_token` query parameter.

## Externally managed settings

If an accounting software [integration](https://www.revolut.com/business/integrations/) is connected, accounting categories are typically managed within that external platform.
In this state, the categories are **read-only** via the API, and manual modification attempts will return an error.

:::tip
To find out if your accounting categories are managed externally, check the [Revolut Business settings](https://business.revolut.com/settings).

1. Go to **Settings** → **Accounting** → [**Accounting categories**](https://business.revolut.com/settings/accounting/categories).
2. Look for a **+ New** button above the categories.

- If you see the button, this means that your categories can be modified via the API.
- If you don't see the button, your accounting categories are managed externally by the connected integration and cannot be modified (created/updated/deleted) via the API.
  The name of the connected integration appears near the top, together with information when it was last synced.

| Editable                                                        | Read-only                                                      |
| --------------------------------------------------------------- | -------------------------------------------------------------- |
| ![img](/img/manage-accounts/accounting-categories-editable.png) | ![img](/img/manage-accounts/accounting-categories-managed.png) |
:::

## See also

- [Accounting settings - overview](/docs/guides/manage-accounts/accounting/manage-accounting-settings)
- [Manage labels and label groups](/docs/guides/manage-accounts/accounting/manage-labels-and-label-groups)
- [Manage tax rates](/docs/guides/manage-accounts/accounting/manage-tax-rates)
- Revolut Help Centre:
  - [Expenses](/docs/guides/manage-accounts/accounts-and-transactions/retrieve-expenses)
  - [Bills](https://help.revolut.com/business/help/integrating-with-external-apps/introduction-to-billpay/)