{"schema_version":"1.0","digest":"8df264505050381a","modules":[{"id":"module:analytics","kind":"module","label":{"en":"Analytics","ru":"Аналитика"},"description":{"en":"Competency and permit matrices, reports and roll-ups. A cross-cutting module: it draws data from reference data, training and procedures.","ru":"Матрицы компетенций и допусков, отчёты и сводные представления. Кросс-секущий модуль: данные берёт из справочников, обучения и процедур."},"attrs":{"slug":"analytics","status":"available"}},{"id":"module:documents","kind":"module","label":{"en":"Documents","ru":"Документы"},"description":{"en":"Document storage with folders, access rights, collaborative editing and versions. The foundation for procedures, instructions and regulations.","ru":"Хранилище документов с папками, правами доступа, совместным редактированием и версиями. Основа для процедур, инструкций и регламентов."},"attrs":{"slug":"documents","status":"available"}},{"id":"module:procedures","kind":"module","label":{"en":"Procedures","ru":"Процедуры"},"description":{"en":"Checklists, SOPs and permits to work: step builder, execution with recorded answers and evidence, run history.","ru":"Чек-листы, SOP и наряды-допуски: конструктор шагов, исполнение с фиксацией ответов и доказательств, история прохождений."},"attrs":{"slug":"procedures","status":"available"}},{"id":"module:references","kind":"module","label":{"en":"Reference data","ru":"Справочники"},"description":{"en":"Master data of the organisation: people, structure, job positions, skills, permits. The other modules build on it.","ru":"Мастер-данные организации: сотрудники, структура, должности, навыки, допуски. На них опираются остальные модули."},"attrs":{"slug":"references","status":"available"}},{"id":"module:stream","kind":"module","label":{"en":"News","ru":"Новости"},"description":{"en":"Organisation-wide post feed: posts, discussion, attachments.","ru":"Лента публикаций организации: посты, обсуждение, вложения."},"attrs":{"slug":"stream","status":"available"}},{"id":"module:tasks","kind":"module","label":{"en":"Tasks","ru":"Задачи"},"description":{"en":"Assignments with an owner and a due date. Linked to documents, procedures and discussions.","ru":"Поручения с ответственным и сроком. Связываются с документами, процедурами и обсуждениями."},"attrs":{"slug":"tasks","status":"available"}},{"id":"module:tms","kind":"module","label":{"en":"Logistics","ru":"Логистика"},"description":{"en":"Shipments and electronic waybills (e-TTN). The first section is counterparties: legal details, roles in transport, EDI profiles; the directory may be shared between accounts of the organisation.","ru":"Перевозки и электронные транспортные накладные (ЭТрН). Первый раздел — контрагенты: реквизиты, роли в перевозке, профили ЭДО; справочник может быть общим для аккаунтов организации."},"attrs":{"slug":"tms","status":"available"}},{"id":"module:workspace","kind":"module","label":{"en":"Workspace","ru":"Рабочий стол"},"description":{"en":"Personal landing page: widgets for tasks, training, procedures and activity. Each user configures their own set.","ru":"Личная стартовая страница: виджеты со задачами, обучением, процедурами и активностью. Состав виджетов настраивает сам пользователь."},"attrs":{"slug":"workspace","status":"available"}}],"references":[{"id":"reference:permits","kind":"reference","label":{"en":"Permits","ru":"Допуски"},"description":{"en":"Authorisations for types of work, with validity periods and renewal history.","ru":"Разрешения на виды работ со сроком действия и историей продлений."},"attrs":{"slug":"permits"}},{"id":"reference:skills","kind":"reference","label":{"en":"Skills","ru":"Навыки"},"description":{"en":"Competencies with proficiency levels. Used in matrices and in position requirements.","ru":"Компетенции с уровнями владения. Используются в матрицах и требованиях к должности."},"attrs":{"slug":"skills"}},{"id":"reference:structure_nodes","kind":"reference","label":{"en":"Structure","ru":"Структура"},"description":{"en":"ISA-95 plant hierarchy: organisation, site, zone, unit, workplace.","ru":"Иерархия предприятия по ISA-95: организация, площадка, зона, участок, рабочее место."},"attrs":{"slug":"structure_nodes"}},{"id":"reference:users","kind":"reference","label":{"en":"Team","ru":"Команда"},"description":{"en":"People in the organisation: accounts, roles, access to tenants.","ru":"Сотрудники организации: учётные записи, роли, доступ к аккаунтам."},"attrs":{"slug":"users"}}],"extension_points":[{"id":"extension:agent_connector","kind":"extension_point","label":{"en":"Agent platform connector","ru":"Коннектор агент-платформы"},"description":{"en":"A source of tools for the AI assistant. A failing connector does not break the conversation — its tools are simply not offered.","ru":"Источник инструментов для AI-ассистента. Отвалившийся коннектор не ломает диалог — его инструменты просто не предлагаются."},"attrs":{"entries_count":1,"key":"agent_connector"}},{"id":"extension:comment_subject","kind":"extension_point","label":{"en":"Discussion subject","ru":"Объект обсуждения"},"description":{"en":"A record type that can carry comments. Registering it switches on the discussion column in the shared detail panel — no markup changes in the section.","ru":"Тип записи, у которой бывают комментарии. Регистрация в реестре включает колонку обсуждения в общей detail-панели — вёрстку в разделе править не нужно."},"attrs":{"entries_count":16,"key":"comment_subject"}},{"id":"extension:field_type","kind":"extension_point","label":{"en":"Field type","ru":"Тип поля"},"description":{"en":"A value type for custom fields and procedure questions: how it is stored, validated and rendered.","ru":"Тип значения для кастомных полей и вопросов процедур: как хранится, как валидируется, чем рисуется."},"attrs":{"entries_count":13,"key":"field_type"}},{"id":"extension:inbox_kind","kind":"extension_point","label":{"en":"Inbox kind from the journal","ru":"Вид «Входящих» из журнала"},"description":{"en":"A journal verb that brings a message to the Inbox, plus the acknowledgement rule. An unregistered verb produces no message.","ru":"Глагол журнала, по которому во «Входящие» приходит сообщение, и правило подтверждения. Незарегистрированный глагол сообщения не порождает."},"attrs":{"entries_count":3,"key":"inbox_kind"}},{"id":"extension:integration_provider","kind":"extension_point","label":{"en":"Integration provider","ru":"Провайдер интеграции"},"description":{"en":"An external service with a declared schema of credentials and settings. The schema drives the UI form, server-side validation and the health check at once.","ru":"Внешний сервис с описанной схемой учётных данных и настроек. Схема разом задаёт форму в интерфейсе, серверную валидацию и проверку работоспособности."},"attrs":{"entries_count":8,"key":"integration_provider"}},{"id":"extension:matrix_axis_source","kind":"extension_point","label":{"en":"Matrix axis source","ru":"Источник оси матрицы"},"description":{"en":"Which groupings feed a slice axis (as in AG5): a structure node, a job position, a shift, a requirement category or a single record. Registering a type adds it to the axis tab's Add menu and to the slice resolver.","ru":"Из каких группировок собирается ось среза (по образцу AG5): узел структуры, должность, смена, категория требований или отдельная запись. Регистрация типа открывает его в меню «Добавить» вкладки оси и в резолвере состава среза."},"attrs":{"entries_count":4,"key":"matrix_axis_source"}},{"id":"extension:matrix_type","kind":"extension_point","label":{"en":"Matrix type","ru":"Тип матрицы"},"description":{"en":"An analytics slice: what forms the rows, what forms the columns, what fills a cell. Added as a single file in the matrix catalogue.","ru":"Срез в аналитике: что по строкам, что по столбцам, чем заполняется ячейка. Добавляется одним файлом в каталоге матриц."},"attrs":{"entries_count":5,"key":"matrix_type"}},{"id":"extension:object_card","kind":"extension_point","label":{"en":"Record card","ru":"Карточка записи"},"description":{"en":"A record type shown as a record card in lists, search and link pickers. Added as a single builder file in the card catalogue; without a builder the section keeps the old row.","ru":"Тип записи, который в списках, поиске и выборе связи показывается карточкой записи. Добавляется одним файлом-билдером в каталоге карточек; без билдера раздел остаётся на старой строке."},"attrs":{"entries_count":38,"key":"object_card"}},{"id":"extension:requirement_kind","kind":"extension_point","label":{"en":"Requirement kind","ru":"Вид требования"},"description":{"en":"What can be required of a person: a competency with a level ladder, a qualification document with details, a training or a document backed by an external subject. Registered in the unified catalogue initializer; the kind declares its structure, the catalogue and the journal are shared.","ru":"Что может требоваться от человека: компетенция с уровнями, квалификационный документ с реквизитами, обучение или документ с внешним предметом. Регистрируется в инициализаторе единого каталога; вид объявляет свою структуру, каталог и журнал общие."},"attrs":{"entries_count":3,"key":"requirement_kind"}},{"id":"extension:requirement_subject","kind":"extension_point","label":{"en":"Requirement carrier","ru":"Носитель требований"},"description":{"en":"Who a requirement applies to: a job position, a structure node, later a shift, an operation, a staff profile. Registration gives the carrier a Requirements tab and a part in resolving effective requirements.","ru":"На кого распространяется норма: должность, участок, дальше — смена, операция, штатный профиль. Регистрация даёт носителю вкладку «Требования» и участие в выводе действующих требований."},"attrs":{"entries_count":2,"key":"requirement_subject"}},{"id":"extension:role_class","kind":"extension_point","label":{"en":"Role builder class","ru":"Класс в конструкторе ролей"},"description":{"en":"An entity whose permissions are configured in the role builder: the set of actions and the values they may take.","ru":"Сущность, права на которую настраиваются в конструкторе ролей: набор действий и допустимые значения."},"attrs":{"entries_count":56,"key":"role_class"}},{"id":"extension:shareable","kind":"extension_point","label":{"en":"Publicly shareable object","ru":"Объект публичного доступа"},"description":{"en":"A record type that can be shared by link: who may view it, which permissions are granted, what is pulled along with it.","ru":"Тип записи, на которую можно выдать доступ по ссылке: кто просматривает, какие права выдаются, что тянется вместе с ней."},"attrs":{"entries_count":2,"key":"shareable"}},{"id":"extension:system_profile","kind":"extension_point","label":{"en":"System profile","ru":"Профиль системы"},"description":{"en":"A ready-made set of modules and reference data for a new account. Added as a single file in the profile catalogue; the set can be changed manually afterwards.","ru":"Готовый состав модулей и справочников для нового аккаунта. Добавляется одним файлом в каталоге профилей; состав дальше меняется вручную."},"attrs":{"entries_count":4,"key":"system_profile"}},{"id":"extension:widget","kind":"extension_point","label":{"en":"Workspace widget","ru":"Виджет рабочего стола"},"description":{"en":"A tile on the workspace. Added as a single file in the widget catalogue: key, data source, permissions, size. The catalogue is assembled from files automatically.","ru":"Плитка на рабочем столе. Добавляется одним файлом в каталоге виджетов: ключ, источник данных, права, размер. Каталог собирается из файлов автоматически."},"attrs":{"entries_count":11,"key":"widget"}}],"contracts":[{"id":"contract:graphql:mutation.acknowledgeInboxItem","kind":"contract","label":{"en":"mutation acknowledgeInboxItem","ru":"mutation acknowledgeInboxItem"},"description":{"en":"«Ознакомлен»: подтверждение пишется в журнал действий, элемент закрывается.","ru":"«Ознакомлен»: подтверждение пишется в журнал действий, элемент закрывается."},"attrs":{"field":"acknowledgeInboxItem","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.adminAssignTask","kind":"contract","label":{"en":"mutation adminAssignTask","ru":"mutation adminAssignTask"},"description":{"en":"Назначить ответственного за задачу (admin only).","ru":"Назначить ответственного за задачу (admin only)."},"attrs":{"field":"adminAssignTask","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.adminDisableUserLogin","kind":"contract","label":{"en":"mutation adminDisableUserLogin","ru":"mutation adminDisableUserLogin"},"description":{"en":"Запретить вход пользователю (admin only).","ru":"Запретить вход пользователю (admin only)."},"attrs":{"field":"adminDisableUserLogin","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.adminInviteUser","kind":"contract","label":{"en":"mutation adminInviteUser","ru":"mutation adminInviteUser"},"description":{"en":"Пригласить пользователя в активный аккаунт (admin only). Новому человеку уходит письмо об установке пароля; сотрудник организации получает доступ к аккаунту.","ru":"Пригласить пользователя в активный аккаунт (admin only). Новому человеку уходит письмо об установке пароля; сотрудник организации получает доступ к аккаунту."},"attrs":{"field":"adminInviteUser","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.archiveInboxItem","kind":"contract","label":{"en":"mutation archiveInboxItem","ru":"mutation archiveInboxItem"},"description":{"en":"Убрать элемент «к сведению» в архив. «Требует действия» без выполнения не убирается.","ru":"Убрать элемент «к сведению» в архив. «Требует действия» без выполнения не убирается."},"attrs":{"field":"archiveInboxItem","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.completeTask","kind":"contract","label":{"en":"mutation completeTask","ru":"mutation completeTask"},"description":{"en":"Перевести задачу в финальный статус с кодом `done`.","ru":"Перевести задачу в финальный статус с кодом `done`."},"attrs":{"field":"completeTask","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.declineInboxItem","kind":"contract","label":{"en":"mutation declineInboxItem","ru":"mutation declineInboxItem"},"description":{"en":"«Не могу выполнить»: отказ с причиной пишется в журнал, автору уходит обращение.","ru":"«Не могу выполнить»: отказ с причиной пишется в журнал, автору уходит обращение."},"attrs":{"field":"declineInboxItem","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.markInboxItemSeen","kind":"contract","label":{"en":"mutation markInboxItemSeen","ru":"mutation markInboxItemSeen"},"description":{"en":"Отметить элемент увиденным (открыл карточку).","ru":"Отметить элемент увиденным (открыл карточку)."},"attrs":{"field":"markInboxItemSeen","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.snoozeInboxItem","kind":"contract","label":{"en":"mutation snoozeInboxItem","ru":"mutation snoozeInboxItem"},"description":{"en":"«Напомнить позже»: элемент скрыт до времени (у «требует действия» — не позже срока).","ru":"«Напомнить позже»: элемент скрыт до времени (у «требует действия» — не позже срока)."},"attrs":{"field":"snoozeInboxItem","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:mutation.updateProfile","kind":"contract","label":{"en":"mutation updateProfile","ru":"mutation updateProfile"},"description":{"en":"Обновить профиль текущего пользователя.","ru":"Обновить профиль текущего пользователя."},"attrs":{"field":"updateProfile","operation":"mutation","protocol":"graphql"}},{"id":"contract:graphql:query.account","kind":"contract","label":{"en":"query account","ru":"query account"},"description":{"en":"Активный аккаунт для контекста запроса.","ru":"Активный аккаунт для контекста запроса."},"attrs":{"field":"account","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.customFieldDefinitions","kind":"contract","label":{"en":"query customFieldDefinitions","ru":"query customFieldDefinitions"},"description":{"en":"Метаданные своих полей раздела — тот же контракт, что у REST-эндпоинта describe.","ru":"Метаданные своих полей раздела — тот же контракт, что у REST-эндпоинта describe."},"attrs":{"field":"customFieldDefinitions","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.documents","kind":"contract","label":{"en":"query documents","ru":"query documents"},"description":{"en":"Документы аккаунта с фильтрами.","ru":"Документы аккаунта с фильтрами."},"attrs":{"field":"documents","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.folders","kind":"contract","label":{"en":"query folders","ru":"query folders"},"description":{"en":"Папки аккаунта.","ru":"Папки аккаунта."},"attrs":{"field":"folders","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.inboxCounter","kind":"contract","label":{"en":"query inboxCounter","ru":"query inboxCounter"},"description":{"en":"Сколько элементов «Входящих» ждут действия (счётчик раздела).","ru":"Сколько элементов «Входящих» ждут действия (счётчик раздела)."},"attrs":{"field":"inboxCounter","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.inboxItems","kind":"contract","label":{"en":"query inboxItems","ru":"query inboxItems"},"description":{"en":"«Входящие» текущего пользователя в активном аккаунте (Ф23).","ru":"«Входящие» текущего пользователя в активном аккаунте (Ф23)."},"attrs":{"field":"inboxItems","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.node","kind":"contract","label":{"en":"query node","ru":"query node"},"description":{"en":"Relay node: поиск по глобальному ID.","ru":"Relay node: поиск по глобальному ID."},"attrs":{"field":"node","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.section","kind":"contract","label":{"en":"query section","ru":"query section"},"description":{"en":"Кастомный раздел по ключу.","ru":"Кастомный раздел по ключу."},"attrs":{"field":"section","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.sectionRecords","kind":"contract","label":{"en":"query sectionRecords","ru":"query sectionRecords"},"description":{"en":"Записи кастомного раздела по имени, в правах роли.","ru":"Записи кастомного раздела по имени, в правах роли."},"attrs":{"field":"sectionRecords","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.sections","kind":"contract","label":{"en":"query sections","ru":"query sections"},"description":{"en":"Кастомные разделы организации, готовые к работе.","ru":"Кастомные разделы организации, готовые к работе."},"attrs":{"field":"sections","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.tasks","kind":"contract","label":{"en":"query tasks","ru":"query tasks"},"description":{"en":"Задачи текущего пользователя в активном аккаунте.","ru":"Задачи текущего пользователя в активном аккаунте."},"attrs":{"field":"tasks","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:query.viewer","kind":"contract","label":{"en":"query viewer","ru":"query viewer"},"description":{"en":"Текущий аутентифицированный пользователь.","ru":"Текущий аутентифицированный пользователь."},"attrs":{"field":"viewer","operation":"query","protocol":"graphql"}},{"id":"contract:graphql:subscription.inboxItemReceived","kind":"contract","label":{"en":"subscription inboxItemReceived","ru":"subscription inboxItemReceived"},"description":{"en":"Поток новых элементов «Входящих» текущего пользователя.","ru":"Поток новых элементов «Входящих» текущего пользователя."},"attrs":{"field":"inboxItemReceived","operation":"subscription","protocol":"graphql"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/cargo_templates/{id}","kind":"contract","label":{"en":"Delete a cargo template","ru":"Delete a cargo template"},"description":{"en":"Soft delete to the trash of the account.","ru":"Soft delete to the trash of the account."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/cargo_templates/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the template keeps the record.","ru":"Hard delete; the journal of the template keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/carrier_requests/{id}","kind":"contract","label":{"en":"Delete a carrier request","ru":"Delete a carrier request"},"description":{"en":"Soft delete to the trash of the account — only a draft; the number stays taken.","ru":"Soft delete to the trash of the account — only a draft; the number stays taken."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/carrier_requests/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the request keeps the record.","ru":"Hard delete; the journal of the request keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/comments/{id}/resolve","kind":"contract","label":{"en":"Reopen a discussion","ru":"Reopen a discussion"},"description":{"en":"Returns a resolved discussion back to work.","ru":"Returns a resolved discussion back to work."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/comments/{id}/resolve","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/contracts/{id}","kind":"contract","label":{"en":"Delete a contract","ru":"Delete a contract"},"description":{"en":"Soft delete to the trash of the account; the default mark goes with it.","ru":"Soft delete to the trash of the account; the default mark goes with it."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/contracts/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/contracts/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the contract keeps the record.","ru":"Hard delete; the journal of the contract keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/contracts/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/contracts/{id}/files/{file_id}","kind":"contract","label":{"en":"Delete a file of the contract","ru":"Delete a file of the contract"},"description":{"en":"Hard delete; the journal of the contract keeps the record.","ru":"Hard delete; the journal of the contract keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/contracts/{id}/files/{file_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/counterparties/{id}","kind":"contract","label":{"en":"Delete a counterparty","ru":"Delete a counterparty"},"description":{"en":"Soft delete of the relation to the trash of the owner account; the legal entity stays. Only the owner account may delete.","ru":"Soft delete of the relation to the trash of the owner account; the legal entity stays. Only the owner account may delete."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/counterparties/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/counterparties/{id}/locations/{location_id}","kind":"contract","label":{"en":"Unlink a location from the counterparty","ru":"Unlink a location from the counterparty"},"description":{"en":"Hard delete of the link; both journals keep the record.","ru":"Hard delete of the link; both journals keep the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/counterparties/{id}/locations/{location_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/custom_field_definitions/{key}","kind":"contract","label":{"en":"Delete a custom field","ru":"Delete a custom field"},"description":{"en":"Removes the field itself. **Organization administrator only.**\n\nValues already stored in records are dropped the next time each record is saved.\nTo keep the data and only hide the field, `PATCH` it with `active: false` instead.\n","ru":"Removes the field itself. **Organization administrator only.**\n\nValues already stored in records are dropped the next time each record is saved.\nTo keep the data and only hide the field, `PATCH` it with `active: false` instead.\n"},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/custom_field_definitions/{key}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/documents/{id}","kind":"contract","label":{"en":"Discard a document (soft delete)","ru":"Discard a document (soft delete)"},"description":{"en":"Soft-deletes a document. The document is not permanently removed — it can be restored via the restore endpoint.\n\nAfter discarding, the document will not appear in the default list (status `active`) but can be found with `status=discarded` or `status=all`.\n\nThe `discarded_at` timestamp is set in the response.\n","ru":"Soft-deletes a document. The document is not permanently removed — it can be restored via the restore endpoint.\n\nAfter discarding, the document will not appear in the default list (status `active`) but can be found with `status=discarded` or `status=all`.\n\nThe `discarded_at` timestamp is set in the response.\n"},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/documents/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/drivers/{id}","kind":"contract","label":{"en":"Delete a driver","ru":"Delete a driver"},"description":{"en":"Soft delete of the relation to the trash of the owner account; the driver stays in the organization. The owner account or the organization admin may delete.","ru":"Soft delete of the relation to the trash of the owner account; the driver stays in the organization. The owner account or the organization admin may delete."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/drivers/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/drivers/{id}/vehicles/{vehicle_id}","kind":"contract","label":{"en":"Unlink a vehicle from the driver","ru":"Unlink a vehicle from the driver"},"description":{"en":"Hard delete of the link; both journals keep the record.","ru":"Hard delete of the link; both journals keep the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/drivers/{id}/vehicles/{vehicle_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/folders/{id}","kind":"contract","label":{"en":"Discard a folder (soft delete)","ru":"Discard a folder (soft delete)"},"description":{"en":"Soft-deletes a folder along with all its subfolders and their documents.\n\nAfter discarding, the folder will not appear in the default list (status `active`) but can be found with `status=discarded` or `status=all`.\n","ru":"Soft-deletes a folder along with all its subfolders and their documents.\n\nAfter discarding, the folder will not appear in the default list (status `active`) but can be found with `status=discarded` or `status=all`.\n"},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/folders/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/locations/{id}","kind":"contract","label":{"en":"Delete a location","ru":"Delete a location"},"description":{"en":"Soft delete of the relation to the trash of the owner account; the location stays in the organization. The owner account or the organization admin may delete.","ru":"Soft delete of the relation to the trash of the owner account; the location stays in the organization. The owner account or the organization admin may delete."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/locations/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/locations/{id}/counterparties/{counterparty_id}","kind":"contract","label":{"en":"Unlink a counterparty from the location","ru":"Unlink a counterparty from the location"},"description":{"en":"Hard delete of the link; both journals keep the record.","ru":"Hard delete of the link; both journals keep the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/locations/{id}/counterparties/{counterparty_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/locations/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the location keeps the record.","ru":"Hard delete; the journal of the location keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/locations/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/orders/{id}","kind":"contract","label":{"en":"Delete an order","ru":"Delete an order"},"description":{"en":"Soft delete to the trash of the account; the number stays taken.","ru":"Soft delete to the trash of the account; the number stays taken."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/orders/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/orders/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the order keeps the record.","ru":"Hard delete; the journal of the order keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/orders/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/powers_of_attorney/{id}","kind":"contract","label":{"en":"Delete a power of attorney","ru":"Delete a power of attorney"},"description":{"en":"Soft delete to the trash. A parent with alive redelegations is refused with 422.","ru":"Soft delete to the trash. A parent with alive redelegations is refused with 422."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/powers_of_attorney/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","kind":"contract","label":{"en":"Delete a record","ru":"Delete a record"},"description":{"en":"Soft delete: the record disappears from the section, its data is kept.","ru":"Soft delete: the record disappears from the section, its data is kept."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/signatories/{id}","kind":"contract","label":{"en":"Delete a signatory","ru":"Delete a signatory"},"description":{"en":"Soft delete to the trash. A signatory with alive powers of attorney is refused with 422.","ru":"Soft delete to the trash. A signatory with alive powers of attorney is refused with 422."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/signatories/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/signing_defaults","kind":"contract","label":{"en":"Remove the default signatory for a legal entity and purpose","ru":"Remove the default signatory for a legal entity and purpose"},"description":{"en":"Returns the removed default; none set — 404.","ru":"Returns the removed default; none set — 404."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/signing_defaults","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/trips/{id}","kind":"contract","label":{"en":"Delete a trip","ru":"Delete a trip"},"description":{"en":"Soft delete to the trash of the account — only a trip in the plan without a sent or confirmed request; the number stays taken, the order lines are free again.","ru":"Soft delete to the trash of the account — only a trip in the plan without a sent or confirmed request; the number stays taken, the order lines are free again."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/trips/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/trips/{id}/external_refs/{ref_id}","kind":"contract","label":{"en":"Remove an external key","ru":"Remove an external key"},"description":{"en":"Hard delete; the journal of the trip keeps the record.","ru":"Hard delete; the journal of the trip keeps the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/trips/{id}/external_refs/{ref_id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/vehicles/{id}","kind":"contract","label":{"en":"Delete a vehicle","ru":"Delete a vehicle"},"description":{"en":"Soft delete of the relation to the trash of the owner account; the vehicle stays in the organization. The owner account or the organization admin may delete.","ru":"Soft delete of the relation to the trash of the owner account; the vehicle stays in the organization. The owner account or the organization admin may delete."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/vehicles/{id}","protocol":"rest"}},{"id":"contract:rest:DELETE /api/v2/accounts/{account_id}/vehicles/{id}/drivers/{driver_id}","kind":"contract","label":{"en":"Unlink a driver from the vehicle","ru":"Unlink a driver from the vehicle"},"description":{"en":"Hard delete of the link; both journals keep the record.","ru":"Hard delete of the link; both journals keep the record."},"attrs":{"api_version":"v2","method":"DELETE","path":"/api/v2/accounts/{account_id}/vehicles/{id}/drivers/{driver_id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/cargo_templates","kind":"contract","label":{"en":"List cargo templates","ru":"List cargo templates"},"description":{"en":"Cargo templates of the account by name. Active only by default; `status=archived` — the archive.\n`owner_legal_entity_id` — only an owner the key sees (another one gives an empty list). `q` — name, code,\nHS heading or external key. `external_system` and `external_id` — a template by its key in 1C or another\nsystem of the account (keys of locations and contracts are not searched).\n","ru":"Cargo templates of the account by name. Active only by default; `status=archived` — the archive.\n`owner_legal_entity_id` — only an owner the key sees (another one gives an empty list). `q` — name, code,\nHS heading or external key. `external_system` and `external_id` — a template by its key in 1C or another\nsystem of the account (keys of locations and contracts are not searched).\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/cargo_templates","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/cargo_templates/pick","kind":"contract","label":{"en":"Cargo templates to pick for an order line","ru":"Cargo templates to pick for an order line"},"description":{"en":"Active templates of the account the key reads, without the archive and the trash. Templates of\n`owner_legal_entity_id` go first, then the rest by name; an owner the key does not see is ignored (the order\nwould tell which hidden templates are its). `q` — name, code or HS heading. Not paginated: `limit` 1–50.\n","ru":"Active templates of the account the key reads, without the archive and the trash. Templates of\n`owner_legal_entity_id` go first, then the rest by name; an owner the key does not see is ignored (the order\nwould tell which hidden templates are its). `q` — name, code or HS heading. Not paginated: `limit` 1–50.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/cargo_templates/pick","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/cargo_templates/{id}","kind":"contract","label":{"en":"Get a cargo template","ru":"Get a cargo template"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/cargo_templates/{id}/totals","kind":"contract","label":{"en":"Totals for a number of places","ru":"Totals for a number of places"},"description":{"en":"Masses, volume and pallets × places (bulk cargo — one place, values as is). 422 `totals_out_of_format`\n— a total does not fit the e-waybill format (`details.field`).\n","ru":"Masses, volume and pallets × places (bulk cargo — one place, values as is). 422 `totals_out_of_format`\n— a total does not fit the e-waybill format (`details.field`).\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}/totals","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/carrier_requests","kind":"contract","label":{"en":"List carrier requests","ru":"List carrier requests"},"description":{"en":"Requests of the account, the latest first. `trip_id` — requests of a trip; `carrier_legal_entity_id` — only a\ncarrier the key sees (another one gives an empty list). `q` — our number or the number at the carrier.\n`external_system` and `external_id` — a request by its key in another system of the account.\n","ru":"Requests of the account, the latest first. `trip_id` — requests of a trip; `carrier_legal_entity_id` — only a\ncarrier the key sees (another one gives an empty list). `q` — our number or the number at the carrier.\n`external_system` and `external_id` — a request by its key in another system of the account.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/carrier_requests","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/carrier_requests/{id}","kind":"contract","label":{"en":"Get a carrier request","ru":"Get a carrier request"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/carrier_requests/{id}/ezz.xml","kind":"contract","label":{"en":"E-request file (XML)","ru":"E-request file (XML)"},"description":{"en":"The shipper title of the e-request (ЭЗЗ 5.01, windows-1251). A sent request — the stored file byte for\nbyte; a draft — built now, not ready — 422 `not_ready` with the missing fields. Not a draft without a\ntitle (cancelled draft) — 404. Who reads the request.\n","ru":"The shipper title of the e-request (ЭЗЗ 5.01, windows-1251). A sent request — the stored file byte for\nbyte; a draft — built now, not ready — 422 `not_ready` with the missing fields. Not a draft without a\ntitle (cancelled draft) — 404. Who reads the request.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/ezz.xml","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/carrier_requests/{id}/print.pdf","kind":"contract","label":{"en":"Print form (PDF)","ru":"Print form (PDF)"},"description":{"en":"The same content as `ezz.xml` and a separate block with the rate; a draft — marked, with the missing fields. Who reads the request.","ru":"The same content as `ezz.xml` and a separate block with the rate; a draft — marked, with the missing fields. Who reads the request."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/print.pdf","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/comments","kind":"contract","label":{"en":"List discussions","ru":"List discussions"},"description":{"en":"Returns discussion threads for a subject, newest first.","ru":"Returns discussion threads for a subject, newest first."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/comments","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/contracts","kind":"contract","label":{"en":"List contracts","ru":"List contracts"},"description":{"en":"Contracts of the account, the latest date first. Filters by the kind, the sides, the default mark and\nthe state today; `expiring_within_days` — in effect today and ending within the days by the term or by\na future termination. `q` — number (`15/А` finds `15-a`), name, other side name or INN.\n`external_system` and `external_id` — by an external key of the account, among contracts only.\n","ru":"Contracts of the account, the latest date first. Filters by the kind, the sides, the default mark and\nthe state today; `expiring_within_days` — in effect today and ending within the days by the term or by\na future termination. `q` — number (`15/А` finds `15-a`), name, other side name or INN.\n`external_system` and `external_id` — by an external key of the account, among contracts only.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/contracts","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/contracts/effective","kind":"contract","label":{"en":"Contract in effect for the pair and kind","ru":"Contract in effect for the pair and kind"},"description":{"en":"The contract a document takes on the date: the default of the pair if in effect, otherwise the only one\nin effect. Otherwise `contract` is `null`, `candidates` — contracts in effect, the default first, then\nthe latest date first; none — empty. A contract whose our legal entity is no longer own in the account\nis never offered.\n","ru":"The contract a document takes on the date: the default of the pair if in effect, otherwise the only one\nin effect. Otherwise `contract` is `null`, `candidates` — contracts in effect, the default first, then\nthe latest date first; none — empty. A contract whose our legal entity is no longer own in the account\nis never offered.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/contracts/effective","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/contracts/{id}","kind":"contract","label":{"en":"Get a contract","ru":"Get a contract"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/contracts/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/contracts/{id}/files/{file_id}","kind":"contract","label":{"en":"Download a file of the contract","ru":"Download a file of the contract"},"description":{"en":"Streamed with the rights of the contract: `Cache-Control: private, no-store`; PDF and raster images — inline, other types — attachment.","ru":"Streamed with the rights of the contract: `Cache-Control: private, no-store`; PDF and raster images — inline, other types — attachment."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/contracts/{id}/files/{file_id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties","kind":"contract","label":{"en":"List counterparties","ru":"List counterparties"},"description":{"en":"Counterparties visible to the account (its own and, for a shared directory, those of\nother accounts in the pool), ordered by name. Filters: `roles[]` — any of the roles,\n`operator_code` — the legal entity has an EDI profile at the operator, `q` — name or INN substring.\n","ru":"Counterparties visible to the account (its own and, for a shared directory, those of\nother accounts in the pool), ordered by name. Filters: `roles[]` — any of the roles,\n`operator_code` — the legal entity has an EDI profile at the operator, `q` — name or INN substring.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties/{id}","kind":"contract","label":{"en":"Get a counterparty","ru":"Get a counterparty"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties/{id}/contracts","kind":"contract","label":{"en":"List contracts of a counterparty","ru":"List contracts of a counterparty"},"description":{"en":"Contracts of the account where the counterparty legal entity is either side, the latest date first. For an own legal entity — also contracts inside the group.","ru":"Contracts of the account where the counterparty legal entity is either side, the latest date first. For an own legal entity — also contracts inside the group."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties/{id}/contracts","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties/{id}/locations","kind":"contract","label":{"en":"Linked locations of the counterparty","ru":"Linked locations of the counterparty"},"description":{"en":"Preliminary links of the account — a hint for shipments, not a restriction: locations linked to the counterparty that the role may read. Only for a relation of the account itself.","ru":"Preliminary links of the account — a hint for shipments, not a restriction: locations linked to the counterparty that the role may read. Only for a relation of the account itself."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties/{id}/locations","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney","kind":"contract","label":{"en":"List powers of attorney of the counterparty legal entity as the principal","ru":"List powers of attorney of the counterparty legal entity as the principal"},"description":{"en":"Alive powers of attorney, the latest issued first. `expiring_within_days` — in effect today and\nending within the days. GUID and powers — only if you can update them.\n","ru":"Alive powers of attorney, the latest issued first. `expiring_within_days` — in effect today and\nending within the days. GUID and powers — only if you can update them.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/counterparties/{id}/signatories","kind":"contract","label":{"en":"List signatories of the counterparty legal entity","ru":"List signatories of the counterparty legal entity"},"description":{"en":"Alive signatories, by name. INN and SNILS are masked unless you can update them.","ru":"Alive signatories, by name. INN and SNILS are masked unless you can update them."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/counterparties/{id}/signatories","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/custom_field_definitions","kind":"contract","label":{"en":"List custom field definitions of a section","ru":"List custom field definitions of a section"},"description":{"en":"Returns the custom fields configured for a section of the account's organization.\n\n**Contract.** `key` is a machine name: immutable, unique within the section — bind to\nit. `label` is localized and may be renamed at any time — show it. This is the same\nmetadata the UI uses, so a client never has to guess names or types.\n\n**Values** are not here: they travel inside the entity itself, in the envelope named\nafter this resource (see the section's endpoints). Reading and writing use the very\nsame keys.\n\n**Inactive fields** stay in the list with `active: false`: historical values are still\nreadable, but writing into such a field is rejected with 422.\n\n`filterable: true` marks a field the section's grid can filter and sort by.\n","ru":"Returns the custom fields configured for a section of the account's organization.\n\n**Contract.** `key` is a machine name: immutable, unique within the section — bind to\nit. `label` is localized and may be renamed at any time — show it. This is the same\nmetadata the UI uses, so a client never has to guess names or types.\n\n**Values** are not here: they travel inside the entity itself, in the envelope named\nafter this resource (see the section's endpoints). Reading and writing use the very\nsame keys.\n\n**Inactive fields** stay in the list with `active: false`: historical values are still\nreadable, but writing into such a field is rejected with 422.\n\n`filterable: true` marks a field the section's grid can filter and sort by.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/custom_field_definitions","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/custom_field_groups","kind":"contract","label":{"en":"List field groups of a section","ru":"List field groups of a section"},"description":{"en":"Groups are the collapsible sections a field can be put into. Referenced by `group_id`.","ru":"Groups are the collapsible sections a field can be put into. Referenced by `group_id`."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/custom_field_groups","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/documents","kind":"contract","label":{"en":"List documents","ru":"List documents"},"description":{"en":"Returns a paginated list of documents within the account.\n\nResults can be filtered by folder, document type, and status. Full-text search is available via the `q` parameter.\nThe list endpoint does **not** return `content` and `description` fields — use GET `/documents/{id}` for full document data.\n\n**Sorting:** defaults to `updated_at desc` (most recently modified first).\n\n**Pagination:** cursor-based via `page` and `limit` parameters. Response includes `meta.pagination` with `total`, `page`, `last_page`, and `has_next`.\n","ru":"Returns a paginated list of documents within the account.\n\nResults can be filtered by folder, document type, and status. Full-text search is available via the `q` parameter.\nThe list endpoint does **not** return `content` and `description` fields — use GET `/documents/{id}` for full document data.\n\n**Sorting:** defaults to `updated_at desc` (most recently modified first).\n\n**Pagination:** cursor-based via `page` and `limit` parameters. Response includes `meta.pagination` with `total`, `page`, `last_page`, and `has_next`.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/documents","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/documents/{id}","kind":"contract","label":{"en":"Get a document","ru":"Get a document"},"description":{"en":"Returns a single document with full content.\n\nUnlike the list endpoint, this response includes `content`, `description`, and `content_format` fields.\nContent is returned as Markdown text, regardless of the internal storage format.\n\n**Anchor links (deep linking to a specific section):**\n\nThe response includes an `anchors` array with all headings in the document:\n```json\n\"anchors\": [\n  { \"id\": \"ueGWDZG3MD\", \"level\": 2, \"text\": \"Introduction\" },\n  { \"id\": \"xBjcIFsCWg\", \"level\": 3, \"text\": \"Requirements\" }\n]\n```\n\nUse a block `id` to build in-document anchor links to a specific heading.\n","ru":"Returns a single document with full content.\n\nUnlike the list endpoint, this response includes `content`, `description`, and `content_format` fields.\nContent is returned as Markdown text, regardless of the internal storage format.\n\n**Anchor links (deep linking to a specific section):**\n\nThe response includes an `anchors` array with all headings in the document:\n```json\n\"anchors\": [\n  { \"id\": \"ueGWDZG3MD\", \"level\": 2, \"text\": \"Introduction\" },\n  { \"id\": \"xBjcIFsCWg\", \"level\": 3, \"text\": \"Requirements\" }\n]\n```\n\nUse a block `id` to build in-document anchor links to a specific heading.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/documents/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/documents/{id}/blocks","kind":"contract","label":{"en":"Read document blocks (for granular editing)","ru":"Read document blocks (for granular editing)"},"description":{"en":"Returns the document's blocks. **BlockNote (collaborative) documents only.**\nThe source of truth is the collaborative CRDT state, so this reflects the latest edits.\n\n**`view` (query):**\n- `flat` (default) — a flat list of `{ id, type, text }`. Use the `id`s to address\n  blocks in the operations endpoint.\n- `structured` — the full block tree `{ id, type, props, content, children }`. Needed\n  when you must edit a block's internal structure — for example, to add an image\n  (`inlineImage`) into a specific table cell: read the table with `view=structured`,\n  insert the inline image into the target cell's `content`, then send it back via an\n  `update` op.\n","ru":"Returns the document's blocks. **BlockNote (collaborative) documents only.**\nThe source of truth is the collaborative CRDT state, so this reflects the latest edits.\n\n**`view` (query):**\n- `flat` (default) — a flat list of `{ id, type, text }`. Use the `id`s to address\n  blocks in the operations endpoint.\n- `structured` — the full block tree `{ id, type, props, content, children }`. Needed\n  when you must edit a block's internal structure — for example, to add an image\n  (`inlineImage`) into a specific table cell: read the table with `view=structured`,\n  insert the inline image into the target cell's `content`, then send it back via an\n  `update` op.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/documents/{id}/blocks","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/drivers","kind":"contract","label":{"en":"List drivers","ru":"List drivers"},"description":{"en":"Drivers visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`. The list has no license and INN — they are in single-record responses.","ru":"Drivers visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`. The list has no license and INN — they are in single-record responses."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/drivers","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/drivers/{id}","kind":"contract","label":{"en":"Get a driver","ru":"Get a driver"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/drivers/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/drivers/{id}/vehicles","kind":"contract","label":{"en":"Linked vehicles of the driver","ru":"Linked vehicles of the driver"},"description":{"en":"Preliminary links of the account — a hint for shipments, not a restriction: vehicles linked to the driver that the role may read. Only for a relation of the account itself.","ru":"Preliminary links of the account — a hint for shipments, not a restriction: vehicles linked to the driver that the role may read. Only for a relation of the account itself."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/drivers/{id}/vehicles","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/folders","kind":"contract","label":{"en":"List folders","ru":"List folders"},"description":{"en":"Returns a paginated list of folders within the account.\n\nBy default returns **root folders** (no parent). Pass `parent_id` to list children of a specific folder.\n\nFull-text search is available via the `q` parameter (case-insensitive, partial match).\n\n**Sorting:** defaults to `name asc` (alphabetical).\n\n**Pagination:** via `page` and `limit` parameters. Response includes `meta.pagination`.\n","ru":"Returns a paginated list of folders within the account.\n\nBy default returns **root folders** (no parent). Pass `parent_id` to list children of a specific folder.\n\nFull-text search is available via the `q` parameter (case-insensitive, partial match).\n\n**Sorting:** defaults to `name asc` (alphabetical).\n\n**Pagination:** via `page` and `limit` parameters. Response includes `meta.pagination`.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/folders","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/folders/{id}","kind":"contract","label":{"en":"Get a folder","ru":"Get a folder"},"description":{"en":"Returns a single folder with details.\n\nUnlike the list endpoint, this response includes the `description` field.\n","ru":"Returns a single folder with details.\n\nUnlike the list endpoint, this response includes the `description` field.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/folders/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/legal_entities","kind":"contract","label":{"en":"Find a legal entity by INN","ru":"Find a legal entity by INN"},"description":{"en":"The organization's legal entity with the INN (and KPP for a branch). Without `kpp`: the only card\nwith the INN; if the organization has several branches of the company — 422 `branch_required`\nwith `details.branches`. Not in the organization — 404.\n","ru":"The organization's legal entity with the INN (and KPP for a branch). Without `kpp`: the only card\nwith the INN; if the organization has several branches of the company — 422 `branch_required`\nwith `details.branches`. Not in the organization — 404.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/legal_entities","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/locations","kind":"contract","label":{"en":"List locations","ru":"List locations"},"description":{"en":"Locations visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`.","ru":"Locations visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/locations","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/locations/resolve","kind":"contract","label":{"en":"Resolve a location key","ru":"Resolve a location key"},"description":{"en":"What creating would do, without creating: `own_account` — the account already has it (`id`),\n`archived_own` — in the account trash (`id`), `in_organization` — the organization has it, it will be\nconnected (`former` — found by a former address, `current_key` is the current one), `not_found` — a new one\nwill be created, `keys_conflict` — the GLN and the address with the name belong to different locations.\nThe key is the GLN, or the address (or the point) with the name.\n","ru":"What creating would do, without creating: `own_account` — the account already has it (`id`),\n`archived_own` — in the account trash (`id`), `in_organization` — the organization has it, it will be\nconnected (`former` — found by a former address, `current_key` is the current one), `not_found` — a new one\nwill be created, `keys_conflict` — the GLN and the address with the name belong to different locations.\nThe key is the GLN, or the address (or the point) with the name.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/locations/resolve","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/locations/{id}","kind":"contract","label":{"en":"Get a location","ru":"Get a location"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/locations/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/locations/{id}/counterparties","kind":"contract","label":{"en":"Linked counterparties of the location","ru":"Linked counterparties of the location"},"description":{"en":"Preliminary links of the account — a hint for shipments, not a restriction: counterparties linked to the location that the role may read. Only for a relation of the account itself.","ru":"Preliminary links of the account — a hint for shipments, not a restriction: counterparties linked to the location that the role may read. Only for a relation of the account itself."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/locations/{id}/counterparties","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/orders","kind":"contract","label":{"en":"List orders","ru":"List orders"},"description":{"en":"Orders of the account, the latest first, with stops and lines. `customer_legal_entity_id` — only a customer\nthe key sees (another one gives an empty list). `q` — our number, number of the customer, customer name or\nINN. `external_system` and `external_id` — an order by its key in 1C or another system of the account.\n","ru":"Orders of the account, the latest first, with stops and lines. `customer_legal_entity_id` — only a customer\nthe key sees (another one gives an empty list). `q` — our number, number of the customer, customer name or\nINN. `external_system` and `external_id` — an order by its key in 1C or another system of the account.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/orders","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/orders/{id}","kind":"contract","label":{"en":"Get an order","ru":"Get an order"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/orders/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/orders/{id}/document_plan","kind":"contract","label":{"en":"Document plan of an order","ru":"Document plan of an order"},"description":{"en":"Lines grouped by loading and unloading locations, shipper and consignee — one group is one future\ne-waybill (ЭТрН). A hint, not a document. References — by what the key reads (`*_hidden`).\n","ru":"Lines grouped by loading and unloading locations, shipper and consignee — one group is one future\ne-waybill (ЭТрН). A hint, not a document. References — by what the key reads (`*_hidden`).\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/orders/{id}/document_plan","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/powers_of_attorney/{id}","kind":"contract","label":{"en":"Get a power of attorney","ru":"Get a power of attorney"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/powers_of_attorney/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/sections","kind":"contract","label":{"en":"List sections","ru":"List sections"},"description":{"en":"Custom sections of the organization that are ready to use. A section is addressed by\nits `key` — the same as in the web address `/s/\u003ckey\u003e`.\n","ru":"Custom sections of the organization that are ready to use. A section is addressed by\nits `key` — the same as in the web address `/s/\u003ckey\u003e`.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/sections","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/sections/{section_key}","kind":"contract","label":{"en":"Get a section","ru":"Get a section"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/sections/{section_key}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/sections/{section_key}/categories","kind":"contract","label":{"en":"List categories of a section","ru":"List categories of a section"},"description":{"en":"The category tree of the section as a flat list in tree order: `parent_id` and\n`depth` restore the hierarchy. Categories are also the branches that scope custom\nfields — a field may exist only in some branches.\n","ru":"The category tree of the section as a flat list in tree order: `parent_id` and\n`depth` restore the hierarchy. Categories are also the branches that scope custom\nfields — a field may exist only in some branches.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/sections/{section_key}/categories","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/sections/{section_key}/records","kind":"contract","label":{"en":"List records of a section","ru":"List records of a section"},"description":{"en":"Records of the section in the account, ordered by name. Filter by category\n(`category_id`, only that category, without subcategories; `none` — records\nwithout a category) and by name (`q`, case-insensitive substring).\n","ru":"Records of the section in the account, ordered by name. Filter by category\n(`category_id`, only that category, without subcategories; `none` — records\nwithout a category) and by name (`q`, case-insensitive substring).\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/sections/{section_key}/records","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","kind":"contract","label":{"en":"Get a record","ru":"Get a record"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/signatories/pick","kind":"contract","label":{"en":"Signatory to put on a title","ru":"Signatory to put on a title"},"description":{"en":"In order: the current user if they are a signatory of the legal entity; the account's default signatory\nfor the legal entity and purpose; the only suitable one. Suitable — the check is not `blocked`. Otherwise\n`signatory` is `null`; `candidates` — active signatories with their checks, not blocked first, then by\nname. No personal data.\n","ru":"In order: the current user if they are a signatory of the legal entity; the account's default signatory\nfor the legal entity and purpose; the only suitable one. Suitable — the check is not `blocked`. Otherwise\n`signatory` is `null`; `candidates` — active signatories with their checks, not blocked first, then by\nname. No personal data.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/signatories/pick","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/signatories/{id}","kind":"contract","label":{"en":"Get a signatory","ru":"Get a signatory"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/signatories/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/signatories/{id}/check","kind":"contract","label":{"en":"Can the signatory sign a title","ru":"Can the signatory sign a title"},"description":{"en":"`signer_status` (СтатПодп 1–6), the power of attorney it rests on and the problems with their severity.\n`on_behalf_of` — the legal entity the title is signed for; another than the signatory's — only the\nshipper title as the loader (СтатПодп 4–6). No personal data.\n","ru":"`signer_status` (СтатПодп 1–6), the power of attorney it rests on and the problems with their severity.\n`on_behalf_of` — the legal entity the title is signed for; another than the signatory's — only the\nshipper title as the loader (СтатПодп 4–6). No personal data.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/signatories/{id}/check","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/signing_defaults","kind":"contract","label":{"en":"List the account's default signatories","ru":"List the account's default signatories"},"description":{"en":"Only legal entities whose signatories you read. Optional filters: legal entity, purpose.","ru":"Only legal entities whose signatories you read. Optional filters: legal entity, purpose."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/signing_defaults","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/tms_documents","kind":"contract","label":{"en":"List TMS documents","ru":"List TMS documents"},"description":{"en":"Documents of the account, the latest first, with titles. `trip_id`, `carrier_request_id` — documents of a trip or a request.","ru":"Documents of the account, the latest first, with titles. `trip_id`, `carrier_request_id` — documents of a trip or a request."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/tms_documents","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/tms_documents/{id}","kind":"contract","label":{"en":"Get a TMS document","ru":"Get a TMS document"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/tms_documents/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/tms_documents/{id}/titles/{title_id}/file","kind":"contract","label":{"en":"Download a title file","ru":"Download a title file"},"description":{"en":"The file of the title as it was sent — byte for byte (the signature is checked by bytes): `Cache-Control: private, no-store`.","ru":"The file of the title as it was sent — byte for byte (the signature is checked by bytes): `Cache-Control: private, no-store`."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/tms_documents/{id}/titles/{title_id}/file","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/trips","kind":"contract","label":{"en":"List trips","ru":"List trips"},"description":{"en":"Trips of the account, the latest first, with stops, cargo lines and assignments. `order_id` — trips of an\norder the key reads (another one gives an empty list). `q` — our number, city of a visible location; to the\nkey that reads requests — also the request number, number at the carrier, carrier name or INN.\n`external_system` and `external_id` — a trip by its key in another system of the account.\n","ru":"Trips of the account, the latest first, with stops, cargo lines and assignments. `order_id` — trips of an\norder the key reads (another one gives an empty list). `q` — our number, city of a visible location; to the\nkey that reads requests — also the request number, number at the carrier, carrier name or INN.\n`external_system` and `external_id` — a trip by its key in another system of the account.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/trips","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/trips/{id}","kind":"contract","label":{"en":"Get a trip","ru":"Get a trip"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/trips/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/vehicles","kind":"contract","label":{"en":"List vehicles","ru":"List vehicles"},"description":{"en":"Vehicles visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`.","ru":"Vehicles visible to the account (its own and, for a shared directory, those of other accounts in the pool). Filters by the record fields, `active` and `q`."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/vehicles","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/vehicles/{id}","kind":"contract","label":{"en":"Get a vehicle","ru":"Get a vehicle"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/vehicles/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/vehicles/{id}/drivers","kind":"contract","label":{"en":"Linked drivers of the vehicle","ru":"Linked drivers of the vehicle"},"description":{"en":"Preliminary links of the account — a hint for shipments, not a restriction: drivers linked to the vehicle that the role may read. Only for a relation of the account itself.","ru":"Preliminary links of the account — a hint for shipments, not a restriction: drivers linked to the vehicle that the role may read. Only for a relation of the account itself."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/vehicles/{id}/drivers","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/video_instructions/{id}","kind":"contract","label":{"en":"Get video instruction (full)","ru":"Get video instruction (full)"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/video_instructions/{id}","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/video_instructions/{id}/status","kind":"contract","label":{"en":"Lightweight pipeline status poll","ru":"Lightweight pipeline status poll"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/video_instructions/{id}/status","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/accounts/{account_id}/video_instructions/{id}/steps","kind":"contract","label":{"en":"List steps","ru":"List steps"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/accounts/{account_id}/video_instructions/{id}/steps","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/me","kind":"contract","label":{"en":"Get current token info","ru":"Get current token info"},"description":{"en":"Returns the account and user associated with the current token.\n\n**Use case:** Call this endpoint to discover the `account_id` for use in other API endpoints.\n\nWorks with both API keys (`Bearer kmd_...`) and JWT tokens.\n","ru":"Returns the account and user associated with the current token.\n\n**Use case:** Call this endpoint to discover the `account_id` for use in other API endpoints.\n\nWorks with both API keys (`Bearer kmd_...`) and JWT tokens.\n"},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/me","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/system/graph","kind":"contract","label":{"en":"Граф системы в формате {nodes, edges}","ru":"Граф системы в формате {nodes, edges}"},"description":{"en":"Тот же материал, что в манифесте, в форме, которую понимает графовый островок портала.","ru":"Тот же материал, что в манифесте, в форме, которую понимает графовый островок портала."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/system/graph","protocol":"rest"}},{"id":"contract:rest:GET /api/v2/system/manifest","kind":"contract","label":{"en":"Манифест системы: модули, справочники, контракты, точки расширения","ru":"Манифест системы: модули, справочники, контракты, точки расширения"},"description":{"en":"Машиночитаемое описание платформы. Собирается из кода, версия — дайджест содержимого.","ru":"Машиночитаемое описание платформы. Собирается из кода, версия — дайджест содержимого."},"attrs":{"api_version":"v2","method":"GET","path":"/api/v2/system/manifest","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/cargo_templates/{id}","kind":"contract","label":{"en":"Update a cargo template","ru":"Update a cargo template"},"description":{"en":"Partial update: omitted fields stay; a list is replaced as a whole. Response — with `warnings`.","ru":"Partial update: omitted fields stay; a list is replaced as a whole. Response — with `warnings`."},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/carrier_requests/{id}","kind":"contract","label":{"en":"Update a carrier request","ru":"Update a carrier request"},"description":{"en":"Partial update. A draft — every field; a sent request — only the number at the carrier, notes and the\nanswer deadline; later — notes (422 on the locked field). A new carrier or our legal entity picks the\ncontract anew (warnings). The status is not a field — see the actions. Response — with `warnings`.\n","ru":"Partial update. A draft — every field; a sent request — only the number at the carrier, notes and the\nanswer deadline; later — notes (422 on the locked field). A new carrier or our legal entity picks the\ncontract anew (warnings). The status is not a field — see the actions. Response — with `warnings`.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/contracts/{id}","kind":"contract","label":{"en":"Update a contract","ru":"Update a contract"},"description":{"en":"Partial update: omitted fields stay. A side is checked when it changes — a side that later left the\naccount does not block other edits. Changing the parties, number or date onto another contract —\n409 `contract_exists`. Response — with `warnings`. `custom_fields` merge.\n","ru":"Partial update: omitted fields stay. A side is checked when it changes — a side that later left the\naccount does not block other edits. Changing the parties, number or date onto another contract —\n409 `contract_exists`. Response — with `warnings`. `custom_fields` merge.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/contracts/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/counterparties/{id}","kind":"contract","label":{"en":"Update a counterparty","ru":"Update a counterparty"},"description":{"en":"Partial update of the relation: omitted fields stay; requisites are not editable and ignored.\n`edi_profiles` change the legal entity's profiles — with `id` updates one, with `_destroy: true`\ndeletes it, without `id` adds one; allowed only to the managing account or the organization\nadmin, otherwise the whole request is refused with 403. `custom_fields` merge — only the given\nkeys change, `null` clears one.\n","ru":"Partial update of the relation: omitted fields stay; requisites are not editable and ignored.\n`edi_profiles` change the legal entity's profiles — with `id` updates one, with `_destroy: true`\ndeletes it, without `id` adds one; allowed only to the managing account or the organization\nadmin, otherwise the whole request is refused with 403. `custom_fields` merge — only the given\nkeys change, `null` clears one.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/counterparties/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/custom_field_definitions/{key}","kind":"contract","label":{"en":"Update a custom field","ru":"Update a custom field"},"description":{"en":"Renames a field, toggles its flags, moves it to another group or replaces the options\nof a choice field. **Organization administrator only.**\n\n`key`, `field_type` and `owner_type` cannot be changed — stored values are bound to\nthem; an attempt is rejected with 422.\n\nSet `active: false` to retire a field: it disappears from forms, its historical values\nstay readable, and writing into it starts returning 422. `DELETE` removes the field\nitself — use it only when the data is not needed either.\n","ru":"Renames a field, toggles its flags, moves it to another group or replaces the options\nof a choice field. **Organization administrator only.**\n\n`key`, `field_type` and `owner_type` cannot be changed — stored values are bound to\nthem; an attempt is rejected with 422.\n\nSet `active: false` to retire a field: it disappears from forms, its historical values\nstay readable, and writing into it starts returning 422. `DELETE` removes the field\nitself — use it only when the data is not needed either.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/custom_field_definitions/{key}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/documents/{id}","kind":"contract","label":{"en":"Update a document","ru":"Update a document"},"description":{"en":"Partially updates a document. Only the provided fields are modified — omitted fields remain unchanged.\n\n**Content format:** Same Markdown syntax as the create endpoint.\n\n**Folder management:**\n- Pass `folder_id` with a UUID to move the document to that folder\n- Pass `folder_id: null` to remove the document from its current folder (move to root)\n- Omit `folder_id` to leave it unchanged\n\nA `move` activity is recorded when the folder changes. An `update` activity is always recorded.\n\n**Layout (single_page_document only):** `full_width`, `full_width_min`, `full_width_max` — same as\non create. `null` for a limit removes it; omitted fields stay unchanged. Limits are kept while\n`full_width` is off and apply again once it is turned on. Other document types → 422.\n","ru":"Partially updates a document. Only the provided fields are modified — omitted fields remain unchanged.\n\n**Content format:** Same Markdown syntax as the create endpoint.\n\n**Folder management:**\n- Pass `folder_id` with a UUID to move the document to that folder\n- Pass `folder_id: null` to remove the document from its current folder (move to root)\n- Omit `folder_id` to leave it unchanged\n\nA `move` activity is recorded when the folder changes. An `update` activity is always recorded.\n\n**Layout (single_page_document only):** `full_width`, `full_width_min`, `full_width_max` — same as\non create. `null` for a limit removes it; omitted fields stay unchanged. Limits are kept while\n`full_width` is off and apply again once it is turned on. Other document types → 422.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/documents/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/drivers/{id}","kind":"contract","label":{"en":"Update a driver","ru":"Update a driver"},"description":{"en":"Partial update: omitted fields stay. Changing the `driver` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n","ru":"Partial update: omitted fields stay. Changing the `driver` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/drivers/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/folders/{id}","kind":"contract","label":{"en":"Update a folder","ru":"Update a folder"},"description":{"en":"Partially updates a folder. Only the provided fields are modified — omitted fields remain unchanged.\n\n**Moving folders:**\n- Pass `parent_id` with a UUID to move the folder under another folder\n- Pass `parent_id: null` to move the folder to the root level\n- Omit `parent_id` to leave it unchanged\n- Cannot move a folder into itself or into its own descendant\n\nA `move` activity is recorded when the parent changes. An `update` activity is always recorded.\n","ru":"Partially updates a folder. Only the provided fields are modified — omitted fields remain unchanged.\n\n**Moving folders:**\n- Pass `parent_id` with a UUID to move the folder under another folder\n- Pass `parent_id: null` to move the folder to the root level\n- Omit `parent_id` to leave it unchanged\n- Cannot move a folder into itself or into its own descendant\n\nA `move` activity is recorded when the parent changes. An `update` activity is always recorded.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/folders/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/locations/{id}","kind":"contract","label":{"en":"Update a location","ru":"Update a location"},"description":{"en":"Partial update: omitted fields stay. Changing the `location` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n","ru":"Partial update: omitted fields stay. Changing the `location` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/locations/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/orders/{id}","kind":"contract","label":{"en":"Update an order","ru":"Update an order"},"description":{"en":"Partial update: omitted fields stay; `stops` and `lines`, when passed, are the full lists (`id` keeps an\nitem). An accepted order must keep a loading, an unloading and a line. The status is not a field — see\n`accept`, `cancel`, `reopen`. Response — with `warnings`.\n","ru":"Partial update: omitted fields stay; `stops` and `lines`, when passed, are the full lists (`id` keeps an\nitem). An accepted order must keep a loading, an unloading and a line. The status is not a field — see\n`accept`, `cancel`, `reopen`. Response — with `warnings`.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/orders/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/powers_of_attorney/{id}","kind":"contract","label":{"en":"Update a power of attorney","ru":"Update a power of attorney"},"description":{"en":"Partial update: omitted fields stay. An MCHD — only `covers_title_purposes` and the registry fields;\nothers are refused with 422 `from_file`. The representative and the principal do not change.\n","ru":"Partial update: omitted fields stay. An MCHD — only `covers_title_purposes` and the registry fields;\nothers are refused with 422 `from_file`. The representative and the principal do not change.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/powers_of_attorney/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","kind":"contract","label":{"en":"Update a record","ru":"Update a record"},"description":{"en":"Partial update: omitted fields stay. `custom_fields` merge — only the given keys\nchange, `null` clears one. Moving a record to another category keeps the values\nof fields outside the new branch: moved back, they are visible again.\n","ru":"Partial update: omitted fields stay. `custom_fields` merge — only the given keys\nchange, `null` clears one. Moving a record to another category keeps the values\nof fields outside the new branch: moved back, they are visible again.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/sections/{section_key}/records/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/signatories/{id}","kind":"contract","label":{"en":"Update a signatory","ru":"Update a signatory"},"description":{"en":"Partial update: omitted fields stay. Another signatory with this INN or SNILS — 409.","ru":"Partial update: omitted fields stay. Another signatory with this INN or SNILS — 409."},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/signatories/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/trips/{id}","kind":"contract","label":{"en":"Update a trip","ru":"Update a trip"},"description":{"en":"Partial update: omitted fields stay; `stops`, `cargo_lines` and `assignments`, when passed, are the full\nlists (`id` keeps an item). What may change depends on the status (a confirmed trip keeps its route, a\ncancelled one — only notes). The status is not a field — see `cancel`. Response — with `warnings`.\n","ru":"Partial update: omitted fields stay; `stops`, `cargo_lines` and `assignments`, when passed, are the full\nlists (`id` keeps an item). What may change depends on the status (a confirmed trip keeps its route, a\ncancelled one — only notes). The status is not a field — see `cancel`. Response — with `warnings`.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/trips/{id}","protocol":"rest"}},{"id":"contract:rest:PATCH /api/v2/accounts/{account_id}/vehicles/{id}","kind":"contract","label":{"en":"Update a vehicle","ru":"Update a vehicle"},"description":{"en":"Partial update: omitted fields stay. Changing the `vehicle` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n","ru":"Partial update: omitted fields stay. Changing the `vehicle` fields — only the managing account or\nthe organization admin, otherwise the whole request is refused with 403 (values equal to the\ncurrent ones are not a change). `custom_fields` merge.\n"},"attrs":{"api_version":"v2","method":"PATCH","path":"/api/v2/accounts/{account_id}/vehicles/{id}","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/cargo_templates","kind":"contract","label":{"en":"Create a cargo template","ru":"Create a cargo template"},"description":{"en":"Creates a template of the account: one place of cargo. The owner — a legal entity of the account\ncounterparties, another one is refused with 422 on its field. Response — 201 with `warnings`\n(`name_twin` — the owner already has a template with this name; `details.id` — if the key reads it).\n","ru":"Creates a template of the account: one place of cargo. The owner — a legal entity of the account\ncounterparties, another one is refused with 422 on its field. Response — 201 with `warnings`\n(`name_twin` — the owner already has a template with this name; `details.id` — if the key reads it).\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/cargo_templates","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/cargo_templates/{id}/archive","kind":"contract","label":{"en":"Archive a cargo template","ru":"Archive a cargo template"},"description":{"en":"The template stays in the account but is not offered for new orders.","ru":"The template stays in the account but is not offered for new orders."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}/archive","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/cargo_templates/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the template in 1C or another system of the account — a repeated import with it updates the template. Who may edit the template. Refusals: 409 `ref_taken` — the account already has this key on another template (a location or a contract may have the same key).","ru":"A key of the template in 1C or another system of the account — a repeated import with it updates the template. Who may edit the template. Refusals: 409 `ref_taken` — the account already has this key on another template (a location or a contract may have the same key)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/cargo_templates/{id}/restore","kind":"contract","label":{"en":"Restore a cargo template from the archive","ru":"Restore a cargo template from the archive"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/cargo_templates/{id}/restore","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests","kind":"contract","label":{"en":"Create a carrier request","ru":"Create a carrier request"},"description":{"en":"A draft request to a carrier for a trip in the plan. Substituted when omitted: our legal entity, the contract\n(by the pair), the basis, the currency, the signatory. A reference the key does not read — 422 `inaccessible`\non its field. Response — 201 with `warnings`.\n","ru":"A draft request to a carrier for a trip in the plan. Substituted when omitted: our legal entity, the contract\n(by the pair), the basis, the currency, the signatory. A reference the key does not read — 422 `inaccessible`\non its field. Response — 201 with `warnings`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/cancel","kind":"contract","label":{"en":"Cancel a draft request","ru":"Cancel a draft request"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/cancel","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/confirm","kind":"contract","label":{"en":"Confirm a request","ru":"Confirm a request"},"description":{"en":"Sent → confirmed by the carrier answer: the vehicle (a tractor or a truck), a trailer and up to two drivers\nbecome assignments of the trip. Vehicles and drivers — of the account, readable by the key. Errors — on\nthe fields of the body (`vehicle_id`, `driver_id` …).\n","ru":"Sent → confirmed by the carrier answer: the vehicle (a tractor or a truck), a trailer and up to two drivers\nbecome assignments of the trip. Vehicles and drivers — of the account, readable by the key. Errors — on\nthe fields of the body (`vehicle_id`, `driver_id` …).\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/confirm","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the request in 1C or another system of the account — a repeated import with it updates the request. Who may edit the request. Refusals: 409 `ref_taken` — the account already has this key on another request (a record of another type may have the same key).","ru":"A key of the request in 1C or another system of the account — a repeated import with it updates the request. Who may edit the request. Refusals: 409 `ref_taken` — the account already has this key on another request (a record of another type may have the same key)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/reject","kind":"contract","label":{"en":"Reject a request","ru":"Reject a request"},"description":{"en":"Sent → rejected by the carrier, with a reason. The trip stays in the plan; a new request — `renew`.","ru":"Sent → rejected by the carrier, with a reason. The trip stays in the plan; a new request — `renew`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/reject","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/renew","kind":"contract","label":{"en":"Renew a request","ru":"Renew a request"},"description":{"en":"A new draft for the same trip after a rejection or a withdrawal: the carrier, the contract and the rate are\nempty. One renewal per request — a repeated call returns the existing one (200). Response — 201.\n","ru":"A new draft for the same trip after a rejection or a withdrawal: the carrier, the contract and the rate are\nempty. One renewal per request — a repeated call returns the existing one (200). Response — 201.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/renew","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/send","kind":"contract","label":{"en":"Send a request","ru":"Send a request"},"description":{"en":"Draft → sent: the shipper title of the e-request (ЭЗЗ, format 5.01) is built, stored and queued to the EDI\noperator. Not ready — 422 `not_ready` on `base` with the list of missing fields (the same as `ezz.xml` of a\ndraft); another sent or confirmed request of the trip — 422 `active_request_exists`. A substituted owner\nof a location — in `warnings`.\n","ru":"Draft → sent: the shipper title of the e-request (ЭЗЗ, format 5.01) is built, stored and queued to the EDI\noperator. Not ready — 422 `not_ready` on `base` with the list of missing fields (the same as `ezz.xml` of a\ndraft); another sent or confirmed request of the trip — 422 `active_request_exists`. A substituted owner\nof a location — in `warnings`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/send","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/carrier_requests/{id}/withdraw","kind":"contract","label":{"en":"Withdraw a request","ru":"Withdraw a request"},"description":{"en":"Sent or confirmed → withdrawn. The trip stays in the plan; assignments of a confirmed request end.","ru":"Sent or confirmed → withdrawn. The trip stays in the plan; assignments of a confirmed request end."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/carrier_requests/{id}/withdraw","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/comments","kind":"contract","label":{"en":"Start a discussion","ru":"Start a discussion"},"description":{"en":"Creates a new discussion thread on a subject.","ru":"Creates a new discussion thread on a subject."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/comments","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/comments/{id}/resolve","kind":"contract","label":{"en":"Resolve a discussion","ru":"Resolve a discussion"},"description":{"en":"Marks a discussion as resolved.","ru":"Marks a discussion as resolved."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/comments/{id}/resolve","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts","kind":"contract","label":{"en":"Create a contract","ru":"Create a contract"},"description":{"en":"Creates a contract of the account. Our legal entity — own in the account (the only one is substituted\nwhen omitted), the other side — a legal entity of the account counterparties; another one is refused\nwith 422 on its field. The name defaults to the kind, `valid_from` — to the date.\n\nResponse — 201 with `warnings` (`numberless_twin`, `organization_twin`): they do not prevent saving.\nRefusal: 409 `contract_exists` — the account already has a contract with these parties, number and date\n(`details.id`, `details.archived` — it is in the trash: restore it instead of a new one).\n`custom_fields` are keyed by the machine key — see `/custom_field_definitions`.\n","ru":"Creates a contract of the account. Our legal entity — own in the account (the only one is substituted\nwhen omitted), the other side — a legal entity of the account counterparties; another one is refused\nwith 422 on its field. The name defaults to the kind, `valid_from` — to the date.\n\nResponse — 201 with `warnings` (`numberless_twin`, `organization_twin`): they do not prevent saving.\nRefusal: 409 `contract_exists` — the account already has a contract with these parties, number and date\n(`details.id`, `details.archived` — it is in the trash: restore it instead of a new one).\n`custom_fields` are keyed by the machine key — see `/custom_field_definitions`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the contract in 1C or another system of the account — a repeated import with it updates the contract. Who may edit the contract. Refusals: 409 `ref_taken` — the account already has this key on another contract (a location may have the same key).","ru":"A key of the contract in 1C or another system of the account — a repeated import with it updates the contract. Who may edit the contract. Refusals: 409 `ref_taken` — the account already has this key on another contract (a location may have the same key)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts/{id}/files","kind":"contract","label":{"en":"Upload a file to the contract","ru":"Upload a file to the contract"},"description":{"en":"Multipart `file`. Who may edit the contract. Types, size and number — rules of the contract; refusal — 422 `validation_error` on the field `file`.","ru":"Multipart `file`. Who may edit the contract. Types, size and number — rules of the contract; refusal — 422 `validation_error` on the field `file`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts/{id}/files","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts/{id}/make_default","kind":"contract","label":{"en":"Make the contract the default","ru":"Make the contract the default"},"description":{"en":"The default of the pair «our legal entity × other side × kind»: the former default loses the mark in\nthe same transaction. A terminated or expired contract can be the default — `effective` skips it.\n","ru":"The default of the pair «our legal entity × other side × kind»: the former default loses the mark in\nthe same transaction. A terminated or expired contract can be the default — `effective` skips it.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts/{id}/make_default","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts/{id}/resume","kind":"contract","label":{"en":"Resume a terminated contract","ru":"Resume a terminated contract"},"description":{"en":"Status `active`, the termination date is cleared; the state follows the term again.","ru":"Status `active`, the termination date is cleared; the state follows the term again."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts/{id}/resume","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/contracts/{id}/terminate","kind":"contract","label":{"en":"Terminate a contract","ru":"Terminate a contract"},"description":{"en":"Status `terminated` from `terminated_on` (today when omitted; not before `valid_from`). A future date is\nallowed: the contract stays in effect until then — see `terminates_on`. The default mark stays.\nTerminating again moves the date.\n","ru":"Status `terminated` from `terminated_on` (today when omitted; not before `valid_from`). A future date is\nallowed: the contract stays in effect until then — see `terminates_on`. The default mark stays.\nTerminating again moves the date.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/contracts/{id}/terminate","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/counterparties","kind":"contract","label":{"en":"Create a counterparty","ru":"Create a counterparty"},"description":{"en":"Creates a counterparty of the account by INN (and KPP for a branch). The legal entity comes from\nthe requisites source; if the organization already has it, only the relation is created. `name`\nis used only when the source is unavailable — the legal entity is then `unverified`. Other\nrequisites in the request are ignored.\n\nRefusals: 409 `counterparty_exists` (`details.id`, `details.archived` for one in the trash),\n422 `branch_required` (`details.branches`), 422 `company_not_found`, 422 `source_unavailable`\n(no `name`), 422 `kpp_required` (source unavailable and a legal entity without `kpp`). `custom_fields` are keyed by the machine key — see `/custom_field_definitions`.\n","ru":"Creates a counterparty of the account by INN (and KPP for a branch). The legal entity comes from\nthe requisites source; if the organization already has it, only the relation is created. `name`\nis used only when the source is unavailable — the legal entity is then `unverified`. Other\nrequisites in the request are ignored.\n\nRefusals: 409 `counterparty_exists` (`details.id`, `details.archived` for one in the trash),\n422 `branch_required` (`details.branches`), 422 `company_not_found`, 422 `source_unavailable`\n(no `name`), 422 `kpp_required` (source unavailable and a legal entity without `kpp`). `custom_fields` are keyed by the machine key — see `/custom_field_definitions`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/counterparties","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/counterparties/{id}/locations","kind":"contract","label":{"en":"Link a location to the counterparty","ru":"Link a location to the counterparty"},"description":{"en":"Both are relations of the account. Who may edit the counterparty or the location of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such location in the account (or the role may not read it), 409 `link_exists`.","ru":"Both are relations of the account. Who may edit the counterparty or the location of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such location in the account (or the role may not read it), 409 `link_exists`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/counterparties/{id}/locations","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney","kind":"contract","label":{"en":"Create a paper power of attorney","ru":"Create a paper power of attorney"},"description":{"en":"Only a paper one: an MCHD is created by uploading its file. Response — 201 with `warnings`\n(`paper_twin`): they do not prevent saving.\n","ru":"Only a paper one: an MCHD is created by uploading its file. Response — 201 with `warnings`\n(`paper_twin`): they do not prevent saving.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney/import","kind":"contract","label":{"en":"Import an MCHD file","ru":"Import an MCHD file"},"description":{"en":"Multipart `file` — XML of an MCHD (format 003) issued by the counterparty legal entity. The\nrepresentative is found among its signatories by INN or SNILS from the file, or set `signatory_id`; a\nredelegation under a paper power of attorney needs `parent_id`. Response — 201 created, 200 this MCHD\nis already here for this principal (nothing changed), 409 `power_of_attorney_exists` — the same file\nfor this principal was imported concurrently, 422 — refused with the import `code` (`details` — field names or the\nformat version, never INN or SNILS values) or `validation_error`.\n","ru":"Multipart `file` — XML of an MCHD (format 003) issued by the counterparty legal entity. The\nrepresentative is found among its signatories by INN or SNILS from the file, or set `signatory_id`; a\nredelegation under a paper power of attorney needs `parent_id`. Response — 201 created, 200 this MCHD\nis already here for this principal (nothing changed), 409 `power_of_attorney_exists` — the same file\nfor this principal was imported concurrently, 422 — refused with the import `code` (`details` — field names or the\nformat version, never INN or SNILS values) or `validation_error`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/counterparties/{id}/powers_of_attorney/import","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/counterparties/{id}/signatories","kind":"contract","label":{"en":"Create a signatory of the counterparty legal entity","ru":"Create a signatory of the counterparty legal entity"},"description":{"en":"Response — 201 with `warnings` (`name_twin`, `position_too_long`): they do not prevent saving.\nRefusal: 409 `signatory_exists` — an alive signatory of the legal entity has this INN or SNILS\n(`details.id`).\n","ru":"Response — 201 with `warnings` (`name_twin`, `position_too_long`): they do not prevent saving.\nRefusal: 409 `signatory_exists` — an alive signatory of the legal entity has this INN or SNILS\n(`details.id`).\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/counterparties/{id}/signatories","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/custom_field_definitions","kind":"contract","label":{"en":"Create a custom field","ru":"Create a custom field"},"description":{"en":"Adds a field to a section. **Organization administrator only** — a field belongs to the\norganization and appears in every account of it at once.\n\n`key` is generated from the label when omitted (transliterated to snake_case) and is\n**immutable afterwards**: stored values reference it.\n\n`field_type` is also immutable after creation — values are already coerced to it.\n\nFor `multipleChoice` pass `options` — a field of that type without options is a dead\nend for the person filling the form.\n","ru":"Adds a field to a section. **Organization administrator only** — a field belongs to the\norganization and appears in every account of it at once.\n\n`key` is generated from the label when omitted (transliterated to snake_case) and is\n**immutable afterwards**: stored values reference it.\n\n`field_type` is also immutable after creation — values are already coerced to it.\n\nFor `multipleChoice` pass `options` — a field of that type without options is a dead\nend for the person filling the form.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/custom_field_definitions","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/custom_field_groups","kind":"contract","label":{"en":"Create a field group","ru":"Create a field group"},"description":{"en":"Organization administrator only.","ru":"Organization administrator only."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/custom_field_groups","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/documents","kind":"contract","label":{"en":"Create a document","ru":"Create a document"},"description":{"en":"Creates a new document in the account.\n\n**Content format:** The `content` and `description` fields accept Markdown text. Supported syntax:\n- Headings: `# H1`, `## H2`, `### H3`\n- Inline: `**bold**`, `*italic*`, `~~strikethrough~~`, `` `code` ``, `[link](url)`\n- Lists: `- unordered`, `1. ordered`, `- [ ] checklist`, `- [x] checked`\n- Blockquotes: `\u003e quote`\n- Code blocks: ` ```language\\ncode\\n``` `\n- Tables: GFM pipe tables (`| A | B |`)\n- Horizontal rules: `---`\n\n**Layout (single_page_document only):** `full_width` turns on the full-width mode;\n`full_width_min` / `full_width_max` bound the text column in that mode, in px. Example:\n`{ \"full_width\": true, \"full_width_max\": 1200 }` — the column follows the window but never gets\nwider than 1200 px (centred). Passing these fields for other types → 422.\n\n**Idempotency:** Supports `Idempotency-Key` header. Duplicate requests with the same key within 24 hours return the cached response without creating a new document.\n\n**Permissions:** Requires `manage` permission on documents.\n","ru":"Creates a new document in the account.\n\n**Content format:** The `content` and `description` fields accept Markdown text. Supported syntax:\n- Headings: `# H1`, `## H2`, `### H3`\n- Inline: `**bold**`, `*italic*`, `~~strikethrough~~`, `` `code` ``, `[link](url)`\n- Lists: `- unordered`, `1. ordered`, `- [ ] checklist`, `- [x] checked`\n- Blockquotes: `\u003e quote`\n- Code blocks: ` ```language\\ncode\\n``` `\n- Tables: GFM pipe tables (`| A | B |`)\n- Horizontal rules: `---`\n\n**Layout (single_page_document only):** `full_width` turns on the full-width mode;\n`full_width_min` / `full_width_max` bound the text column in that mode, in px. Example:\n`{ \"full_width\": true, \"full_width_max\": 1200 }` — the column follows the window but never gets\nwider than 1200 px (centred). Passing these fields for other types → 422.\n\n**Idempotency:** Supports `Idempotency-Key` header. Duplicate requests with the same key within 24 hours return the cached response without creating a new document.\n\n**Permissions:** Requires `manage` permission on documents.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/documents","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/documents/{id}/blocks/file","kind":"contract","label":{"en":"Add a file block","ru":"Add a file block"},"description":{"en":"Appends a file (attachment) block to a **BlockNote (collaborative)** document. Provide\nthe file as EITHER an already-hosted `url` OR an uploaded `file` (`multipart/form-data`).\nWhen a `file` is uploaded it is stored (ActiveStorage) and the resulting URL is used.\n\nThis is a convenience wrapper over the operations endpoint (file blocks cannot be\nexpressed as Markdown). **BlockNote documents only.** Returns the resulting blocks.\n","ru":"Appends a file (attachment) block to a **BlockNote (collaborative)** document. Provide\nthe file as EITHER an already-hosted `url` OR an uploaded `file` (`multipart/form-data`).\nWhen a `file` is uploaded it is stored (ActiveStorage) and the resulting URL is used.\n\nThis is a convenience wrapper over the operations endpoint (file blocks cannot be\nexpressed as Markdown). **BlockNote documents only.** Returns the resulting blocks.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/documents/{id}/blocks/file","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/documents/{id}/blocks/image","kind":"contract","label":{"en":"Add an image block","ru":"Add an image block"},"description":{"en":"Appends an image block to a **BlockNote (collaborative)** document. Provide the image\nas EITHER an already-hosted `url` OR an uploaded `file` (`multipart/form-data`). When a\n`file` is uploaded it is stored (ActiveStorage) and the resulting URL is used.\n\nThis is a convenience wrapper over the operations endpoint (images cannot be expressed\nas Markdown). The edit is merged into the collaborative CRDT, so it coexists with\nconcurrent live edits. **BlockNote documents only.** Returns the resulting blocks.\n","ru":"Appends an image block to a **BlockNote (collaborative)** document. Provide the image\nas EITHER an already-hosted `url` OR an uploaded `file` (`multipart/form-data`). When a\n`file` is uploaded it is stored (ActiveStorage) and the resulting URL is used.\n\nThis is a convenience wrapper over the operations endpoint (images cannot be expressed\nas Markdown). The edit is merged into the collaborative CRDT, so it coexists with\nconcurrent live edits. **BlockNote documents only.** Returns the resulting blocks.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/documents/{id}/blocks/image","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/documents/{id}/blocks/operations","kind":"contract","label":{"en":"Apply block operations (granular content editing via CRDT)","ru":"Apply block operations (granular content editing via CRDT)"},"description":{"en":"Applies a list of granular block operations to a **BlockNote (collaborative)** document.\nEdits are merged into the collaborative CRDT (not a destructive blob-replace), so they\ncoexist with concurrent live edits.\n\n**Operations** (applied in order). The body of `append`/`update`/`replace` is EITHER\n`markdown` OR a structured `block` (a BlockNote block object, or an array of them):\n- `append`  — add content at the end: `{ \"op\": \"append\", \"markdown\": \"## New section\\n...\" }`\n- `insert`  — add content next to a block: `{ \"op\": \"insert\", \"after\": \"\u003cblock id\u003e\", \"markdown\": \"...\" }` (or `before`)\n- `update`  — replace a block's content, keeps its id: `{ \"op\": \"update\", \"block_id\": \"...\", \"markdown\": \"## New heading\" }`\n- `delete`  — remove a block: `{ \"op\": \"delete\", \"block_id\": \"...\" }`\n- `replace` — replace the ENTIRE document content: `{ \"op\": \"replace\", \"markdown\": \"# ...\" }`\n\n**Structured `block` payload** — required for content Markdown cannot express\n(images, files, tables with images in cells). Examples:\n- Image block: `{ \"op\": \"append\", \"block\": { \"type\": \"image\", \"props\": { \"url\": \"https://…/a.png\", \"caption\": \"Fig. 1\", \"align\": \"center\" } } }`\n- File block: `{ \"op\": \"append\", \"block\": { \"type\": \"file\", \"props\": { \"url\": \"https://…/doc.pdf\", \"name\": \"doc.pdf\" } } }`\n- HTML block (interactive widget, like Notion): `{ \"op\": \"append\", \"block\": { \"type\": \"html\", \"props\": { \"html\": \"\u003c!doctype html\u003e…\" } } }`.\n  The source runs in a sandbox: scripts and inline styles work, **network is closed** (no fetch/XHR/WebSocket,\n  no external scripts, styles, fonts or images — embed them as `data:` URIs), no access to the page, cookies\n  or the account. Up to 512 KB per block. In PDF it prints as a placeholder; in Markdown — as a ```html render fenced block.\n  Markdown can create it too: a fence with the info string `html render` becomes an HTML block,\n  a plain ```html fence stays a code block (syntax-highlighted source).\n- Image inside a table cell: read the table with `GET /documents/{id}/blocks?view=structured`,\n  add `{ \"type\": \"inlineImage\", \"props\": { \"url\": \"https://…/a.png\", \"height\": 48 } }` to the target\n  cell's `content`, then `{ \"op\": \"update\", \"block_id\": \"\u003ctable id\u003e\", \"block\": { …the whole table block… } }`.\n\nFor adding a single image/file you can also use the simpler `POST /blocks/image`\nand `POST /blocks/file` endpoints (they also accept a file upload).\n\nUse `GET /documents/{id}/blocks` to discover `block_id`s. Returns the resulting blocks.\n\n**Note:** editing/removing a block detaches any comment anchors on it (comment thread data is preserved).\n","ru":"Applies a list of granular block operations to a **BlockNote (collaborative)** document.\nEdits are merged into the collaborative CRDT (not a destructive blob-replace), so they\ncoexist with concurrent live edits.\n\n**Operations** (applied in order). The body of `append`/`update`/`replace` is EITHER\n`markdown` OR a structured `block` (a BlockNote block object, or an array of them):\n- `append`  — add content at the end: `{ \"op\": \"append\", \"markdown\": \"## New section\\n...\" }`\n- `insert`  — add content next to a block: `{ \"op\": \"insert\", \"after\": \"\u003cblock id\u003e\", \"markdown\": \"...\" }` (or `before`)\n- `update`  — replace a block's content, keeps its id: `{ \"op\": \"update\", \"block_id\": \"...\", \"markdown\": \"## New heading\" }`\n- `delete`  — remove a block: `{ \"op\": \"delete\", \"block_id\": \"...\" }`\n- `replace` — replace the ENTIRE document content: `{ \"op\": \"replace\", \"markdown\": \"# ...\" }`\n\n**Structured `block` payload** — required for content Markdown cannot express\n(images, files, tables with images in cells). Examples:\n- Image block: `{ \"op\": \"append\", \"block\": { \"type\": \"image\", \"props\": { \"url\": \"https://…/a.png\", \"caption\": \"Fig. 1\", \"align\": \"center\" } } }`\n- File block: `{ \"op\": \"append\", \"block\": { \"type\": \"file\", \"props\": { \"url\": \"https://…/doc.pdf\", \"name\": \"doc.pdf\" } } }`\n- HTML block (interactive widget, like Notion): `{ \"op\": \"append\", \"block\": { \"type\": \"html\", \"props\": { \"html\": \"\u003c!doctype html\u003e…\" } } }`.\n  The source runs in a sandbox: scripts and inline styles work, **network is closed** (no fetch/XHR/WebSocket,\n  no external scripts, styles, fonts or images — embed them as `data:` URIs), no access to the page, cookies\n  or the account. Up to 512 KB per block. In PDF it prints as a placeholder; in Markdown — as a ```html render fenced block.\n  Markdown can create it too: a fence with the info string `html render` becomes an HTML block,\n  a plain ```html fence stays a code block (syntax-highlighted source).\n- Image inside a table cell: read the table with `GET /documents/{id}/blocks?view=structured`,\n  add `{ \"type\": \"inlineImage\", \"props\": { \"url\": \"https://…/a.png\", \"height\": 48 } }` to the target\n  cell's `content`, then `{ \"op\": \"update\", \"block_id\": \"\u003ctable id\u003e\", \"block\": { …the whole table block… } }`.\n\nFor adding a single image/file you can also use the simpler `POST /blocks/image`\nand `POST /blocks/file` endpoints (they also accept a file upload).\n\nUse `GET /documents/{id}/blocks` to discover `block_id`s. Returns the resulting blocks.\n\n**Note:** editing/removing a block detaches any comment anchors on it (comment thread data is preserved).\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/documents/{id}/blocks/operations","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/documents/{id}/restore","kind":"contract","label":{"en":"Restore a discarded document","ru":"Restore a discarded document"},"description":{"en":"Restores a previously soft-deleted document, making it active again.\n\nAfter restoration, the document reappears in the default list and `discarded_at` is set to `null`.\n","ru":"Restores a previously soft-deleted document, making it active again.\n\nAfter restoration, the document reappears in the default list and `discarded_at` is set to `null`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/documents/{id}/restore","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/drivers","kind":"contract","label":{"en":"Create a driver","ru":"Create a driver"},"description":{"en":"Connects the driver to the account by its key; the keys are the license (`driver.license_country`, `driver.license_series`, `driver.license_number`; with `driver.license_issued_on` — the license is entered whole) and `driver.inn` — at least one.\nIf the organization already has it, only the relation is created and the `driver` fields\nare ignored; otherwise the driver is created with them, managed by the account.\n\nRefusals: 409 `driver_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.driver_id`; the current key is not disclosed — pass the current license or the INN); pass `new_identity: true` if it is another driver, 422 `keys_conflict` — the license and the INN belong to different drivers.\n","ru":"Connects the driver to the account by its key; the keys are the license (`driver.license_country`, `driver.license_series`, `driver.license_number`; with `driver.license_issued_on` — the license is entered whole) and `driver.inn` — at least one.\nIf the organization already has it, only the relation is created and the `driver` fields\nare ignored; otherwise the driver is created with them, managed by the account.\n\nRefusals: 409 `driver_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.driver_id`; the current key is not disclosed — pass the current license or the INN); pass `new_identity: true` if it is another driver, 422 `keys_conflict` — the license and the INN belong to different drivers.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/drivers","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/drivers/{id}/vehicles","kind":"contract","label":{"en":"Link a vehicle to the driver","ru":"Link a vehicle to the driver"},"description":{"en":"Both are relations of the account. Who may edit the driver or the vehicle of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such vehicle in the account (or the role may not read it), 409 `link_exists`.","ru":"Both are relations of the account. Who may edit the driver or the vehicle of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such vehicle in the account (or the role may not read it), 409 `link_exists`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/drivers/{id}/vehicles","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/folders","kind":"contract","label":{"en":"Create a folder","ru":"Create a folder"},"description":{"en":"Creates a new folder in the account.\n\n**Nesting:** Pass `parent_id` to create a subfolder inside an existing folder. Omit it to create a root folder.\n\n**Idempotency:** Supports `Idempotency-Key` header.\n\n**Permissions:** Requires `manage` permission on folders.\n","ru":"Creates a new folder in the account.\n\n**Nesting:** Pass `parent_id` to create a subfolder inside an existing folder. Omit it to create a root folder.\n\n**Idempotency:** Supports `Idempotency-Key` header.\n\n**Permissions:** Requires `manage` permission on folders.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/folders","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/folders/{id}/restore","kind":"contract","label":{"en":"Restore a discarded folder","ru":"Restore a discarded folder"},"description":{"en":"Restores a previously soft-deleted folder along with all its subfolders and their documents.\n\nAfter restoration, the folder reappears in the default list and `discarded_at` is set to `null`.\n","ru":"Restores a previously soft-deleted folder along with all its subfolders and their documents.\n\nAfter restoration, the folder reappears in the default list and `discarded_at` is set to `null`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/folders/{id}/restore","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/locations","kind":"contract","label":{"en":"Create a location","ru":"Create a location"},"description":{"en":"Connects the location to the account by its key; the key is `location.gln`, or `location.address_text` (or the point) with `location.name`.\nIf the organization already has it, only the relation is created and the `location` fields\nare ignored; otherwise the location is created with them, managed by the account.\n\nRefusals: 409 `location_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.location_id`, `details.current_key`); pass `new_identity: true` if it is another location, 422 `keys_conflict` — the GLN and the address with the name belong to different locations.\n","ru":"Connects the location to the account by its key; the key is `location.gln`, or `location.address_text` (or the point) with `location.name`.\nIf the organization already has it, only the relation is created and the `location` fields\nare ignored; otherwise the location is created with them, managed by the account.\n\nRefusals: 409 `location_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.location_id`, `details.current_key`); pass `new_identity: true` if it is another location, 422 `keys_conflict` — the GLN and the address with the name belong to different locations.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/locations","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/locations/{id}/counterparties","kind":"contract","label":{"en":"Link a counterparty to the location","ru":"Link a counterparty to the location"},"description":{"en":"Both are relations of the account. Who may edit the location or the counterparty of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such counterparty in the account (or the role may not read it), 409 `link_exists`.","ru":"Both are relations of the account. Who may edit the location or the counterparty of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such counterparty in the account (or the role may not read it), 409 `link_exists`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/locations/{id}/counterparties","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/locations/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the record in 1C, WMS or another system of the account — a repeated import with it updates the location. Only for a relation of the account itself; who may edit the relation. Refusals: 409 `ref_taken` — the account already has this key.","ru":"A key of the record in 1C, WMS or another system of the account — a repeated import with it updates the location. Only for a relation of the account itself; who may edit the relation. Refusals: 409 `ref_taken` — the account already has this key."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/locations/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders","kind":"contract","label":{"en":"Create an order","ru":"Create an order"},"description":{"en":"Creates a draft with stops and lines in one transaction. Substituted when omitted: our legal entity, the\npayer, the contract (by the pair), the party, loader and contact of a stop (by the location), the route of a\nline, the description of a line from `cargo_template_id`, conditions from the lines. A reference the key\ndoes not read — 422 `inaccessible` on its field. Response — 201 with `warnings`.\n","ru":"Creates a draft with stops and lines in one transaction. Substituted when omitted: our legal entity, the\npayer, the contract (by the pair), the party, loader and contact of a stop (by the location), the route of a\nline, the description of a line from `cargo_template_id`, conditions from the lines. A reference the key\ndoes not read — 422 `inaccessible` on its field. Response — 201 with `warnings`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders/{id}/accept","kind":"contract","label":{"en":"Accept an order","ru":"Accept an order"},"description":{"en":"Draft → accepted. The order must have a loading, an unloading and a cargo line (422 on `stops`/`lines`); another status — 422 `transition_not_allowed` on `status`.","ru":"Draft → accepted. The order must have a loading, an unloading and a cargo line (422 on `stops`/`lines`); another status — 422 `transition_not_allowed` on `status`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders/{id}/accept","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders/{id}/cancel","kind":"contract","label":{"en":"Cancel an order","ru":"Cancel an order"},"description":{"en":"Draft or accepted → cancelled, with a reason.","ru":"Draft or accepted → cancelled, with a reason."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders/{id}/cancel","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the order in 1C or another system of the account — a repeated import with it updates the order. Who may edit the order. Refusals: 409 `ref_taken` — the account already has this key on another order (a record of another type may have the same key).","ru":"A key of the order in 1C or another system of the account — a repeated import with it updates the order. Who may edit the order. Refusals: 409 `ref_taken` — the account already has this key on another order (a record of another type may have the same key)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders/{id}/reopen","kind":"contract","label":{"en":"Reopen a cancelled order","ru":"Reopen a cancelled order"},"description":{"en":"Cancelled → draft; the reason leaves the order (the journal keeps it).","ru":"Cancelled → draft; the reason leaves the order (the journal keeps it)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders/{id}/reopen","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/orders/{id}/repeat","kind":"contract","label":{"en":"Repeat an order","ru":"Repeat an order"},"description":{"en":"A new draft by the order: the same parties, locations, cargo and conditions, without numbers, dates\n(windows, delivery date) and external keys; the manager — the key user; the contract is picked anew.\nA reference the key does not read — 422 `inaccessible`, nothing is created. Response — 201.\n","ru":"A new draft by the order: the same parties, locations, cargo and conditions, without numbers, dates\n(windows, delivery date) and external keys; the manager — the key user; the contract is picked anew.\nA reference the key does not read — 422 `inaccessible`, nothing is created. Response — 201.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/orders/{id}/repeat","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/powers_of_attorney/{id}/revoke","kind":"contract","label":{"en":"Revoke a power of attorney","ru":"Revoke a power of attorney"},"description":{"en":"`on` — revocation date: from it the power of attorney is not in effect. `superseded: true` — replaced\nby a new one, without a date. A revoked or superseded one is refused with 422.\n","ru":"`on` — revocation date: from it the power of attorney is not in effect. `superseded: true` — replaced\nby a new one, without a date. A revoked or superseded one is refused with 422.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/powers_of_attorney/{id}/revoke","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/sections/{section_key}/records","kind":"contract","label":{"en":"Create a record","ru":"Create a record"},"description":{"en":"Creates a record. `custom_fields` are keyed by the machine key; only fields of the\nrecord branch (its category) are accepted — see `/custom_field_definitions`.\n","ru":"Creates a record. `custom_fields` are keyed by the machine key; only fields of the\nrecord branch (its category) are accepted — see `/custom_field_definitions`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/sections/{section_key}/records","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/trips","kind":"contract","label":{"en":"Create a trip","ru":"Create a trip"},"description":{"en":"Creates a trip in the plan with stops, cargo lines and assignments in one transaction. Substituted when\nomitted: our legal entity (the only own one), the manager (the key user), the contact of a stop (by the\nlocation). A reference the key does not read — 422 `inaccessible` on its field. To plan orders — use\n`POST /trips/from_orders`. Response — 201 with `warnings`.\n","ru":"Creates a trip in the plan with stops, cargo lines and assignments in one transaction. Substituted when\nomitted: our legal entity (the only own one), the manager (the key user), the contact of a stop (by the\nlocation). A reference the key does not read — 422 `inaccessible` on its field. To plan orders — use\n`POST /trips/from_orders`. Response — 201 with `warnings`.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/trips","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/trips/from_orders","kind":"contract","label":{"en":"Plan orders into a trip","ru":"Plan orders into a trip"},"description":{"en":"A trip from accepted orders (§6.2): stops by the order stops, cargo lines by the remaining places of the\nlines, conditions in common. An order already planned — into its live trip when it is the only one. Who may\ncreate trips and edit EACH order; `with_request` — also create a draft request to a carrier (who may create\nrequests). Refusal — 422 on `order_ids`. Response — the trip and `warnings`: 201 — a new trip, 200 — the\nexisting one (the request goes to it).\n","ru":"A trip from accepted orders (§6.2): stops by the order stops, cargo lines by the remaining places of the\nlines, conditions in common. An order already planned — into its live trip when it is the only one. Who may\ncreate trips and edit EACH order; `with_request` — also create a draft request to a carrier (who may create\nrequests). Refusal — 422 on `order_ids`. Response — the trip and `warnings`: 201 — a new trip, 200 — the\nexisting one (the request goes to it).\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/trips/from_orders","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/trips/{id}/cancel","kind":"contract","label":{"en":"Cancel a trip","ru":"Cancel a trip"},"description":{"en":"Plan or confirmed → cancelled, with a reason. Requests are withdrawn (drafts — cancelled), assignments end, the order lines are free again. Another status — 422 `transition_not_allowed` on `status`.","ru":"Plan or confirmed → cancelled, with a reason. Requests are withdrawn (drafts — cancelled), assignments end, the order lines are free again. Another status — 422 `transition_not_allowed` on `status`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/trips/{id}/cancel","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/trips/{id}/external_refs","kind":"contract","label":{"en":"Add an external key","ru":"Add an external key"},"description":{"en":"A key of the trip in 1C or another system of the account — a repeated import with it updates the trip. Who may edit the trip. Refusals: 409 `ref_taken` — the account already has this key on another trip (a record of another type may have the same key).","ru":"A key of the trip in 1C or another system of the account — a repeated import with it updates the trip. Who may edit the trip. Refusals: 409 `ref_taken` — the account already has this key on another trip (a record of another type may have the same key)."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/trips/{id}/external_refs","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/vehicles","kind":"contract","label":{"en":"Create a vehicle","ru":"Create a vehicle"},"description":{"en":"Connects the vehicle to the account by its key; the key is `vehicle.country` and `vehicle.reg_number`.\nIf the organization already has it, only the relation is created and the `vehicle` fields\nare ignored; otherwise the vehicle is created with them, managed by the account.\n\nRefusals: 409 `vehicle_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.vehicle_id`, `details.current_key`); pass `new_identity: true` if it is another vehicle.\n","ru":"Connects the vehicle to the account by its key; the key is `vehicle.country` and `vehicle.reg_number`.\nIf the organization already has it, only the relation is created and the `vehicle` fields\nare ignored; otherwise the vehicle is created with them, managed by the account.\n\nRefusals: 409 `vehicle_exists` (`details.id`, `details.archived` for one in the trash), 409 `key_changed` — found by a former key (`details.vehicle_id`, `details.current_key`); pass `new_identity: true` if it is another vehicle.\n"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/vehicles","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/vehicles/{id}/drivers","kind":"contract","label":{"en":"Link a driver to the vehicle","ru":"Link a driver to the vehicle"},"description":{"en":"Both are relations of the account. Who may edit the vehicle or the driver of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such driver in the account (or the role may not read it), 409 `link_exists`.","ru":"Both are relations of the account. Who may edit the vehicle or the driver of the account may link them; managing rights are not needed. Refusals: 422 `not_account_relation` — no such driver in the account (or the role may not read it), 409 `link_exists`."},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/vehicles/{id}/drivers","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/video_instructions","kind":"contract","label":{"en":"Create video instruction (starts pipeline)","ru":"Create video instruction (starts pipeline)"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/video_instructions","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/video_instructions/upload_url","kind":"contract","label":{"en":"Get presigned upload URL for video file","ru":"Get presigned upload URL for video file"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/video_instructions/upload_url","protocol":"rest"}},{"id":"contract:rest:POST /api/v2/accounts/{account_id}/video_instructions/{id}/regenerate","kind":"contract","label":{"en":"Regenerate steps with optional new prompt version / LLM engine","ru":"Regenerate steps with optional new prompt version / LLM engine"},"attrs":{"api_version":"v2","method":"POST","path":"/api/v2/accounts/{account_id}/video_instructions/{id}/regenerate","protocol":"rest"}},{"id":"contract:rest:PUT /api/v2/accounts/{account_id}/signing_defaults","kind":"contract","label":{"en":"Set the default signatory for a legal entity and purpose","ru":"Set the default signatory for a legal entity and purpose"},"description":{"en":"Creates (201) or replaces (200) the account's default. The signatory — of this legal entity and not in the\ntrash, otherwise 422. An inactive or blocked signatory may be set: `pick` skips it until they can sign.\n","ru":"Creates (201) or replaces (200) the account's default. The signatory — of this legal entity and not in the\ntrash, otherwise 422. An inactive or blocked signatory may be set: `pick` skips it until they can sign.\n"},"attrs":{"api_version":"v2","method":"PUT","path":"/api/v2/accounts/{account_id}/signing_defaults","protocol":"rest"}}],"links":{"openapi":"/docs/spec"}}