---
title: "Updates a Concept"
method: PUT
path: "/api/2026-10-01/resources/compensations/concepts/{id}"
tags: ["Compensations > Concept"]
---

# Updates a Concept

`PUT /api/2026-10-01/resources/compensations/concepts/{id}`

## Request

- Base URL: `https://api.factorialhr.com`
- URL: `https://api.factorialhr.com/api/2026-10-01/resources/compensations/concepts/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.factorialhr.com/oauth/authorize`
    - Token URL: `https://id.factorialhr.com/api/oauth/token` scopes: `payroll`
  - API key in header `x-api-key`

Updates an existing concept. For default concepts, only the `enabled` flag may be changed. The unit type can't be changed once the concept is created; send the current one or leave it out.

## Path parameters

- `id` string, required

## Request body

- object
  - `id` string, required: The identifier of the concept to update
  - `category` 'earnings_fixed_salary' | 'earnings_variable' | 'earnings_benefits_in_kind' | 'earnings_others' | 'deductions' | 'company_contribution' | 'summarized_values': Concept category (custom concepts only)
  - `description` string: Concept description (custom concepts only)
  - `label` string: Display label (custom concepts only)
  - `unit_type` 'distance' | 'money' | 'time' | 'unit': Unit type (custom concepts only). It can't be changed once the concept is created, so a different value is rejected
  - `labor_cost` boolean: Marks the concept as labor cost (custom concepts only)
  - `enabled` boolean: Activates / deactivates the concept (default and custom concepts)

## Response `200`

OK

- CompensationsConcept
  - `id` string, required: The identifier of the concept
  - `category` 'earnings_fixed_salary' | 'earnings_variable' | 'earnings_benefits_in_kind' | 'earnings_others' | 'deductions' | 'company_contribution' | 'summarized_values': The accounting category of the concept (e.g. `earnings_fixed_salary`, `deductions`)
  - `company_id` string, required: The company identifier of the concept
  - `default` boolean, required: Whether the concept is a default or a custom concept
  - `description` string, required: The description of the concept
  - `label` string, required: The label of the concept
  - `name` string, required: The name of the concept
  - `translated_name` string, required: The translated name of the concept if it is a default concept.
  - `unit_name` string: The name of the unit of the concept
  - `unit_type` 'distance' | 'money' | 'time' | 'unit': What the concept's amount is measured in (e.g. `money`, a quantity of units)
  - `enabled` boolean, required: Whether the concept is enabled for the company
  - `created_at` string: Timestamp when the concept was created
  - `updated_at` string: Timestamp when the concept was last updated

## Changes

- **2026-11-03** `83ac9aa1de50`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/factorialhr/apis/factorial-api/changes/api/2026-10-01/resources/compensations/concepts/:id/put.md)

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) - [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/factorialhr/apis/factorial-api/revisions/83ac9aa1de50?raw)
