---
title: "Create an allowance type"
method: POST
path: "/allowance-types"
tags: ["Allowance Management"]
---

# Create an allowance type

`POST /allowance-types`

Creates an allowance type. It starts without a rule, so nothing accrues on it until you create one via POST /allowance-types/{allowance_type_id}/rules. How many types a workspace may have depends on its plan.

## Request body

- object
  - `name` string, required
  - `allowance_unit` 'days' | 'hours', required — Whether this type is counted in days or in minutes. Cannot be changed afterwards.
  - `ignore_allowance_limit` boolean — When true, members may book more than their balance and go negative.
  - `translations` object[] — Optional per-language names, shown to members using that language.
    - `language` string, required — Language code the name below is written in, e.g. `de`.
    - `name` string, required
  - `locale` 'en' | 'de' | 'fr' | 'hu' | 'it' | 'pl' | 'pt' | 'ru' | 'es' | 'tr' | 'uk' — Returns translatable names in this language, falling back to the stored name where no translation exists. Omit it to keep the response unchanged.

## Response `200`

Successful response

- object
  - `id` string, required
  - `name` string, required — Translated into `locale` when one is given, otherwise into the API key owner's language, falling back to the stored name where no translation exists.
  - `default_name` string, required — The stored name, without any translation applied.
  - `allowance_unit` 'days' | 'hours', required — Whether this type is counted in days or in minutes.
  - `ignore_allowance_limit` boolean, required — When true, members may book more than their balance and go negative.
  - `default_rule_id` string, nullable, required — The rule a new member of this workspace is put on. A department default rule takes precedence over it.
  - `workspace_id` string, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `translations` object[], required
    - `language` string, required — Language code the name below is written in, e.g. `de`.
    - `name` string, required
  - `leave_types` object[], required — The leave types that draw from this allowance type.
    - `id` string, required
    - `name` string, required
    - `color` string, required
    - `icon` string, required
    - `deleted` boolean, required

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `500` — Internal server error

---

[API](https://skmtc.net/absentify/apis/absentify-crud-api.md) · [All operations](https://skmtc.net/absentify/apis/absentify-crud-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/absentify/absentify-crud-api/revisions/ef777d51e6f2/schema)
