Core contacts

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

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

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

Headers

X-Tenantstring required

Slug выбранного кабинета; кабинет не является юрлицом

Idempotency-Keystring

Ключ одной логической попытки команды. Единственная форма идемпотентности на уровне HTTP; читают его только операции, у которых этот параметр объявлен.

Повтор ТОГО ЖЕ запроса (метод, адрес с параметрами, тело) с тем же ключом не выполняет команду второй раз, а отдаёт первый успешный ответ с заголовком Idempotent-Replay: true. Тот же ключ с другим запросом — отказ 422 idempotency.key_mismatch, а не чужой ответ. Пока первая попытка ещё выполняется, повтор получает 409 idempotency.in_progress и Retry-After: он не ждёт и не выполняется второй раз.

Ключ принадлежит предъявителю в кабинете: человеку, кабинетному API-ключу или установке приложения. Одинаковый ключ у соседа — другая попытка.

Отказ 4xx ключ ОСВОБОЖДАЕТ: запрос отклонён до работы, в кабинете не изменилось ничего, и исправленный запрос с тем же ключом выполняется. Отказ 5xx ключ ЗАПИРАЕТ: записалось или нет — неизвестно, коммит мог случиться, а ответ до вас не доехать. Повтор с тем же ключом получает тот же статус и тот же машинный код, а команда второй раз не выполняется. Чтобы попробовать снова, прочитайте отдельным запросом, появился ли результат, и возьмите НОВЫЙ ключ.

И ответ, и запомненный отказ живут сутки; после этого тот же ключ — новая попытка, и команда выполняется заново. Ответы, несущие секрет (выдача токена, аренда секрета настройки), заголовок не читают: секрет отдаётся ровно один раз. Хранилище недоступно — 503 idempotency.unavailable, команда без защиты не выполняется; этот отказ приходит ДО заявки на ключ и потому ключ не тратит.

Для естественного ключа интеграции годится любая строка вида crm:order:123:create; UUID не обязателен.

Request body

namestring 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_namestring
phonestring
emailstring
positionstring
messengersobject

Мессенджеры объектом «сеть → адрес», например {"telegram": "@ivan"} (ERP-2517). Сеть записывается строчными буквами, пустой адрес не хранится, число становится строкой; список с данными или вложенное значение — отказ 400 core.contact.messengers_invalid

sourcestring
innstring
kppstring
ogrnstring
addressstring
bank_namestring
bank_bicstring
bank_accountstring
external_idstring
countrystring

Нерезидент: страна регистрации кодом ISO 3166 (две буквы).

tax_numberstring

Нерезидент: налоговый номер страны регистрации вместо ИНН.

customobject

Response

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

idstring uuid required
namestring required
kind'client' | 'supplier' | 'both' required

Legacy combined role; new clients read and patch is_customer/is_supplier independently.

is_customerboolean required
is_supplierboolean required
folder_idstring uuid required
entity_type'legal' | 'individual' | 'sole_prop' required
legal_namestring required
phonestring required
emailstring required
positionstring required
messengersobject required

Мессенджеры объектом «сеть → адрес», например {"telegram": "@ivan"} (ERP-2517). По адресам ищет параметр q списка контрагентов

sourcestring required
innstring required
kppstring required
ogrnstring required
addressstring required
bank_namestring required
bank_bicstring required
bank_accountstring required
external_idstring required
customobject required
is_activeboolean required
created_atstring date-time required
updated_atstring date-time required
countrystring

Нерезидент: страна регистрации кодом ISO 3166 (две буквы). Пусто — Россия.

tax_numberstring

Нерезидент: налоговый номер страны регистрации вместо ИНН.

system_keystring

Код системного контрагента (fns, sfr, bank:<БИК>). Только чтение.

requisites_issue'' | 'inn_missing' | 'inn_invalid' | 'kpp_invalid' | 'foreign_tax_missing' | 'country_invalid'

Что подсветить в реквизитах по правилу ИНН. Пусто — всё в порядке.

Changes

No recorded changes to this operation across all 1 revision of this API.