---
title: "Create a new employee"
method: POST
path: "/employees"
tags: ["Employees"]
---

# Create a new employee

`POST /employees`

## Request body

- EmployeeInput
  - `nationality` 'US' | 'UK' | 'FR' | 'DE' | 'NL' | 'PL' | 'IT' | 'ES' | 'IN', required — Nationality of employee as an ISO 3166-1 alpha-2 country code
  - `departmentId` number, required
  - `keycardId` string, required
  - `account` string, required
  - `officeCode` string, required
  - `firstName` string, required
  - `lastName` string, required
  - `position` string, required
  - `email` string, email, required — Email address string
  - `employment` object, required
    - `contractType` 'CONTRACT' | 'PERMANENT', required — Type of employment contract
    - `currentSalary` number, required — Monetary value in EUR
    - `startDate` string, date-time, required — ISO 8601 date-time string
    - `endDate` string, date-time — ISO 8601 date-time string
  - `personalInfo` object, required
    - `phone` string, required — Phone number string
    - `email` string, email, required — Email address string
    - `dateOfBirth` string, date-time, required — ISO 8601 date-time string
    - `address` object, required
      - `street` string, required
      - `city` string, required
      - `country` string, required
  - `skills` Skill[], required
  - `bio` string, required
  - `imgURL` string

## Response `201`

Employee created successfully

- Employee
  - `id` integer, required
  - `nationality` 'US' | 'UK' | 'FR' | 'DE' | 'NL' | 'PL' | 'IT' | 'ES' | 'IN', required — Nationality of employee as an ISO 3166-1 alpha-2 country code
  - `department` string, required — Department display name
  - `departmentId` integer — Department ID for linking to getDepartmentById (enables EmployeeDepartmentLink)
  - `keycardId` string, required
  - `office` string, required
  - `officeCode` string, required
  - `name` string, required
  - `position` string, required
  - `account` string, required
  - `email` string, email, required — Email address string
  - `employment` object, required
    - `contractType` 'CONTRACT' | 'PERMANENT', required — Type of employment contract
    - `currentSalary` number, required — Monetary value in EUR
    - `startDate` string, date-time, required — ISO 8601 date-time string
    - `endDate` string, date-time — ISO 8601 date-time string
    - `employedFor` Duration, required
      - `years` integer, required
      - `months` integer, required
      - `days` integer, required
  - `personalInfo` object, required
    - `age` integer, required
    - `phone` string, required — Phone number string
    - `email` string, email, required — Email address string
    - `address` object, required
      - `street` string, required
      - `city` string, required
      - `country` string, required
  - `skills` Skill[], required
  - `bio` string, required
  - `imgURL` string

## Other responses

- `400` — Invalid employee input request body @see {@link EmployeeInput}
- `409` — Employee with this email already exists
- `422` — Invalid data state (e.g. department doesn't exist, office not found)
- `500` — An internal server error occurred.
- `503` — The service is temporarily unavailable. Maybe there is maintenance?

---

[API](https://skmtc.net/ducin-public/apis/itcorpo-api.md) · [All operations](https://skmtc.net/ducin-public/apis/itcorpo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ducin-public/itcorpo-api/revisions/80675117301b/schema)
