---
title: "Create Expense Category"
method: POST
path: "/accounting/expense-categories"
tags: ["Expense Categories"]
---

# Create Expense Category

`POST /accounting/expense-categories`

Create Expense Category

## Query parameters

- `raw` boolean

## Headers

- `x-apideck-consumer-id` string, required
- `x-apideck-app-id` string, required
- `x-apideck-service-id` string

## Request body

- ExpenseCategory
  - `id` string — A unique identifier for an object.
  - `display_id` string, nullable — Id to be displayed.
  - `name` string, required — The name of the expense category.
  - `code` string, nullable — The code or external identifier of the expense category.
  - `description` string, nullable — The description of the expense category.
  - `status` 'active' | 'inactive', nullable — The status of the expense category.
  - `account` LinkedLedgerAccount, nullable
    - `id` string — The unique identifier for the account.
    - `name` string, nullable — The name of the account.
    - `nominal_code` string, nullable — The nominal code of the account.
    - `code` string, nullable — The code assigned to the account.
    - `parent_id` string, nullable — The parent ID of the account.
    - `display_id` string, nullable — The display ID of the account.
  - `offset_account` LinkedLedgerAccount, nullable
    - `id` string — The unique identifier for the account.
    - `name` string, nullable — The name of the account.
    - `nominal_code` string, nullable — The nominal code of the account.
    - `code` string, nullable — The code assigned to the account.
    - `parent_id` string, nullable — The parent ID of the account.
    - `display_id` string, nullable — The display ID of the account.
  - `tax_rate` LinkedTaxRate
    - `id` string, nullable — The ID of the object.
    - `code` string, nullable — Tax rate code
    - `name` string, nullable — Name of the tax rate
    - `rate` number, nullable — Rate of the tax rate
  - `rate_required` boolean, nullable — Whether the expense category requires rate/quantity entry (e.g. mileage at $/mile).
  - `default_rate` number, nullable — Default rate when rate_required is true (e.g. 0.67 for mileage).
  - `custom_mappings` CustomMappings, nullable — When custom mappings are configured on the resource, the result is included here.
  - `downstream_id` string, nullable — The third-party API ID of original entity
  - `row_version` string, nullable — A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
  - `updated_by` string, nullable — The user who last updated the object.
  - `created_by` string, nullable — The user who created the object.
  - `updated_at` string, date-time, nullable — The date and time when the object was last updated.
  - `created_at` string, date-time, nullable — The date and time when the object was created.
  - `pass_through` object[] — The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
    - `service_id` string, required — Identifier for the service to which this pass_through should be applied.
    - `operation_id` string — Optional identifier for a workflow operation to which this pass_through should be applied. This is useful for Unify calls that are making more than one downstream request.
    - `extend_object` object — Simple object allowing any properties for direct extension.
    - `extend_paths` object[] — Array of objects for structured data modifications via paths.
      - `path` string, required — JSONPath string specifying where to apply the value.
      - `value` unknown, required

## Response `201`

Expense Categories

- CreateExpenseCategoryResponse
  - `status_code` integer, required — HTTP Response Status Code
  - `status` string, required — HTTP Response Status
  - `service` string, required — Apideck ID of service provider
  - `resource` string, required — Unified API resource name
  - `operation` string, required — Operation performed
  - `data` UnifiedId, required — A object containing a unique identifier for the resource that was created, updated, or deleted.
    - `id` string, required — The unique identifier of the resource
  - `_raw` Raw, nullable — Raw response from the integration when raw=true query param is provided

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `404` — The specified resource was not found
- `422` — Unprocessable
- `default` — Unexpected error

---

[API](https://skmtc.net/apideck-libraries/apis/accounting-api.md) · [All operations](https://skmtc.net/apideck-libraries/apis/accounting-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apideck-libraries/accounting-api/revisions/4047ae2da55f/schema)
