---
title: "Создать контрагента"
method: POST
path: "/api/v1/core/contacts"
tags: ["Core contacts"]
---

# Создать контрагента

`POST /api/v1/core/contacts`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/core/contacts`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Читает Idempotency-Key — повтор того же запроса с тем же ключом отдаёт созданного контрагента, а не второго.

## Headers

- `X-Tenant` string, required
- `Idempotency-Key` string

## Request body

- CoreContactCreate
  - `name` string, required
  - `kind` 'client' | 'supplier' | 'both': Legacy combined role; new clients read and patch is_customer/is_supplier independently.
  - `entity_type` 'legal' | 'individual' | 'sole_prop'
  - `legal_name` string
  - `phone` string
  - `email` string
  - `position` string
  - `tags` unknown[]
    - unknown
  - `messengers` object: Мессенджеры объектом «сеть → адрес», например {"telegram": "@ivan"} (ERP-2517). Сеть записывается строчными буквами, пустой адрес не хранится, число становится строкой; список с данными или вложенное значение — отказ 400 core.contact.messengers_invalid
  - `source` string
  - `inn` string
  - `kpp` string
  - `ogrn` string
  - `address` string
  - `legal_address` CoreContactAddress
    - `postal_code` string, required
    - `region_code` string, required: Код субъекта РФ для формализованного документа
    - `region_name` string, required
    - `district` string, required
    - `city` string, required
    - `settlement` string, required
    - `street` string, required
    - `building` string, required
    - `block` string, required
    - `flat` string, required: Офис или помещение
    - `info` string, required
  - `postal_address` CoreContactAddress
    - `postal_code` string, required
    - `region_code` string, required: Код субъекта РФ для формализованного документа
    - `region_name` string, required
    - `district` string, required
    - `city` string, required
    - `settlement` string, required
    - `street` string, required
    - `building` string, required
    - `block` string, required
    - `flat` string, required: Офис или помещение
    - `info` string, required
  - `bank_name` string
  - `bank_bic` string
  - `bank_account` string
  - `external_id` string
  - `country` string: Нерезидент: страна регистрации кодом ISO 3166 (две буквы).
  - `tax_number` string: Нерезидент: налоговый номер страны регистрации вместо ИНН.
  - `custom` object

## Response `201`

Созданный контрагент

- CoreContact
  - `id` string, uuid, required
  - `name` string, required
  - `kind` 'client' | 'supplier' | 'both', required: Legacy combined role; new clients read and patch is_customer/is_supplier independently.
  - `is_customer` boolean, required
  - `is_supplier` boolean, required
  - `folder_id` string, uuid, required
  - `entity_type` 'legal' | 'individual' | 'sole_prop', required
  - `legal_name` string, required
  - `phone` string, required
  - `email` string, required
  - `position` string, required
  - `tags` unknown[], required
    - unknown
  - `messengers` object, required: Мессенджеры объектом «сеть → адрес», например {"telegram": "@ivan"} (ERP-2517). По адресам ищет параметр q списка контрагентов
  - `source` string, required
  - `inn` string, required
  - `kpp` string, required
  - `ogrn` string, required
  - `address` string, required
  - `legal_address` CoreContactAddress, required
    - `postal_code` string, required
    - `region_code` string, required: Код субъекта РФ для формализованного документа
    - `region_name` string, required
    - `district` string, required
    - `city` string, required
    - `settlement` string, required
    - `street` string, required
    - `building` string, required
    - `block` string, required
    - `flat` string, required: Офис или помещение
    - `info` string, required
  - `postal_address` CoreContactAddress, required
    - `postal_code` string, required
    - `region_code` string, required: Код субъекта РФ для формализованного документа
    - `region_name` string, required
    - `district` string, required
    - `city` string, required
    - `settlement` string, required
    - `street` string, required
    - `building` string, required
    - `block` string, required
    - `flat` string, required: Офис или помещение
    - `info` string, required
  - `bank_name` string, required
  - `bank_bic` string, required
  - `bank_account` string, required
  - `external_id` string, required
  - `custom` object, required
  - `is_active` boolean, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `country` string: Нерезидент: страна регистрации кодом ISO 3166 (две буквы). Пусто — Россия.
  - `tax_number` string: Нерезидент: налоговый номер страны регистрации вместо ИНН.
  - `system_key` string: Код системного контрагента (fns, sfr, bank:<БИК>). Только чтение.
  - `requisites_issue` '' | 'inn_missing' | 'inn_invalid' | 'kpp_invalid' | 'foreign_tax_missing' | 'country_invalid': Что подсветить в реквизитах по правилу ИНН. Пусто — всё в порядке.

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `409`: Конфликт версии, идемпотентности или бизнес-состояния
- `422`: Idempotency-Key уже использован для другого запроса: другое тело, другой адрес или другая операция. Код `idempotency.key_mismatch`; сохранённый ответ не раскрывается. Для новой команды берут новый ключ.
- `503`: Хранилище ключей идемпотентности недоступно, команда с заголовком Idempotency-Key не выполнялась. Код `idempotency.unavailable`; Retry-After говорит, когда повторить.

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
