---
title: "🔒🛡️ Добавление пользователя в компанию с созданием аккаунта, установкой ролей и условий найма."
method: POST
path: "/company/access/create"
tags: ["Company: Access"]
---

# 🔒🛡️ Добавление пользователя в компанию с созданием аккаунта, установкой ролей и условий найма.

`POST /company/access/create`

## Request

- Base URL: `http://localhost`
- URL: `http://localhost/company/access/create`
- Auth: one of:
  - API key in header `sid` and API key in header `rts` and API key in header `sig`
  - HTTP bearer

Добавление пользователя в компанию с созданием аккаунта, установкой ролей и условий найма.

**Access:** `authorized` (10 ) · **Scope:** `write`

**Allows:** `user:create`, `user:invite`, `user:privileges`, `user:products`, `user:employment`, `user:timeoff`, `user:payments` (все обязательны; проверка в команде по ресурсу из запроса)

### TypeScript (copy-paste)

**`POST /company/access/create`**

<details open><summary><b>Body</b></summary>

```typescript
export interface CompanyAccessCreateBody {
  /** Phone number */
  phone?: string | null
  email?: string | null
  user?: Record<string, any> | null
  isAdmin?: boolean | null
  employmentType?: Payment_employmentType | null
  orgID?: string | null
  marginPercent?: number | null
  schemes?: Array<string> | null
  roles?: Array<any> | null
  timeOffs?: Array<any> | null
  createPayments?: boolean | null
  productAccess?: string | null
  products?: string | null
}
```

</details>

<details open><summary><b>Response</b></summary>

```typescript
export type CompanyAccessCreateResponse = IServerResponse<UserDto>

export interface IServerResponse<T = any> {
  code: number
  data: T
  srvTS: number
  rkey: string
}
```

</details>

> Полный файл типов: [`/docs/types`](/docs/types) · raw: [`/docs/api-types.ts`](/docs/api-types.ts)

## Headers

- `devID` string, uuid, required
- `tz` string, required
- `app` string, required
- `appVer` string, required
- `rKey` string

## Request body

- CompanyAccessCreateBody: JSON body for `company/access/create`
  - `phone` string, nullable: Phone number
  - `email` string, nullable
  - `user` object, nullable
  - `isAdmin` boolean, nullable
  - `employmentType` 'none' | 'ru_tk' | 'ru_gpd' | 'ru_ip' | 'ru_sam': `none` = "none", `ruTK` = "ru_tk", `ruGPD` = "ru_gpd", `ruIP` = "ru_ip", `ruSam` = "ru_sam"
  - `orgID` string, uuid, nullable
  - `marginPercent` integer, nullable
  - `schemes` string[], nullable
  - `roles` unknown[], nullable
    - unknown
  - `timeOffs` unknown[], nullable
    - unknown
  - `createPayments` boolean, nullable
  - `productAccess` string, nullable
  - `products` string, nullable

## Response `200`

OK — `IServerResponse<UserDto>`

- object
  - `code` integer, required
  - `data` UserDto, required: Entity `User` (table: User )
    - `ID` string, uuid, required
    - `phone` string, nullable: Phone number
    - `email` string, nullable
    - `auth` object, nullable
    - `avatarFID` string, uuid, required
    - `firstName` string, required
    - `lastName` string, required
    - `patronymic` string, nullable
    - `gender` 'male' | 'female': `male` = "male", `female` = "female"
    - `contactInfo` string, nullable
    - `dateOfBirth` string, date-time, nullable
    - `address` object, nullable
      - `country` string, nullable
      - `city` string, nullable
      - `streetAddress` string, nullable
    - `timeZone` string, nullable
    - `meetingInfo` object, nullable
      - `zoomEmail` string, nullable
    - `position` string, nullable
    - `hourCost` number, required
    - `docsEmployment` object, nullable
    - `docsLibrary` object, nullable
    - `isDraft` boolean, required
    - `createDT` string, date-time, required
    - `createdUID` string, required
    - `updTS` integer, required: Unix timestamp in milliseconds
    - `updUID` string, required
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest: Neither phone nor email, invalid or missing required user data (email is required for a new user) or invalid productAccess
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed: Privilege required by body fields (user:create / user:invite, user:privileges, user:products, user:employment, user:timeoff)
- `404`: NotFound: User with specified phone number or email not found during second step, product or organization (orgID) not found in company
- `406`: TimeResync — расхождение rts с сервером
- `422`: UnprocessableContent: params.code contact_taken - email or phone of a new user belongs to another user; employment ru_tk without an organization

---

[API](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api.md) · [All operations](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/revisions/a143b51ba29a?raw)
